軟件開發(fā)中出現(xiàn)錯(cuò)誤或缺陷的機(jī)會越來越多,市場對軟件質(zhì)量重要性的認(rèn)識逐漸增強(qiáng)。所以,軟件測試在軟件項(xiàng)目實(shí)施過程中的重要性日益突出。但是,現(xiàn)實(shí)情況是,與軟件編程比較,軟件測試的地位和作用,還沒有真正受到重視,對于很多人(甚至是軟件項(xiàng)目組的技術(shù)人員)還存在對軟件測試的認(rèn)識誤區(qū),這進(jìn)一步影響了軟件測試活動開展和真正提高軟件測試質(zhì)量。
(1)誤區(qū)之一:軟件開發(fā)完成后進(jìn)行軟件測試
人們一般認(rèn)為,軟件項(xiàng)目要經(jīng)過以下幾個(gè)階段:需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),軟件編碼,軟件測試,軟件發(fā)布。據(jù)此,認(rèn)為軟件測試只是軟件編碼后的一個(gè)過程。這是不了解軟件測試周期的錯(cuò)誤認(rèn)識。軟件測試是一個(gè)系列過程活動,包括軟件測試需求分析,測試計(jì)劃設(shè)計(jì),測試用例設(shè)計(jì),執(zhí)行測試。因此,軟件測試貫穿于軟件項(xiàng)目的整個(gè)生命過程。在軟件項(xiàng)目的每一個(gè)階段都要進(jìn)行不同目的和內(nèi)容的測試活動,以保證各個(gè)階段的正確性。軟件測試的對象不僅僅是軟件代碼,還包括軟件需求文檔和設(shè)計(jì)文檔。軟件開發(fā)與軟件測試應(yīng)該是交互進(jìn)行的,例如,單元編碼需要單元測試,模塊組合階段需要集成測試。如果等到軟件編碼結(jié)束后才進(jìn)行測試,那么,測試的時(shí)間將會很短,測試的覆蓋面將很不全面,測試的效果也將大打折扣。更嚴(yán)重的是如果此時(shí)發(fā)現(xiàn)了軟件需求階段或概要設(shè)計(jì)階段的錯(cuò)誤,如果要修復(fù)該類錯(cuò)誤,將會耗費(fèi)大量的時(shí)間和人力。
(2)誤區(qū)之二:軟件發(fā)布后如果發(fā)現(xiàn)質(zhì)量問題,那是軟件測試人員的錯(cuò)
這種認(rèn)識很打擊軟件測試人員的積極性。軟件中的錯(cuò)誤可能來自軟件項(xiàng)目中的各個(gè)過程,軟件測試只能確認(rèn)軟件存在錯(cuò)誤,不能保證軟件沒有錯(cuò)誤,因?yàn)閺母旧现v,軟件測試不可能發(fā)現(xiàn)全部的錯(cuò)誤。從軟件開發(fā)的角度看,軟件的高質(zhì)量不是軟件測試人員測出來的,是靠軟件生命周期的各個(gè)過程中設(shè)計(jì)出來的。出現(xiàn)軟件錯(cuò)誤,不能簡單地歸結(jié)為某一個(gè)人的責(zé)任,有些錯(cuò)誤的產(chǎn)生可能不是技術(shù)原因,可能來自于混亂的項(xiàng)目管理。應(yīng)該分析軟件項(xiàng)目的各個(gè)過程,從過程改進(jìn)方面尋找產(chǎn)生錯(cuò)誤的原因和改進(jìn)的措施。
(3)誤區(qū)之三:軟件測試要求不高,隨便找個(gè)人做都行
很多人都認(rèn)為軟件測試就是安裝和運(yùn)行程序,點(diǎn)點(diǎn)鼠標(biāo),按按鍵盤的工作。這是由于不了解軟件測試的具體技術(shù)和方法造成的。隨之軟件工程學(xué)的發(fā)展和軟件項(xiàng)目管理經(jīng)驗(yàn)的提高,軟件測試已經(jīng)形成了一個(gè)獨(dú)立的技術(shù)學(xué)科,演變成一個(gè)具有巨大市場需求的行業(yè)。軟件測試技術(shù)不斷更新和完善,新工具,新流程,新測試設(shè)計(jì)方法都在不斷更新,需要掌握和學(xué)習(xí)很多測試知識。所以,具有編程經(jīng)驗(yàn)的程序員不一定是一名優(yōu)秀的測試工程師。軟件測試包括測試技術(shù)和管理兩個(gè)方面,完全掌握這兩個(gè)方面的內(nèi)容,需要很多測試實(shí)踐經(jīng)驗(yàn)和不斷學(xué)習(xí)精神。
(4)誤區(qū)之四:軟件測試是測試人員的事情,與程序員無關(guān)
開發(fā)和測試是相輔相成的過程,需要軟件測試人員、程序員和系統(tǒng)分析師等保持密切的聯(lián)系,需要更多的交流和協(xié)調(diào),以便提高測試效率。另外,對于單元測試主要應(yīng)該由程序員完成,必要時(shí)測試人員可以幫助設(shè)計(jì)測試樣例。對于測試中發(fā)現(xiàn)的軟件錯(cuò)誤,很多需要程序員通過修改編碼才能修復(fù)。程序員可以通過有目的的分析軟件錯(cuò)誤的類型、數(shù)量,找出產(chǎn)生錯(cuò)誤的位置和原因,以便在今后的編程中避免同樣的錯(cuò)誤,積累編程經(jīng)驗(yàn),提高編程能力。
(5)誤區(qū)之五:項(xiàng)目進(jìn)度吃緊時(shí)少做些測試,時(shí)間富裕時(shí)多做測試
這是不重視軟件測試的表現(xiàn),也是軟件項(xiàng)目過程管理混亂的表現(xiàn),必然會降低軟件測試的質(zhì)量。一個(gè)軟件項(xiàng)目的順利實(shí)現(xiàn)需要有合理的項(xiàng)目進(jìn)度計(jì)劃,其中包括合理的測試計(jì)劃,對項(xiàng)目實(shí)施過程中的任何問題,都要有風(fēng)險(xiǎn)分析和相應(yīng)的對策,不要因?yàn)殚_發(fā)進(jìn)度的延期而簡單的縮短測試時(shí)間、人力和資源。因?yàn)榭s短測試時(shí)間帶來的測試不完整,對項(xiàng)目質(zhì)量的下降引起的潛在風(fēng)險(xiǎn),往往造成更大的浪費(fèi)??朔@種現(xiàn)象的最好辦法是加強(qiáng)軟件過程的計(jì)劃和控制,包括軟件測試計(jì)劃、測試設(shè)計(jì)、測試執(zhí)行、測試度量和測試控制。