張偉俊
【摘 要】分析了基于框架的軟件產品線測試方法、當前的狀況以及相關的自動化測試工具,為確保軟件產品線的可靠性以及促使軟件生產在時間、成本和質量方面獲得顯著的改善提供了有力支持。
【關鍵詞】軟件產品線測試;面向對象的軟件測試;自動化工具支持
軟件產品線是一套軟件密集型系統(tǒng),它擁有一組能滿足特定需求的公共的、可管理的特性,并且是按預定義的方式由一組公共的核心資產開發(fā)而來。在軟件開發(fā)過程中,測試是一項持續(xù)性活動,同時也是一項勞動密集型活動。傳統(tǒng)的面向對象的測試方法是產品線測試的基礎,因為軟件產品線,尤其是框架通常是用面向對象技術來進行設計和實施的。為了確保框架的可靠性,在應用它之前必須進行仔細的檢測。實踐中,通常是通過測試應用程序來測試框架,因而難以區(qū)分框架和應用程序的編碼錯誤。同時,當前測試框架和產品線的方法還非常不成熟,因此對成熟測試方法的需求十分迫切,測試過程也應獲得測試工具更多的支持。
1.面向對象的軟件系統(tǒng)測試
1.1面向對象系統(tǒng)的測試方法與過程
為了保證軟件的質量和可靠性,應力求在分析、設計等各個開發(fā)階段,對軟件進行嚴格技術評審。近年來,測試的作用在很多組織中得以擴展,進而為軟件可靠性的評估提供技術支持。
面向對象技術產生更好的系統(tǒng)結構,更規(guī)范的編程風格,極大地優(yōu)化了數據使用的安全性,提高了程序代碼的使用率,然而正是因為面向對象技術開發(fā)的軟件代碼重用率高,這就需要更嚴格的測試,避免錯誤的繁衍。
1.2測試自動化和工具支持
近幾年來,許多研究工作者通過使用自動化的測試工具對軟件的質量進行保障研究。到現在為止自動化測試工具已經足夠完善了,完全可以應用自動化測試工具來大幅度地提高軟件測試的效率和質量。在使用自動化的測試工具的時候應盡早地開始測試工作,這樣可以使修改錯誤更加地容易和廉價,并且可以減少更正錯誤對軟件開發(fā)周期的影響。
自動化支持的一個關鍵因素是是否有用于所有測試交付物和工作產品的中心項目數據庫。這可以指的是測試管理系統(tǒng),包括用于對測試進行保存、描述、文檔化和跟蹤,并且對測試目標和結果進行記錄、跟蹤、評審的輔助設施。好的工具可以使得這些信息很容易被項目組獲得,并且提供穩(wěn)定的工作流支持來簡化和跟蹤軟件開發(fā)過程。
2.軟件產品線測試方法
在軟件產品線測試時雖然可以使用傳統(tǒng)面向對象的測試方法,但仍強烈需要一個明確定義的產品線測試過程和方法,包括工具支持。這是因為當一個產品線或多個產品線被測試時,一些具體問題就會暴露出來。例如規(guī)模問題,因為產品線中的所有應用都需要測試,這就使得產品線的測試要比單獨的產品測試要復雜得多。產品線測試的關鍵在于重用測試用例和測試件(Testware,指測試工作形成的產品),而不是將產品線中的每個軟件作為一個單獨的產品來進行測試。
2.1軟件產品線測試
產品線測試關系到多個方面,包括回歸測試、非完整性項目測試和有效使用可重用的測試資產等等?;貧w測試是用來確認前期可正常工作的組件在面臨某些修改時,是否還能正確運行。產品線中的成員在共享許多共性特征的基礎上又各自變化,因此回歸測試適合于產品線或重用情況。與單個系統(tǒng)開發(fā)項目不同,測試也是可以重用于大多數產品中的活動,它本身產生可重用的核心資產。建立可重用的測試資產能使產品線測試擁有較高的成本效益比。
產品線測試的主要問題可以從兩個方面來進行論述。在領域工程中測試核心資產時,測試者試圖減少應用測試,但卻很難保證軟件在不明確的用例情景下都正常運作;產品線中的成員在共享許多共性特征的基礎上又各自變化,測試者發(fā)現根據V 模型進行集成和系統(tǒng)測試并不可行。而在應用工程中,在核心資產和其它應用測試的基礎上,測試者想使充分測試特定產品的費用最小化,但很難確定哪些已有測試結果是可以利用的,哪些產品測試是必須進行的。
2.2當前產品線測試狀況
目前產品線測試的工作重心主要放在驗收和系統(tǒng)測試上。
但由于產品線中大量重用組件,因此它們的低級別測試(例如,單元級)也應該得到保證。換而言之,當前的研究和實踐主要集中在高級別的產品線測試上。假設傳統(tǒng)的面向對象的測試方法可以不做任何修改就用于產品線測試過程,那么這一假設存在許多疑點。例如,目前尚不清楚將使用哪一種面向對象的測試方法以及如何將之用于產品線測試,更加不清楚是否還需要新的、具體的產品線測試方法。
在基于框架的軟件產品線測試方法中,應用框架是產品線的核心,在所有應用從它產生之前就應該得到很好的測試。但是以框架為基礎的產品線的實際測試中,往往沒有使用產品線的任何信息。例如,諾基亞的移動瀏覽器產品線是按照如下要求進行產品線測試的:“產品線測試的復雜性要遠大于單個軟件產品的測試。必須測試在不同情景下的產品線。為了控制測試的復雜性,應縮減單個產品的測試,取而代之的是對整個產品線的測試。這樣才能保證測試的簡化以及產品質量”。
2.3軟件產品線自動化測試及相關工具支持
在軟件產品線測試方法中,工具支持比在傳統(tǒng)面向對象測試中更加重要。這是因為包含數個相同體系結構的產品線測試規(guī)模要大于單個產品測試。當一個組織有幾個產品線時,規(guī)模的問題就更加突出。產品線的工具支持因使用可重用的測試資產可以減少費用,并且使復雜的測試過程更易于管理。
現今有許多成熟的測試工具,但是產品線和框架測試缺乏有效的工具支持。通常這些工具也能夠應用于產品線的測試,但它們只適用于像單元測試這樣低級別的測試。在產品線方面,需要詳細而精確的測試工具。測試工具應有效地管理可重用的測試資產。工具支持應從測試執(zhí)行和測試結果的分析擴展到集成產品線測試的整個過程。
目前赫爾辛基大學已經開發(fā)出RITA工具。RITA是一個能覆蓋所有領域的測試支持工具。但是所有設計功能并沒有在RITA的第一版中完全實現。同時,RITA工具的焦點在于支持基于框架結構的低水平的白盒測試。
3.結束語
軟件產品線受到越來越多的關注和研究,特別是在工業(yè)應用領域。但是產品線的測試所受到的關注還是很少。產品線需要一個詳細規(guī)劃的測試過程,它要能夠比較容易地被不同的產品線應用領域所采納和運用。然而,測試產品線是一項非常具有挑戰(zhàn)性的工作。因此迫切需要一些成熟的測試方法和工具。
【參考文獻】
[1]王建輝.論軟件產品線技術[J].福建電腦,2007,(02).
[2]江瑜.基于軟件產品線的需求分析研究[J].計算機工程與設計,2007,(08).
[3]邢瑜琨,劉超,高仲儀,金茂忠.基于構件和框架、面向方面的軟件產品線開發(fā)方法CFB-AOD[J].微計算機信息,2006,(27).
[4]郭軍,張斌,高巖,高克寧.支持漸變過程的軟件產品線框架的研究[J].小型微型計算機系統(tǒng),2007,(02).