摘要:程序被修改后,要保證程序能正常運行并且修改不能給程序質量帶來任何負面影響,回歸測試是必要的。大型軟件系統結構復雜,構成要素多,如何做到不遺漏功能點同時降低軟件回歸測試代價,本文結合業務規則模型、修改影響分析和成本風險管理等技術提出了一種自動化回歸測試方法。

  1、引言

  在軟件測試過程中,由于需要對軟件進行修改,修改后的程序必須重新測試,以確保程序的修改是否達到了目的和是否引入了新的錯誤,這種測試是回歸測試。軟件的變化可能是源于發現了錯誤并做了修改,也有可能是因為在集成或維護階段加入了新的模塊。當軟件中所包含的錯誤被發現時,如果對錯誤的跟蹤管理系統不夠完善,可能會遺漏對這些錯誤的修改;而開發人員對錯誤理解的不夠透徹,也可能導致所做的修改只修正了錯誤的外在表現,沒有修改錯誤本身,甚至可能產生副作用,從而導致軟件未被修改的部分又產生新的問題,使本來正常的功能產生錯誤。同樣,在有新代碼加入軟件的時候,除了新加入的代碼中有可能含有錯誤外,新代碼還有可能對原有的代碼帶來影響。因此,每當軟件發生變化時,我們必須重新測試現有的功能,以便確定修改是否達到了預期的目的,檢查修改是否損害了原有的正常功能。因此需要進行回歸測試。

  回歸測試是一種代價較高,比較耗時的測試方法,然而又是必不可少的。大型軟件通常規模大,系統結構復雜,構成要素多、層次多,在漸進和快速迭代開發中,新版本的連續發布使回歸測試的實施更加頻繁。因此,通過選擇正確的回歸測試策略來改進回歸測試的效率和效果,減小回歸測試代價是非常有意義的。

  2、大型軟件回歸測試面臨的問題

  大型軟件回歸測試面臨兩個重大難題:一是系統變更引起的回歸測試范圍無法準確界定;二是參數組合引起的測試用例急劇膨脹,無法在較短時間內以合理成本完成低覆蓋率要求的回歸測試。而且大型軟件回歸測試往往受到測試時間和測試環境條件的約束,而測試的工程性質又決定了它不可能達到理論上的完整。

  在有限的時間和資源條件下,為了更合理的規劃和安排測試工作,在測試計劃的制定階段需要一個決策機制能夠在資源約束,如時間、人力、成本的前提下基于風險管理和測試成本預算進行決策。

  隨著軟件生命周期的推進,軟件的開發與回歸測試反復迭代,規則的表達逐漸完善,測試用例庫越來越豐富,回歸測試的實施效率將越來越高。

  3、大型軟件回歸測試方法

  通過構建回歸測試決策支持平臺可以為大型軟件的回歸測試提供可行的解決方案。

  3.1 業務規則

  業務規則是定義和約束業務結構與業務行為的規定或規范,是業務運作和管理決策所依賴的重要資源。建立大型軟件業務規則模型正是要繼承測試專家所積累的業務知識,使事實上得到使用的規則有一種顯式的表達。在此基礎上,結合測試理論和規則的整合以及用例優化算法,建立自動化用例生成系統。

  業務規則的來源一般包括:

  1)業務需求導出的規則;

  2)測試理論原則導出的規則;

  3)軟件業傳統導出的規則;

  4)業內常識導出的規則。

  業務規則模型的基礎是手工測試中積累的一系列用例設計規則、行業規范和源于業務的特殊約束。業務規則模型用于表達這些手工時代的規則,并建立一種可加載規則的引擎結構,在通過該引擎加載規則后,可以通過決策支持系統生成面向某個具體過程的用例模板的基礎用例集。

  所謂規則的加載,是將某條規則加入規則庫中,重點是適用條件的表達和優化算法的指定。

  對于一個目標系統,一次窮盡所有可能的規則是不可能的,只能漸進地逼進,所以應該允許手工追加規則,這一過程是業務規則模型的學習過程。