基于Rational 的B/S 架構軟件自動化測試研究[2] 軟件測試
1 軟件測試及其自動化測試技術
1.1 軟件缺陷代價
軟件缺陷,通常稱之為Bug,是軟件質量的對立面:即存在著不符合質量需求或違背軟件用戶、客戶、企業意愿的一系列問題。軟件測試的目的在于盡快盡早地發現更多的缺陷,并監督和幫助開發人員修正缺陷。
缺陷發現得越晚,修復缺陷所付出的代價就高。缺陷代價與軟件生命周期各階段的關系曲線圖,在軟件工程中,越到工程項目后期,發現單位Bug并修復其所花的成本代價越大。例如IBM 每年都要花費2.5 億美元來修復和改正1.3 萬個客戶反饋的缺陷,平均每個缺陷約合2000 美元。
總之,軟件測試越早介入對整個工程越有利,對后期損失也越小。
1.2 傳統手工測試和軟件自動化測試
軟件測試工作量很大,一般大型應用軟件用于測試的時間占整個工程的50%以上,用于高可靠性高穩定性軟件的測試時間則更多。由于手工測試存在著很多局限性:首先,它無法做到全代碼路徑覆蓋,且對于一些簡單功能性、機械性、重復性的測試工作量過大,它很難捕捉許多與時序、死鎖、資源沖突等相關的錯誤,
無法模擬大量數據或大量并發用戶下的性能測試場合,對于一些模擬較長年限工作的系統穩定性工作也無法展開,想在短時間內完成成千上萬個測試用例的測試工作不現實,更不用說做大量的回歸測試和性能測試。軟件自動化測試技術將彌補手工測試的以上不足并合理解決問題,利用自動化測試工具,
編寫腳本程序并自動執行模擬用戶對計算機的操作過程行為,可以大大提高測試的工作效率。實施自動化測試和手工測試的效率。通常,除了在制定計劃制度階段沒有明顯改善效率外,在其它各個階段,軟件自動化測試技術都大大提升了軟件測試的效率,并將測試工作總量減少75%。雖然自動化測試在測試第一次執行時,
修改性較差,開支也比較大,但是運行很多次后,卻比手工測試經濟得多??梢杂肒eviat 圖來說明軟件測試的4 個質量特性。由Keviat 模型可知,測試的每個特性的每個坐標點越大,連線組成的封閉區域越大,測試效率也就越高。
1.3 自動化回歸測試
所謂回歸測試,就是指在軟件新一輪的Build(即軟件最新且未經測試的版本) 出來后,對原軟件代碼有修改的部分,不論是修改錯誤還是新增功能或提高性能,必須重新測試現有的功能,以便確定修改是否達到了預期目的,是否損害了原有的正常功能,以保證對代碼修改的正確性,
且不會對其余部分帶來負面影響。由于回歸測試要頻繁重復地運行,工作量很大,是使用自動化測試技術的最佳時期,自動化測試技術可以使軟件回歸測試以非常高效的方式進行。