什么是軟件質(zhì)量?
軟件質(zhì)量(software quality)是與軟件產(chǎn)品滿足明確或隱含需求的能力有關(guān)的特征和特性的總和。高質(zhì)量的軟件通常具備了這樣一些特性:
滿足用戶的需求。
合理的進(jìn)度、成本、功能關(guān)系。
具備擴(kuò)展性和靈活性,能夠適應(yīng)一定程度的需求變化。
足夠的強(qiáng)壯、足夠的魯棒,能夠有效的處理例外的情況。
保持成本和性能的平衡。
能夠可持續(xù)的發(fā)展。
什么是軟件測(cè)試?
軟件測(cè)試是為了發(fā)現(xiàn)程序代碼中的錯(cuò)誤(Bug)而執(zhí)行程序的過程,是軟件質(zhì)量保證的重要手段,屬于軟件工程領(lǐng)域。其目的是:
為了尋找錯(cuò)誤,并盡可能地為修正錯(cuò)誤提供更多的信息;
為了證明軟件有錯(cuò)誤,而不是證明軟件沒有錯(cuò)誤;
軟件測(cè)試技術(shù)根據(jù)測(cè)試原理,又分為:
靜態(tài)測(cè)試:不實(shí)際運(yùn)行程序,而是通過代碼檢查的手段來發(fā)現(xiàn)錯(cuò)誤并評(píng)估代碼質(zhì)量的軟件測(cè)試技術(shù);
動(dòng)態(tài)測(cè)試:實(shí)際運(yùn)行程序,并通過觀察程序運(yùn)行的實(shí)際結(jié)果來發(fā)現(xiàn)錯(cuò)誤的軟件測(cè)試技術(shù);
什么是測(cè)試驅(qū)動(dòng)開發(fā)(TDD)?
測(cè)試驅(qū)動(dòng)開發(fā)(Test-Driven Development)起源于極限編程(XP)開發(fā)過程中所提倡的測(cè)試先行實(shí)踐。測(cè)試先行實(shí)踐重視單元測(cè)試(Unit Testing),強(qiáng)調(diào)程序員除了編寫代碼之外,還應(yīng)該編寫單元測(cè)試代碼。在開發(fā)的順序上,它改變了以往先編寫代碼,再編寫測(cè)試的過程,而采用先編寫測(cè) 試,再編寫代碼來滿足測(cè)試的方法。這種方法在實(shí)際中能夠起到非常好的效果,使得測(cè)試工作不僅僅是單純的測(cè)試,而成為設(shè)計(jì)的一部分。
靜態(tài)分析工具
靜態(tài)分析工具承諾無需開發(fā)人員費(fèi)勁就能找出代碼中已有的缺陷。當(dāng)然,如果有多年的編寫經(jīng)驗(yàn),就會(huì)知道這些承諾并不是一定能兌現(xiàn)。盡管如此,好的靜態(tài)分析工具仍然是工具箱中的無價(jià)之寶:
FindBugs 是一個(gè)靜態(tài)分析工具,它檢查類或者 JAR 文件,將字節(jié)碼與一組缺陷模式進(jìn)行對(duì)比以發(fā)現(xiàn)可能的問題:
PMD 是一個(gè)開源的靜態(tài)分析工具,它分析 Java 源代碼,并找出潛在的 bug:
Eclipse 靜態(tài)分析插件,能在構(gòu)建代碼前便發(fā)現(xiàn)代碼中潛在的問題:
IBM Checking Tool for Bugs Errors and Mistakes,可用于分析并查找 C、C++ 和 Java 代碼中的一些不容易發(fā)現(xiàn)的潛在錯(cuò)誤: