有很多實(shí)施GJB5000的組織,認(rèn)為小規(guī)模軟件進(jìn)行單元測試得不償失,想要裁剪整個(gè)單元測試活動,僅僅保留配置項(xiàng)測試和系統(tǒng)測試。 這種做法是不可取的。 單元測試是白盒測試,是確保代碼質(zhì)量的,而配置項(xiàng)測試和系統(tǒng)測試是黑盒測試,是驗(yàn)證整體軟件的功能是否正確。單元測試的作用不可能被配置項(xiàng)測試和系統(tǒng)測試所取代。 單元測試的重要性體現(xiàn)在以下幾個(gè)方面:
如果做好單元測試,去除了代碼中潛在的設(shè)計(jì)錯(cuò)誤,那么后續(xù)的測試級別(集成測試、配置項(xiàng)測試、系統(tǒng)測試等)就會節(jié)約很多時(shí)間。反之,如果沒有做單元測試或者單元測試做的不好、敷衍了事,那么在進(jìn)行后續(xù)的測試級別時(shí),總會遇到那些本該在單元測試就能發(fā)現(xiàn)的問題,而且這些問題往往還是很難發(fā)現(xiàn)的。這會使后續(xù)的測試周期遠(yuǎn)超計(jì)劃,不斷延遲。
首先,單元測試是測試階段的基礎(chǔ)。只有做好單元測試,才會使得后續(xù)的集成測試、配置項(xiàng)測試、系統(tǒng)測試等更加容易。其次,單元測試是白盒測試,在單元測試過程中能夠發(fā)現(xiàn)一些深層次的,在系統(tǒng)測試(黑盒測試)當(dāng)中很難發(fā)現(xiàn)的問題。最好,單元測試不僅僅能夠驗(yàn)證代碼做了些什么,更重要的是了解代碼是如何做的,以及是否做了它應(yīng)該做的事情和沒有做它不該做的事情。
代碼中的一些設(shè)計(jì)錯(cuò)誤,在單元測試的時(shí)候很容易發(fā)現(xiàn),糾正成本也比較低;但是,如果這些錯(cuò)誤直到后期的系統(tǒng)測試的時(shí)候才發(fā)現(xiàn),再要糾正這個(gè)問題,所需要的成本就成幾何倍數(shù)的上升。
進(jìn)行單元測試可以去除代碼中的設(shè)計(jì)錯(cuò)誤,提升代碼的質(zhì)量。而如果不進(jìn)行單元測試,后續(xù)的配置項(xiàng)測試、系統(tǒng)測試又很難發(fā)現(xiàn)這些錯(cuò)誤,那么這些錯(cuò)誤就被隱藏在交付的軟件中,這樣交付軟件的質(zhì)量就難以得到保證。 所以,我們不應(yīng)以軟件開發(fā)周期短為理由裁剪單元測試,特別是實(shí)施GJB5000的軍用軟件開發(fā)。我們更應(yīng)該做的是通過應(yīng)用單元測試工具和自動化測試、通過測試用例的重用等技術(shù),提高單元測試的效率。 為了軟件質(zhì)量,讓我們重視單元測試吧! 這正是: 單元測試不可裁,其他測試難取代 引進(jìn)工具和技術(shù),提高效率收益來 參考書目:現(xiàn)代軟件測試技術(shù)與管理研究,作者:趙仕波 魏生斌 羅耀華,出版社:中國水利水電出版社 |
|