決定軟件測試的那只無形的手[2] 軟件測試
原因只有一個,那就是與對測試部門的投入相比,測試部門能夠減少費用支出或者避免損失。當然,從另一個角度想這其實就是在創造價值,就是測試的產出,而且這個產出一定要高于對測試部門的投入,并且其商業效率應該不低于軟件投資的平均資產增值率。否則,我們將有理由直接將測試部門從公司的部門列表中刪掉,并省下這筆投入。
所以,說測試能夠保證軟件的質量也好,說測試能夠提高客戶滿意度也好,其實這些都是測試在整個軟件商業鏈條中的一種價值的體現,但并不是軟件測試存在的根本原因。如果測試的商業利益是負的,或者測試的商業效率低于平均的軟件投資的平均資產增值率,那么這樣質量應該沒有哪個軟件企業愿意去保證,這樣的客戶滿意度也沒有哪個企業愿意去提高。
真實的測試案例
以下是幾個真實的測試設計與決策的案例。一年前,我到美國總部的測試實驗室去了解那里是如何在Windows Mobile和CE上測試射頻驅動程序(此驅動程序用于驅動手機或嵌入式設備上的射頻電話模塊)的。在那里我得到了對這些案例的正確解讀。
自動化測試VS完備文檔。
在實驗室中,我見到了我所見過的最大的自動化測試系統。所有的功能測試都是通過這種自動化系統完成的。系統由數量巨大的測試設備和中心測試驅動服務器組成,測試人員只要通過遠程的客戶端安排自動化測試任務并將之提交到中心測試驅動服務器上即可,其余的工作將由中心測試驅動服務器完成。這個過程包括搜索處于空閑狀態的測試設備,啟動并控制測試設備,并在測試完成后收集日志數據信息和計算測試通過率。
這時,我突然想到了我先前的疑惑——為什么與編寫完備的測試文檔相比,我們在實際工作中更看重測試的自動化?我的美國同事給我的回答是:運行成本的原因。編寫完備的測試文檔自然是能夠幫助測試小組完整的記錄所有的測試用例,但是對于一個在操作系統上起著重要作用的驅動程序而言,每周兩次的回歸測試是才是保證驅動程序質量的根本手段?梢韵胂,如果沒有自動化測試,而是依據文檔中的測試用例,這種頻繁的回歸測試將會消耗多少人力物力。而與此同時,自動化的測試程序和用例使用統一的測試框架,并且輔助以相當的注釋,這樣測試程序和用例的代碼本身已經能夠很好的說明測試用例的詳細信息,所以在文檔中便不再需要重復的詳細信息了。
龐大到不可思議的壓力測試系統。
在實驗室中,我見到了我所見過的最大的壓力測試系統。這個系統整整擺滿了三排鐵架子,幾乎占了整個實驗室的四分之一的位置。架子上除了幾臺用于日志數據分析的服務器以外,剩下的全都是各種各樣的手機或者嵌入式系統。架子上沒有測試驅動服務器,因為測試驅動服務是通過網絡由中心測試驅動服務器提供的,這種服務是所有測試系統共享的。這些設備自動化的從中心測試驅動服務器得到壓力測試用例集,并自動運行13小時左右的壓力測試,與此同步的是產生的日志數據將通過中心測試驅動服務器傳輸給日志分析服務器用于錯誤分析。當測試結束或者有不可恢復的程序錯誤或者系統錯誤出現時,測試設備將停止測試,并由中心測試驅動服務器撲捉這種事件,在經過適當的記錄和處理后測試設備將被重置,并且準備進行下一次壓力測試。這樣龐大的壓力測試系統令我產生了疑問——為什么我們需要如此大力度的壓力測試?花費如此多的人力物力是否值得?
我從美國同事那里得到的答案是這樣的。其實開始的時候并沒有這樣龐大的壓力測試系統。和許多其他項目的壓力測試類似,針對射頻驅動程序的壓力測試也只是在一兩種嵌入式系統上進行,而且根本沒有手機參與其中。但是,從后來的用戶反饋中發現,在很多手機和嵌入式系統上都存在著長時間反復使用電話功能后電話短信功能失靈的現象,而在已有的壓力測試過程中并沒有發現類似的問題。來自OEM的壓力越來越大,OEM的反饋表明這個問題增加了他們通過入網測試時的難度,使得研發成本增加了很多,與此同時,客戶服務部門也在抱怨此類問題加重了他們的日常工作。問題已經變得很嚴重了,于是這個測試小組做了一個決定,擴大壓力測試的范圍、頻度和力度。從此,很多手機和嵌入式系統就逐步的加入了這個壓力測試系統。另外,原先的系統中是沒有日志數據分析服務器的,但是隨著測試設備的日益增多,在海量的日志數據中捕捉出錯信息的工作也變得越來越繁重,測試小組無法再提供更多的人力用于分析這些日志數據。于是又有人提議架設一臺能夠用于分析日志數據的服務器,程序由測試開發工程師設計和編寫,并負責日常維護。后來,隨著測試設備的繼續增加,一臺服務器不能滿足其要求了,于是又增加了幾臺,直到今天的規模。在這個系統投入測試后的一段時間內,很多非常難于發現的bug浮出了水面,在修正了這些bug后先前提到的問題就基本絕跡了。
很明顯,建立如此龐大的壓力測試系統的真正原因是OEM和客戶服務部門由于驅動程序穩定性差而產生的巨大費用造成的。從測試原理本身或者測試小組對于產品質量的理解出發并不能支持建立這樣大的壓力測試系統,所以說這個測試系統是商業利益驅動的。
文章來源于領測軟件測試網 http://www.kjueaiud.com/