后一附了事,而不去更新需求與其他相關(guān)文檔;另一方面,項目變更管理還不夠完善,管理重點往往集中于開發(fā),而輕視文檔質(zhì)量管理,未留出充分的文檔更新時間,導(dǎo)致文檔更新嚴(yán)重滯后于編碼進度。為保證文檔質(zhì)量,必須定期進行文檔測試,但測試要花成本,項目高層不愿意付此代價。
文檔若可讀性低,便會影響用戶的理解;若與編碼不一致,便起不到參考作用,編碼測試就沒有可靠的測試依據(jù)。路都看不清楚,怎么往前走呀?所以,強烈建議進行文檔測試,并將其置于測試管理的首位。
當(dāng)前文檔測試的方法沒有什么特別的形式,還缺乏測試工具支持,通常是通過靜態(tài)審查方式――“走查”來進行的,主要查看文檔的可讀性,內(nèi)容真實性、可靠性、全面性。另外,在項目里程碑時期召集相關(guān)領(lǐng)域?qū)<覍χ匾臋n進行集中審核,也是一種檢查方式。
3、 單元測試應(yīng)引入交叉測試方法;
單元測試是對軟件基本組成單元進行的測試,測試對象是軟件模塊。通常,單元測試是由開發(fā)人員來完成,而且往往是各人測各人的。這存在問題隱患。
為什么呢,技術(shù)人員是軟件模塊的制造者,自己來測自己的軟件的話,角色便從制造者變成了審查者,而前一個角色的目的是為了保證軟件正確,后一個角色的目的是為了發(fā)現(xiàn)更多的缺陷,讓一個人同時來扮演兩種目的不同的角色,好比讓他既當(dāng)裁判員又當(dāng)運動員,怎么能做好呢?
解決方法通常有兩種,一種是:由測試人員來進行單元測試,這種方式要求測試人員要有較高的軟件技術(shù)知識;另一種是:將軟件人員分組,在模塊開發(fā)告一段落時進行交叉測試,這種方法只需要測試者了解被測方的軟件需求,不需要另外的知識培訓(xùn),而且測試出發(fā)點較為客觀,所以被較普遍的推廣使用。
4、 測試在開發(fā)基本完成才啟動;
在傳統(tǒng)的瀑布型開發(fā)模式中,軟件測試位于編碼階段之后,是作為一個獨立階段存在的,許多人便一刀切地認(rèn)為應(yīng)該將所有的測試工作在編碼完成后再開始。這個觀點要不得,原因有二:
首先,若將測試工作細(xì)分,有許多工作是可以提前先期執(zhí)行的,如:需求書與設(shè)計書的學(xué)習(xí)、測試計劃的制定、測試人員的培訓(xùn)、測試腳本的建立、測試資源的搭建、測試模板的創(chuàng)建、測試工具的選擇等等,都是可以與其他階段并行處理的,這將大大縮短項目開發(fā)時間,為測試提供充分的時間保障,提高測試質(zhì)量。
其次,軟件缺陷發(fā)現(xiàn)的越晚,修改、補救所耗費的成本越高。引用Boehm在《Software Engineering Economics》一書中的話――“平均而言,如果在需求階段修證一個錯誤的代價是1,那么,在設(shè)計階段就是它的3-6倍,在編程階段是它的10倍,在內(nèi)部測試階段是它的20—40倍,在外部測試階段是它的30-70倍,而到了產(chǎn)品發(fā)布出去時,這個數(shù)字就是40-1000倍?!庇纱丝梢?,測試目標(biāo)的最佳定位應(yīng)該是:在錯誤第一次出現(xiàn)的時候就捕捉到它。所以,在盡可能的情況下,測試越早展開越好。
在項目的各個進行階段,都有不同的項目產(chǎn)品產(chǎn)生,他們質(zhì)量的好壞,對后續(xù)開發(fā)影響重大,所以,現(xiàn)在國際上比較流行的做法是:將測試融合到各個開發(fā)環(huán)節(jié)中去,盡早測試。
5、 測試案例、測試方案的重用率低下。
傳統(tǒng)的測試過程,測試管理不嚴(yán)密,測試人員未建立完整的測試庫,未將測試案例、測試程序、測試方案進行有效保存,等到回歸測試時,相關(guān)測試程序等往往已不知所終,無處可尋了;即使能找到這些程序、案例,可往往因為回歸測試過于頻繁、項目期限日益迫近,已經(jīng)沒有時間余量來修改、完善這些程序及案例,只能憑借經(jīng)驗、記憶及技術(shù)人員的口述對程序修改過的地方草草重測一遍而已,缺乏正規(guī)化的測試過程,造成測試的虎頭蛇尾。
正常的測試案例使用方式如上圖,測試設(shè)計階段