軟件測試中自動化測試的成功經驗

1. 傳統軟件測試過程中的問題
測試在所有的軟件開發過程中都是最重要的部分。在軟件開發過程中,一方面要求我們通過測試活動驗證所開發的軟件在功能上滿足軟件需求中描述的每一條特性,性能上滿足客戶要求的負載壓力和相應的響應時間、吞吐量要求;另一方面,面向市場和客戶,開發團隊還要滿足在預算範圍內儘快發佈軟件的要求。 傳統的軟件測試流程一般是先在軟件開發過程中進行少量的單元測試,然後在整個軟件開發結束階段,集中進行大量的測試,包括功能和性能的集成測試和系統測試。隨着開發的軟件項目越來越複雜,傳統的軟件測試流程不可避免地給我們的工作帶來以下問題:
  問題一:項目進度難於控制,項目管理難度加大
  如圖一所示,大量的軟件錯誤往往只有到了項目後期系統測試時才能夠被發現,解決問題所花的時間很難預料,經常導致項目進度無法控制,同時在整個軟件開發過程中,項目管理人員缺乏對軟件質量狀況的瞭解和控制,加大了項目管理難度。
  

  圖一、傳統測試流程中存在的問題


  題二:對於項目風險的控制能力較弱
  項目風險在項目開發較晚的時候才能夠真正降低。往往是經過系統測試之後,才真正確定該設計是否能夠滿足系統功能、性能和可靠性方面的需求。
  問題三:軟件項目開發費用超出預算
  在整個軟件開發週期中,錯誤發現的越晚,單位錯誤修復成本越高,如圖二所示,錯誤的延遲解決必然導致整個項目成本的急劇增加。
                           圖二、傳統測試流程中存在的問題
   2. 採用軟件自動化測試工具是解決傳統測試問題的最佳成功經驗
  軟件自動化測試技術核心的三個最佳成功經驗是:儘早測試、連續測試、自動化測試,並在此基礎上提供了完整的軟件測試流程和一整套的軟件自動化測試工具,使我們最終能夠做到:一個測試團隊,基於一套完整的軟件測試流程,使用一套完整的自動化軟件測試工具,完成全方位的軟件質量驗證。
  2.1成功經驗一:儘早測試
  所謂儘早測試是指在整個軟件開發生命週期中通過各種軟件工程技術儘量早的完成各種軟件測試任務的一種思想。軟件自動化測試工具主要在以下三個方面爲我們提供的儘早測試的軟件工程技術:
  首先,軟件的整個測試生命週期是與軟件的開發生命週期基本平齊的過程,當需求分析基本明確後我們就應該基於需求分析的結果和整個項目計劃來進行軟件的測試計劃;伴隨着分析設計過程同時應該完成測試用例的設計;當軟件的第一個發佈出來後,測試人員要馬上基於它進行測試腳本的實現,並基於測試計劃中的測試目的執行測試用例,對測試結果進行評估報告。這樣,我們可以通過各種測試指標實時監控項目質量狀況,提高對整個項目的控制和管理能力。
  其次,通過迭代是軟件開發把原來的整個軟件開發生命週期分成多個迭代週期,在每個迭代週期都進行測試,這樣在很大程度上提前了軟件系統測試發生的時間,這可以在很大程度上降低項目風險和項目開發成本。
  最後,軟件自動化測試工具的儘早測試成功經驗還體現在它擴展了傳統軟件測試階段從單元測試、集成測試到系統測試、驗收測試的劃分,將整個軟件的測試按階段劃分成開發員測試和系統測試兩個階段,如圖三所示,它把軟件的測試責無旁貸地擴展到整個開發人員的工作過程。通過提前測試發生的時間來儘早地提高軟件質量、降低軟件測試成本。

  圖三、軟件自動化測試工具測試方法對測試階段的劃分


  2.2.成功經驗二:連續測試
  測試成功經驗連續測試是從迭代式軟件開發模式得來。在迭代化的方法中,我們將整個項目的開發目標劃分成爲一些更易於完成和達到的階段性小目標,這些小目標都有一個定義明確的階段性評估標準。迭代就是爲了完成一定的階段性目標而從事的一系列開發活動,在每個迭代開始前都要根據項目當前的狀態和所要達到的階段性目標制定迭代計劃,而且每個迭代中都包括需求、設計、編碼、集成、測試等一系列的開發活動,都會增量式集成一些新的系統功能。通過每次迭代,我們都產生一個可運行的系統,通過對於這個可運行系統的測試來評估該次迭代有沒有達到預定的迭代目標,並以此爲依據來制定下一次迭代的目標。由此可見,在迭代式軟件開發的每個迭代週期我們都會進行軟件測試活動,整個軟件測試的完成是通過每個迭代週期不斷增量測試和迴歸測試實現的。
  採用連續測試的軟件成功測試經驗,不但能夠持續的提高軟件質量、監控質量狀態,同時也使系統測試的儘早實現成爲可能。從而有效的控制開發風險、減低測試成本和保證項目進度。
  2.3.成功經驗三:自動化測試
  在整個軟件的測試過程中要想實現儘早測試、連續測試,可以說完善的測試流程是前提,自動化測試工具是保證。軟件自動化測試工具的自動化測試成功經驗主要是指利用軟件測試工具提供完整的軟件測試流程的支持和各種測試的自動化實現。
  爲了使各種軟件測試團隊更好地進行測試,軟件自動化測試工具在提供了測試成功經驗之外,還爲我們提供了一整套的軟件測試流程和自動化測試工具,使軟件測試團隊能夠從容不迫地完成整個測試任務。
  軟件自動化測試工具主要爲軟件測試團隊提供測試成功經驗、自動化測試工具和全方位的諮詢服務三方面的支持,最終實現:一個測試團隊,基於一套完整的軟件測試流程,使用一套完整的自動化軟件測試工具,完成全方位的軟件質量驗證,這正是軟件自動化測試工具測試解決方案的精髓和終極目標。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章