4、相關工作
盡管UML在工業界和研究領域用得相當廣泛,關于UML生成測試的研究相對較少。一般測試生成都是將UML模型圖轉換到一個現成工具能夠處理的中間的形式化描述,從而可以處理UML規約?;赨ML分析、設計模型獲取系統的相關信息生成各個階段的測試用例的研究近年來有不少成果,從設計階段的模型圖生成集成測試用例的研究較少,[13]提出一個新的基于UML的測試模型生成集成測試的測試用例的方法,該方法首先分析軟件系統的順序圖和協作圖,提取組件間的事件流,根據組件之間的消息轉移將順序圖和協作圖劃分為一組原子系統功能(ASF)單元,以每個ASF為一個節點、消息流為邊構造測試模型,使用面向對象的集成測試方法在測試模型上生成測試用例。
[12]提出基于UML設計規約生成集成測試用例的方法,用UML狀態機圖建立軟件動態行為的模型,組件之間的交互用圖上注解表示,將設計規約模型轉化為與集成系統的動態行為相應的全局FSM,在FSM上基于一定的覆蓋準則使用常規的等價類劃分方法生成可用于單元和集成測試的測試用例。[14]提出一種不需要其他形式化知識、只在UML框架內完成測試用例生成的UIT方法,選擇實現和執行每個用例圖描述的功能的相應順序圖、協作圖以及類圖,分析圖中元素的語義,識別出作為測試單元的參與交互的對象和與其相關的消息的等價類,定義測試規約,從圖中找到消息順序,使用傳統的Category Partition Method分析消息順序,生成最終的測試用例。[15]分析了UML規約級和實例級協作圖中所能表示的信息,將信息進行分類,有些信息可以用于對最終程序的靜態檢查,有些信息可用于動態測試;并設計了一個根據協作圖中信息對相應生成的程序進行插裝的算法,實現對測試滿足測試準則的程度的度量,但生成測試用例的方法還沒有給出。[16] 提出了一個基于UML順序圖設計的面向對象的軟件的自動測試的概念和相應的實現工具SeDiTeC。該方法提出一個可測試的順序圖的規則,凡是滿足可測試性需求的軟件系統的順序圖設計模型都可以作為測試規約,并介紹了從一個順序圖中生成測試用例的方法,在SeDiTeC中實現了完整的測試過程。
本文提出的從UML設計模型圖(協作圖、類圖)生成集成測試用例的方法,可以對表示復雜場景的協作圖進行處理,與上述方法是有一定區別,也是互補的。
5、總結和將來的工作
本文提出了一個基于UML協作圖,采用協作集成測試模式生成集成測試用例的方法,用基于線程執行的方法識別協作圖中的場景路徑,用控制流和數據流方法遍歷場景路徑獲取交互中的參數變量和方法調用序列,最后使用范疇-劃分方法找到場景路徑上的變量、方法、輸入、輸出、環境條件的合理組合作為覆蓋該場景路徑的測試用例;該方法的特點是:1、集合白盒方法和黑盒方法對協作圖描述的灰盒行為進行測試;2、完全基于UML;3、生成較少的測試用例;4、便于實現自動化。
對基于UML生成測試用例的研究還存在許多不足?;谠O計描述的形式化的測試準則相對還較少,基于UML模型圖生成測試用例的方法也在不停的研究與發展中,目前對UML模型圖作進一步精化或擴展其語義后,使用常規方法進行測試用例生成的情況較多,直接使用UML模型圖提供的信息的方法較少;把單個模型圖作為研究對象的較多,多個模型為同一測試用例生成提供信息的研究較少;針對測試過程中特定級別的測試(類級測試、集成測試)生成測試用例的方法較多,同一模型圖為多個級別測試生成測試用例的研究較少;在具體的方法研究中,假設的前提和約束太多,還不能夠達到實用的程度;對方法提供自動支持的工具大多是實驗室原型,還不能應用到工業界;可應用的領域還有許多局限;缺少整體的、系統的解決方法,還沒有能夠把待測試系統的所有能夠為測試用例生成提供信息的模型圖綜合利用,形成一個系統的測試用例生成方法,這也正是我們將來的研究方向。
我們將來的研究工作主要有幾個目標:第一,提出一種與面向對象軟件開發過程集成的測試過程,測試用例應以增量、系統的、與項目成本和進度相適應的可管理的數目的方法產生,利用業務模型生成用戶驗收測試的測試用例,利用UML分析模型生成系統測試的測試用例,利用UML設計模型生成集成測試的測試用例,利用實現模型生成單元測試的測試用例,能夠合理計劃測試資源,并能夠對軟件開發過程起到過程改進的作用;第二,針對UML單個模型圖,研究其在為不同層次測試生成測試用例的方法,提出相應可行的測試準則和評估方法,盡量能夠直接使用UML模型文檔;第三,針對某一層次測試的測試用例生成時,研究綜合利用待測試系統的各種模型圖生成該測試層次的測試用例的方法;第四,為上述方法提供自動的工具支持,并希望能夠與主流建模工具、測試工具集成。
參考文獻:
[1]Imran Bashir, Amrit L. Goel, Testing Object-oriented Software: Life Cycle Solution[M],Springer-Verlag New York, Inc 1999
[2]David C.Kung, Pei Hsia, Jerry Gao, Testing Object-oriented Software[C], IEEE Computer Society,1999
[3] Beizer. Black-box Testing:Techniques for functional testing of software and systems[M], John Wiley&Sons,Inc, New York 1995
[4]Paul C. Jorgrnsen, Software Testing: A Craftsman’s Approach [M], CRC Press,Inc, 1995
[5]UML Specification 1.5[S], available at http://www.omg.org/uml
[6]Grade Booch, James Rumbaugh, Ivar Jacobson著 邵維忠等譯 UML 用戶指南[M], 機械工業出版社,Addison-Wesley 2001
[7]Grade Booch, James Rumbaugh, Ivar Jacobson著,姚淑珍,唐發根等譯,UML 參考手冊[M],機械工業出版社,Addison-Wesley 2001
[8]Grade Booch, James Rumbaugh, Ivar Jacobson著,周伯生,馮學民,樊東平 譯,統一的軟件開發過程[M], 機械工業出版社,Addison-Wesley 2001
[9]Robert V. Binder著 華慶一 王斌君 陳莉 譯 面向對象系統的測試[M], 人民郵電出版社2001
[10]Philippe Kruchten, The Rational Unified Process –An Introduction[M], 2nd edition, Addison-Wesley, Reading, MA, 2000
原文轉自:http://www.anti-gravitydesign.com