<ruby id="rxdll"></ruby><strike id="rxdll"></strike>

    <rp id="rxdll"></rp>
      <del id="rxdll"><meter id="rxdll"></meter></del>
      <pre id="rxdll"><font id="rxdll"></font></pre>
        <pre id="rxdll"></pre>
      <p id="rxdll"><thead id="rxdll"></thead></p><dl id="rxdll"><progress id="rxdll"><form id="rxdll"></form></progress></dl>

      <ol id="rxdll"><thead id="rxdll"><track id="rxdll"></track></thead></ol>
      <i id="rxdll"><dfn id="rxdll"></dfn></i>
      <font id="rxdll"><meter id="rxdll"></meter></font>

        <mark id="rxdll"><dfn id="rxdll"></dfn></mark>
        • 軟件測試技術
        • 軟件測試博客
        • 軟件測試視頻
        • 開源軟件測試技術
        • 軟件測試論壇
        • 軟件測試沙龍
        • 軟件測試資料下載
        • 軟件測試雜志
        • 軟件測試人才招聘
          暫時沒有公告

        字號: | 推薦給好友 上一篇 | 下一篇

        一個基于UML協作圖的集成測試用例生成方法(一)

        發布: 2008-9-01 10:38 | 作者: 網絡轉載 | 來源: 51testing論壇 | 查看: 106次 | 進入軟件測試論壇討論

        領測軟件測試網
        一個基于UML協作圖的集成測試用例生成方法 王林章 (南京大學計算機科學與技術系,南京市漢口路22號419信箱,210093,南京)摘要: UML協作圖描述了系統的一個協作中參與對象之間的結構關系和交互行為,確認它們是否被正確實現是集成測試的工作。本文提出了一個基于UML協作圖生成集成測試用例的方法,將表示設計的協作圖作為測試模型,并從中提取相關信息生成用于測試所描述的行為的集成測試用例。首先通過遍歷每條消息的直接后繼識別協作圖中的表示用例實現的所有可能的場景路徑,然后在遍歷每條場景路徑的過程中獲取相應協作執行的路徑條件、參數變量和預期方法調用序列,最后使用范疇-劃分方法確定場景路徑上的輸入、輸出、環境條件的合理組合作為覆蓋該場景路徑的測試用例,用于測試一個協作場景路徑上的交互行為。該方法完全基于UML,集合了白盒方法和黑盒方法,生成了較少的測試用例覆蓋所有的測試需求。本文將該方法應用于一個ATM建立會話的用例片斷實現的實例,證明了其可行性和實用性,并提出了一個用UML設計的工具框架,以實現該方法的自動化,使得其可以方便地集成到使用UML的軟件開發過程中。關鍵詞:測試用例生成,集成測試,UML協作圖,場景路徑

        中圖分類號 :。裕311   文獻標識碼 :    文章編號 :

        An Approach to Generate Integration Test Cases based on UML Collaboration Diagrams Linzhang Wang, Xuandong Li,Guoliang Zheng (CS Department , Nanjing University, Hankou Road 22 P.O. Box 419, 210093, Nanjing) Abstract: UML collaboration diagrams represent the structure relationship and interactive behavior of the objects involving in a collaboration of the software system, whether they are correctly implemented or not can be validated by integration testing. This paper propose an approach to generate integration test cases based on UML collaboration diagrams, take collaboration diagram as test model, from which we can extract information to generate integration test cases for testing the behavior. Firstly, the method identifies all the scenario paths in the diagram which represent use case realization by traverse the direct successors of each message. Then it selects and traverses each scenario path to get the method call sequence, path condition and parameters. Lastly, it applies category partition method to generate rational combination of input parameters, environmental conditions, as well as the corresponding output and method call sequence, to form a test case for each scenario path, thus we can test the interactive behavior of the software. This method completely base on UML, combine white-box and black-box test method to generate fewer test cases to test the gray-box behavior. In this paper, we apply this approach to an example of constructing sessions between cardholder and the bank through ATM, proving its feasibility and practicability, also propose a corresponding tool framework to facilitate its automation, thus to easily be deployed into the UML –based software development process. Keywords: test cases generation, integration testing, UML collaboration diagram, scenario path 1、引言 面向對象的技術因為能夠解決傳統程序設計語言的問題,自提出后,一度成為研究熱點,事實上采用面向對象技術減少了不少錯誤的發生,對于提高軟件質量起到了很大的作用,但是面向對象技術本身在任何情況下都不會排除軟件測試的動機,同時面向對象語言的本質特征,如繼承、封裝、和多態等,也帶來了新的故障風險,并給軟件測試提出了新的挑戰。[1,2,9] 區別于傳統軟件的功能分解,面向對象軟件是通過合成來構造軟件的,因而集成是面向對象軟件開發中最重要的工作,面向對象軟件構造過程中有的不同層次的集成,包括:從方法到類的集成,類通過繼承集成,類通過容器集成,類到組件的集成,組件到應用系統的集成。在面向對象的迭代式增量開發過程中,通過不斷的集成產生系統的可執行的版本,但每一個集成的環節都可能引入錯誤,導致軟件中存在缺陷,為了能夠發現軟件集成中的問題,面向對象軟件的集成測試非常重要。[4] 對于傳統軟件的集成測試,可以根據設計階段形成的功能分解樹,采用自頂向下或自底向上逐步測試用經過測試的單元組裝成系統的過程中有無錯誤。[3]而面向對象軟件采用的是通過組合實現系統的功能,沒有一個功能分解樹可用,所以傳統的基于功能分解的集成測試策略不適合面向對象軟件。要檢驗最終實現中各種集成是否與設計的集成一致,則需要對每一個集成層次進行測試,而這里的集成分為結構集成和行為集成,所以面向對象軟件的集成測試包含結構集成測試和行為集成測試。結構集成測試主要測試類的繼承、類的容器、類的接口、組件的接口中有無錯誤;行為集成測試主要是類內方法交互、類間方法交互、組件間交互是否被錯誤地實現。測試工作的核心主要是生成測試用例,在面向對象軟件開發過程中系統的規約、設計、代碼是生成測試的信息來源,是軟件在其生命周期不同階段的變體,當然規約、設計、代碼在每一階段的測試中都起相應的作用,特別地,系統規約是生成系統測試的測試用例的基礎和系統測試的檢驗依據,軟件代碼是生成單元測試用例的基礎和單元測試的檢驗依據,系統設計是生成集成測試用例和集成測試的檢驗依據。系統的設計信息有助于理解系統功能和結構,設計模型包含規約和程序結構的信息,同時也描述了系統的相應功能片斷的行為,因此也被稱為灰盒?梢越Y合白盒測試黑盒測試方法,從設計信息生成集成測試用例,測試設計模型表示的軟件系統的灰盒行為。 UML是面向對象系統分析、設計的標準的建模語言,自從在1997年成為建模語言事實上的標準后,就得到學術界的推崇和工業界的支持,使得UML廣為使用,基于UML的方法和實用技術的研究成為將來的發展趨勢。UML對面向對象軟件開發全生命周期的支持也使得軟件開發人員優先用它來描述系統。[8]正像集許多優點的面向對象技術不能免除軟件測試一樣,使用UML進行面向對象軟件開發,在提高軟件質量的同時,仍然需要測試來確認軟件分析、設計、實現的一致性和正確性。同時基于UML開發的軟件系統,軟件開發的分析、設計階段工作成果多為各種模型圖,系統的可用信息都在這些模型圖中,給信息的提取帶來了新的問題,從而也給測試帶來新的課題。對測試而言,原先的基于規約或者是基于程序的方法都不能直接使用,對基于UML模型的測試,要將問題轉換到原來傳統測試方法可以處理的問題空間中加以解決,轉換工作主要解決信息提取問題,然后用常規測試方法生成測試。面向對象的軟件中,對象通過交互來實現行為,UML的交互圖[6,7]是描述一組對象間的結構關系和交互行為設計的最佳選擇,主要有順序圖和協作圖兩種,順序圖關注全局的時序,協作圖關注協作對象之間的關系,本文主要研究協作圖。UML協作圖描述了系統的一個協作中參與對象之間如何交互,集成測試正是要驗證這些對象是否正確交互,所以我們研究基于UML協作圖的集成測試用例生成方法。本文中我們使用UML協作圖作為系統功能片斷的高級描述,用來作為生成測試的基礎,使得在系統設計階段一開始就可以計劃集成測試階段的測試。在軟件開發早期準備軟件測試,在軟件的系統分析、設計階段,利用每一階段的人工制品(artifact)生成軟件測試各個階段所需的測試用例,在代碼階段結束后便可以開始測試工作,而且對分析設計模型進行分析的同時也能發現分析、設計本身的缺陷,以便及時排除,以防缺陷隨著軟件開發過程的進展而被放大。由于UML在工業界的使用越來越普遍,而相應支持在分析設計階段基于模型生成測試用例的實用方法和支持工具還不多見。我們希望能夠研究出僅從UML分析、設計模型圖自動生成測試用例的方法,而且不需要使用者的除UML外其他方面專業的知識,能夠實現自動化而不增加用戶額外的工作量,這樣的測試方法容易被已經使用UML的工業界采用。[8,10] 本文研究如何通過面向對象軟件設計階段的UML協作圖選擇合適的集成測試用例的方法,第2部分對協作圖的語法和語義作了詳細的介紹,并回顧了測試模型、協作集成測試模式、協作故障模型等知識;第3部分對基于協作圖生成測試用例的方法作了總體介紹,詳細描述了從協作圖生成測試用例的具體算法和支撐工具框架原型,第4部分是相關工作的介紹,最后是結束語和將來工作的構想。 (未完 待續)

        延伸閱讀

        文章來源于領測軟件測試網 http://www.k11sc111.com/

        TAG: uml UML 協作


        關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
        版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
        北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
        技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

        軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

        国产女主播精品_国产片婬乱18一级毛片视频_国产午夜激无码av毛片不卡_国产精品欧美久久久天天影院
          <ruby id="rxdll"></ruby><strike id="rxdll"></strike>

          <rp id="rxdll"></rp>
            <del id="rxdll"><meter id="rxdll"></meter></del>
            <pre id="rxdll"><font id="rxdll"></font></pre>
              <pre id="rxdll"></pre>
            <p id="rxdll"><thead id="rxdll"></thead></p><dl id="rxdll"><progress id="rxdll"><form id="rxdll"></form></progress></dl>

            <ol id="rxdll"><thead id="rxdll"><track id="rxdll"></track></thead></ol>
            <i id="rxdll"><dfn id="rxdll"></dfn></i>
            <font id="rxdll"><meter id="rxdll"></meter></font>

              <mark id="rxdll"><dfn id="rxdll"></dfn></mark>