<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>
            • 軟件測試技術(shù)
            • 軟件測試博客
            • 軟件測試視頻
            • 開(kāi)源軟件測試技術(shù)
            • 軟件測試論壇
            • 軟件測試沙龍
            • 軟件測試資料下載
            • 軟件測試雜志
            • 軟件測試人才招聘
              暫時(shí)沒(méi)有公告

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

            如何使用JUnit高效完成功能測試

            發(fā)布: 2010-11-10 10:39 | 作者: 不詳 | 來(lái)源: 領(lǐng)測測試網(wǎng)采編 | 查看: 248次 | 進(jìn)入軟件測試論壇討論

            領(lǐng)測軟件測試網(wǎng)

              如何使用JUnit高效完成功能測試  軟件測試

              功能測試或集成測試是關(guān)系到整體系統功能的測試,而不只是牽涉到小段代碼(單元)。這需要將已經(jīng)單獨測試好的模塊組裝起來(lái),以保證其連接時(shí)也能像預期一樣正常工作。JUnit是進(jìn)行Java程序測試最常用的測試框架。

              大多數Java開(kāi)發(fā)人員都善于解決邏輯結構測試問(wèn)題,比如如何建立測試預設環(huán)境、利用斷言?添加測試方法、用setup方法進(jìn)行初始化等。然而,如果Java開(kāi)發(fā)人員能更深入地了解如何設計功能測試集來(lái)有效地檢驗代碼是否正常運行,他們將獲得更多的益處。

              這篇文章介紹了可以建立有效 JUnit功能測試集的策略。包括:

              確定測試用例覆蓋所有程序行為。

              確定代碼入口點(diǎn):測試程序整體功能的主要代碼段。

              匹配入口點(diǎn)與相應的測試用例。

              根據初始化 /運行/檢查流程創(chuàng )建測試用例。

              設計并利用運行時(shí)事件表進(jìn)行測試。

              我將結合Saxon(一個(gè)可以處理XPath、XQuery和XSLT 的XML工具)的源代碼來(lái)具體闡述這些策略。Saxon由約50000行Java代碼組成,它是開(kāi)源的,代碼風(fēng)格優(yōu)良,注釋文檔詳盡。

              確定用例

              功能測試有兩個(gè)相輔的目標:覆蓋率與粒度。為確保完整性,功能測試必須覆蓋程序提供的所有功能,且必須在各組件水平上分別進(jìn)行測試。一個(gè)測試可以建立在另一個(gè)測試的基礎上,但任何測試都不能用來(lái)驗證兩項功能。

              建立一個(gè)全面的功能測試集,第一步是列出程序可以實(shí)現的所有行為。這可以通過(guò)使用特定的用例模擬外部因素(程序使用者或其它軟組件)執行系統內部的功能來(lái)實(shí)現。

              一個(gè)典型的企業(yè)Java程序應該包含各種用戶(hù)所需的詳細文檔,包括用例說(shuō)明、非功能性要求、測試用例說(shuō)明、用戶(hù)界面設計文檔、模型、用戶(hù)個(gè)人信息以及其它各種人工生成的信息。一般來(lái)說(shuō)簡(jiǎn)單的應用程序只有一個(gè)簡(jiǎn)單的說(shuō)明文檔。

              借助這些文檔,你可以快速確定需要測試的用例。每個(gè)測試用例都描述了應用程序可以執行的一項功能。用規模相近的測試方案確定唯一的功能是一個(gè)好習慣,而較大的方案可以根據其檢驗的功能拆分為較小的方案。

              有許多種建立用例模型的方法,其中最簡(jiǎn)單的便是輸入/輸出匹配法。在Saxon的query類(lèi)中,最簡(jiǎn)單的用例是傳送一個(gè)查詢(xún)文件、一個(gè)查詢(xún)請求和一個(gè)輸出文件路徑。輸出文件若不存在,將根據要求創(chuàng )建,并在文件中顯示查詢(xún)結果。

              更復雜的用例可能需要輸入更多的信息或輸出更多的結果。然而,用例并不關(guān)心功能是如何在內部實(shí)現的。對它們來(lái)說(shuō),軟件就像是一個(gè) “黑盒子”,只要運行正常,即使真正實(shí)現軟件功能的是盒子里的侏儒也無(wú)所謂。這是很重要的一點(diǎn),因為輸入/輸出匹配用例很容易直接轉換為測試用例,使得復雜的說(shuō)明與簡(jiǎn)單的測試吻合,確定該運行的功能正常運行,而不該運行的功能如預期一樣失效。

              如果類(lèi)相對比較簡(jiǎn)單,或者已有列舉類(lèi)所有功能的說(shuō)明文檔,為指定入口點(diǎn)描述用例將很容易。如果不是這樣,或許就需要研究類(lèi)可能有的所有行為(確定類(lèi)的目的與用法)。如果你想知道所有調用代碼的地方,也可以從代碼中提取用例。

              最可能的情況是,根據開(kāi)發(fā)人員提供的類(lèi)的一些基本說(shuō)明文檔,可以完全確定這些類(lèi)應有和不應有的行為;诖,設計一套準確的用例集。

              轉換測試用例

              每個(gè)測試用例都由兩部分組成:輸入和預期輸出。輸入部分包括所有創(chuàng )建變量或為變量賦值的測試用例語(yǔ)句。預期輸出部分則表明應該得到的輸出結果,它應該顯示斷言成立或“沒(méi)有異!(不存在斷言語(yǔ)句時(shí))這樣的信息。

              基本的輸入/輸出模式是理解測試用例模型最簡(jiǎn)單易用的辦法。它采用一般函數(傳遞參數,獲取返回值)和大多數用戶(hù)行為(按某個(gè)鍵實(shí)現某項功能)慣用的模式。然后,可以用該模式進(jìn)行:

              初始化:建立測試預設環(huán)境。代碼初始化可以在測試開(kāi)始時(shí)進(jìn)行或通過(guò)調用setUp()方法實(shí)現。

              運行:調用被測試的代碼,記錄所有值得注意的輸出和數據。

              檢查:使用斷言語(yǔ)句確保代碼正常運行。

            延伸閱讀

            文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/

            TAG: junit Junit JUnit JUNIT 功能


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

            軟件測試 | 領(lǐng)測國際ISTQBISTQB官網(wǎng)TMMiTMMi認證國際軟件測試工程師認證領(lǐng)測軟件測試網(wǎng)

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>