1.3 基于接口參數的測試用例自動生成算法
在軟件測試工作中,由于輸入、輸出空間,特別是輸入空間的無限性,使得無法對軟件進行全面的測試。因此,如何從大量的輸入數據中挑選適量的具有代表性、典型性的數據,特別是怎樣用較少的測試用例對軟件進行較全面的測試是測試人員面臨的一大難題。
測試用例的選擇無論是對黑箱測試還是對白箱測試都起著關鍵的作用,決定著軟件測試的質量和效果。所謂測試用例選擇就是指從所有的可用測試用例中選出少量典型的測試用例,以達到對測試域的最大限度覆蓋。多年來,許多研究者對之進行了廣泛而深入的研究,并取得了許多研究成果。常用的基于接接口參數的黑箱測試用例選擇方法是對系統每個接口參數采用邊際值分析法和等價類劃分法等選取一組典型的值,然后在這些取值組合中隨機選取一組測試用例,或者使用一些啟發式方法從中進行篩選。但這些方法的缺點是帶有主觀傾向性,不具有普遍性。
2 基于敏捷測試的相關技術討論
2.1 FIT框架及應用
在敏捷開發過程中,軟件測試是至關重要的,尤其是在最為流行的敏捷開發過程:極限編程(XP)中顯的更為突出。誠然,所有的過程都提到測試,但一般都不怎么強調??墒荴P將測試作為開發的基礎,要求每個程序員寫一段源碼時都得寫相應的測試碼。這些測試片段不斷地積累并被整合到系統中。這樣的過程會產生一個高度可靠的建造平臺,為進一步開發提供了良好的基礎。
但是,即使是單元測試工具JUnit也存在一些缺點:比如JUnit里要進行數據填充,但是數據經常改變,使維護工作變成了可怕的噩夢,測試不同的組合,需要不同的數據,這也許會使測試工作變得日益復雜。而目前的集成測試又缺乏有效的方法論,不能自動化,測試的質量比較依賴測試人員的水平。
Framework for Integrated Test(簡稱FIT)就是一個用于增強交流和協作的工具。FIT創建了一個在客戶和程序員之間的反饋循環。FIT讓客戶和測試人員可以使用諸如Microsoft Office之類的工具來給出程序應當如何表現的例子——而無需成為直接編碼的程序員。FIT自動針對實際的程序檢測那些例子,這樣就在業務世界和軟件工程世界之間建立了一個簡單而且有效的橋梁。
FIT給予了客戶和程序員一個關于軟件的精確交流的方法??蛻羲o的具體的例子讓程序員能深刻理解將要構建的產品。程序員的對于裝置的工作和軟件可以讓客戶給出不同的例子進行試驗來獲取對于軟件如何真正工作更深入的了解。這樣通過一起工作,整個團隊可以學會更多關于產品的內容并產生更好的結果。
2.2 測試用例自動生成技術
正交試驗設計起源于科學試驗,它由田口玄一博士在1949年創立,并于60年代初從日本傳人中國。它應用依據Galois理論導出的正交表,從大量試驗條件中挑選出適量的、有代表性的條件來合理地安排試驗。運用這種方法安排的試驗具有“均勻分散、整齊可比”的特點?!熬鶆蚍稚ⅰ毙允乖囼烖c均衡地分布在試驗范圍內,讓每個試驗點有充分的代表性;“整齊可比”性使試驗結果的分析十分方便,可以估計各因素對指標的影響,找出影響事物變化的主要因素。
但正交試驗設計仍然存在著一些有待解決的弊端:比如正交表難以構造,因素、水平過多時測試用例數目還是過多等。所以一些專家又提出一種基于對接口參數進行組合覆蓋的黑箱測試用例自動生成算法模型,據此來得到一個對所有接口參數進行兩兩組合覆蓋的測試用例表。這種方法有著類似正交試驗設計的特點,實際上,在特定情況下,這種算法模型得出的測試用例表就是正交表。
3 技術實現的考慮
3.1 基于FIT框架對軟件進行集成測試
使用基于FIT框架的開源FIT工具來實現真正的測試先行開發過程,并讓客戶、需求提報工程師、開發人員、以及測試人員進行協同工作,達到需求更精準、減少需求更改、測試數據與JUnit單元測試代碼分離的目的,讓這一切更簡潔、更易于維護。
將根據以下步驟進行研究:
原文轉自:http://www.anti-gravitydesign.com