




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件測試技術(shù)方法的比較與分析作 者 姓 名: 學科、專業(yè) : 學 號 : 指 導 教 師: 完 成 日 期: XX大學XXXX University軟件測試技術(shù)方法的比較與分析總計: 畢業(yè)論文 64 頁表 格 14 表插 圖 22 幅 指導教師: 評 閱 人: 完成日期: 摘 要軟件測試是保證軟件質(zhì)量的重要手段。隨著計算機硬件性能的不斷提高,軟件的功能也越來越強大,軟件結(jié)構(gòu)越來越復雜,軟件質(zhì)量越來越難以控制。對于比較大型的軟件系統(tǒng)集成測試來說,單純的手工測試不但效率低下,而且很多測試僅靠手工測試無法完成。為減少測試開銷,在有限的時間內(nèi)執(zhí)行更多地測試,并且降低人為引起的錯誤,自動化測試是非常必要
2、的。一個完整地自動化軟件測試工具,應該包括測試管理工具、功能測試工具、性能測試工具三個部分。論文闡述了軟件自動化測試相關(guān)概念和理論,概括和比較了其適用范圍和組織結(jié)構(gòu)。MI公司、Rational公司、Compuware公司開發(fā)的產(chǎn)品是當今市場上三種主流的測試工具,本文從測試步驟、對象識別等方面對上述三個公司的功能測試產(chǎn)品;從測試項目管理、人員管理、測試計劃等方面對其測試管理工具產(chǎn)品作了詳細的分析和比較,為自動化測試研究提供參考。關(guān)鍵詞:軟件測試,自動化測試,測試管理工具AbstractSoftware testing is important to ensure software quality
3、. With the enhancement of the computer hardware and the increasing complexity of software functionality and structure, software quality control is more and more challenge. For integration testing on large software, manual testing is usually effort consuming while insufficient to achieve certain test
4、ing objectives such as stress testing. Therefore, automatic testing is necessary.Functional testing, performance testing and test management are three key characters of testing tools. The concept and theory related to software automated testing are expounded. The scope of application and the archich
5、ecture of software automated testing is summed up and compared. Testing tools delivered by MI, Rational and Compuware occupy most of the testing market. This thesis analyzes and compares function testing tools from、testing procedure、object recognization, etc. And it analyzes and compares test manage
6、ment tools from testing project management、people management、testing plan, etc. This survey provides basis for the research on automatic testing technique. Keywords:Software Testing , Automated Testing , Software Testing Management Tools目 錄1.緒論11.1論文的研究背景及意義11.2論文的主要研究工作及成果11.3論文的組織結(jié)構(gòu)22.軟件測試技術(shù)的概論32.
7、1軟件測試的定義與目的32.2軟件測試的過程32.3軟件測試的分類及主要方法4按測試過程劃分4按工作狀態(tài)劃分5按測試用例設計方法劃分6按測試目的劃分83自動化測試技術(shù)基礎93.1自動化測試概念9自動化測試9自動化測試的優(yōu)點9自動化測試的局限性113.2自動化測試的適用范圍124.主流自動化測試工具簡介154.1 MI(Mercury Interactive)公司的測試軟件15管理工具16測試工具164.2 Rational公司的測試軟件17管理工具17測試工具194.3 Compuware公司的測試軟件20管理工具21測試工具225.自動化功能測試工具的分析比較與總結(jié)235.1測試環(huán)境和對象2
8、35.2工具功能模塊詳細劃分255.3測試步驟285.4 GUI對象識別295.5腳本執(zhí)行與被測程序響應的同步問題325.6測試信息收集335.7結(jié)合測試管理工具335.8比較總結(jié)346.測試管理工具的分析與比較356.1工具特點356.2測試項目376.3測試人員管理386.4測試計劃396.5比較總結(jié)427.總結(jié)語44參考文獻45附錄1外文譯文47附錄2外文原文54致 謝631.緒論1.1論文的研究背景及意義近幾年,隨著軟件規(guī)模不斷擴大,軟件復雜度不斷增加,客戶要求不斷提高,如何保證軟件質(zhì)量,提高軟件可靠性也越來越受到各研究機構(gòu)、相關(guān)企業(yè)的普遍關(guān)注,同時成為軟件開發(fā)機構(gòu)特別關(guān)注的方向。目前
9、,許多能有效提高軟件質(zhì)量的質(zhì)量保證技術(shù)相繼問世,例如,幾乎所有的大型軟件開發(fā)機構(gòu)都結(jié)合自身軟件開發(fā)實際和經(jīng)驗制定了相關(guān)的質(zhì)量標準來規(guī)范企業(yè)內(nèi)部的軟件開發(fā)過程,有些機構(gòu)在這兩年陸續(xù)成立了與軟件開發(fā)相獨立的軟件測試中心來保證開發(fā)出來的軟件可用,在開發(fā)過程中增加了許多環(huán)節(jié)(如軟件配置管理、階段性測試和評審)用來保證開發(fā)出來的軟件具有高可靠性。軟件測試技術(shù)作為保障軟件質(zhì)量最直接、最有效的手段之一也成為重要的研究熱點,但是由于軟件本身的復雜性和不確定性,軟件測試技術(shù)始終具有極大的難度。深入研究軟件測試技術(shù)方法,提高軟件可靠性,已經(jīng)成為國內(nèi)外軟件行業(yè)和相關(guān)機構(gòu)重要的研究方向1。正確選擇和有效地運用各種測試
10、方法、技術(shù)和工具,對提高軟件工程的應用水平和提高軟件產(chǎn)品的質(zhì)量與可靠性至關(guān)重要。而在軟件測試中使用優(yōu)秀的測試管理工具不但可以大大減少測試過程中出現(xiàn)錯誤的可能性,還可以極大的提高測試的效率,加快測試進程。1.2論文的主要研究工作及成果論文主要對軟件測試、測試技術(shù)(工具、方法)、自動化測試以及測試管理技術(shù)(工具、方法)進行理論闡述和綜合論述;然后進行綜合分析、比較、總結(jié)。通過查閱文獻資料和對主流工具軟件和相關(guān)技術(shù)的深入學習可完成軟件測試技術(shù)方法的比較與分析研究內(nèi)容。在這個論文研究過程中,可以學會正確選擇和有效地運用各種測試方法、技術(shù)和工具。1.3論文的組織結(jié)構(gòu)論文的組織結(jié)構(gòu)如圖1.1所示:3.自動
11、化測試技術(shù)基礎1.緒論2.軟件測試技術(shù)概述4.主流自動化測試工具簡介6.測試管理工具分析與比較5.自動化功能測試工具分析與比較7.結(jié)束語圖1.1 論文的組織結(jié)構(gòu)2.軟件測試技術(shù)的概論2.1軟件測試的定義與目的軟件測試就是使用人工或者自動的手段來運行或測定某個軟件產(chǎn)品系統(tǒng)的過程,其目的是在于檢驗軟件產(chǎn)品是否滿足規(guī)定的需求2。簡單地說,軟件測試過程就是制造條件,促使錯誤發(fā)生的過程。軟件測試的目的是3:(1)測試的最終目的是為了避免錯誤的發(fā)生,確保應用程序能夠正常高效的運行;(2)好的測試用例在于發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;(3)成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試;(4)好的測試工程師應該做到不僅發(fā)
12、現(xiàn)問題,還能夠幫助開發(fā)人員分析問題。2.2軟件測試的過程軟件測試是一個貫穿整個軟件生命周期的活動,那種等待整個系統(tǒng)開發(fā)完畢,再對其進行測試的想法是錯誤的,把測試放到軟件開發(fā)的最后是很危險的,因為它很容易導致整個軟件系統(tǒng)無法集成。另外,對軟件的測試并不僅限于軟件程序的本身,因為錯誤并不一定是代碼引起的。很有可能是軟件需求、軟件系統(tǒng)的詳細設計等階段引起的。錯誤在初期也許只是范圍很小的隱藏問題,但由于軟件開發(fā)的各階段的連續(xù)性,會使錯誤逐步擴展,如果早期的開發(fā)中出現(xiàn)的錯誤不能排除,將帶到設計、編碼、測試等各階段,影響逐步擴大。所以對軟件的測試還應該包括與軟件有關(guān)的所有的文檔。一個典型的軟件測試過程如下
13、圖:圖2.1 典型的軟件測試過程一個軟件的測試過程是一個不斷回歸的過程。舊的錯誤的修改可能會引起新的錯誤的出現(xiàn),所以每修改一個新的錯誤,都要針對系統(tǒng)再作一次測試,直到?jīng)]有新的錯誤出現(xiàn)為止,這是一個很繁瑣的過程。2.3軟件測試的分類及主要方法針對不同規(guī)模、不同類型的軟件,以及軟件開發(fā)的不同階段,所用的測試方法各異,下面我們就主要針對上面的幾種情況對軟件測試做一個簡單的分類。按測試過程劃分我們知道對于軟件開發(fā)商來說,比較大的軟件系統(tǒng)都是由許多人協(xié)作開發(fā)的,一般都是把一個大的軟件系統(tǒng)分割成不同的功能模塊,然后再將這些模塊分給開發(fā)團中的每個人去完成,在開發(fā)的過程中針對每個模塊的完成情況,邊開發(fā)、邊測試
14、、邊集成,然后各個模塊集成的完整的系統(tǒng)還要進行測試,當系統(tǒng)交付用戶使用后,還要對系統(tǒng)進行維護、升級,這里面也伴隨著測試。根據(jù)上面的過程,我們按軟件開發(fā)過程的可以將軟件測試劃分為下面五個步驟,它們的關(guān)系如圖2.2:圖2.2 軟件測試步驟單元測試是對軟件中的基本組成單位進行的測試,如一個模塊、一個過程等等。它是軟件動態(tài)測試的最基本的部分,也是最重要的部分之一,其目的是檢驗軟件基本組成單位的正確性。一個軟件單元的正確性是相對于該單元的規(guī)約而言的。因此,單元測試以被測試單位的規(guī)約為基準。單元測試的主要方法有控制流測試、數(shù)據(jù)流測試、排錯測試、分域測試等等3-5。集成測試是在軟件系統(tǒng)集成過程中所進行的測試
15、,其主要目的是檢查軟件單位之間的接口是否正確。它根據(jù)集成測試計劃,一邊將模塊或其他軟件單位組合成越來越大的系統(tǒng),一邊運行該系統(tǒng),以分析所組成的系統(tǒng)是否正確,各組成部分是否合拍。集成測試的策略主要有自頂向下和自底向上兩種3-5。系統(tǒng)測試是對已經(jīng)集成好的軟件系統(tǒng)進行徹底的測試,以驗證軟件系統(tǒng)的正確性和性能等滿足其規(guī)約所指定的要求,檢查軟件的行為和輸出是否正確并非一項簡單的任務,它被稱為測試的“先知者問題”。因此,系統(tǒng)測試應該按照測試計劃進行,其輸入、輸出和其他動態(tài)運行行為應該與軟件規(guī)約進行對比。軟件系統(tǒng)測試方法很多,主要有功能測試、性能測試、隨機測試等等3-5。驗收測試旨在向軟件的購買者展示該軟件
16、系統(tǒng)滿足其用戶的需求。它的測試數(shù)據(jù)通常是系統(tǒng)測試的測試數(shù)據(jù)的子集。所不同的是,驗收測試常常有軟件系統(tǒng)的購買者代表在現(xiàn)場,甚至是在軟件安裝使用的現(xiàn)場。這是軟件在投入使用之前的最后測試?;貧w測試是在軟件維護階段對軟件進行修改之后進行的測試。其目的是檢驗對軟件進行的修改是否正確。這里修改的正確性有兩重含義:一是所作的修改達到了預定目的,如錯誤得到改正,能夠適應新的運行環(huán)境等等;二是不影響軟件的其他功能的正確性1。按工作狀態(tài)劃分軟件測試是一個對測試經(jīng)驗、測試計劃、測試環(huán)境和測試工具依賴性非常強的工作,按工作狀態(tài)分為靜態(tài)測試和動態(tài)測試兩個階段6。靜態(tài)測試主要是針對所有文檔資料、編程規(guī)范、數(shù)據(jù)定義、控制和
17、數(shù)據(jù)使用、代碼與需求的一致性、代碼與設計的一致性等方面的分析,其對測試經(jīng)驗和測試計劃的依賴性極強。靜態(tài)測試是在不需運行軟件系統(tǒng)的情況下,對系統(tǒng)進行的測試。其采用的方法主要有6:(1)文檔資料瀏覽,達到正確的理解,并對任何改變具有統(tǒng)一的認知;(2)討論決定,對文檔資料進行討論,并作出決定,如:做什么、不做什么、如何做等;(3)檢查,根據(jù)規(guī)范和定義,找出可能存在的問題,如:市場和商業(yè)策略、系統(tǒng)需求和系統(tǒng)設計、程序代碼、測試計劃、測試設計、測試案例、測試結(jié)果、用戶手冊、培訓教材等;(4)利用工具對程序代碼進行靜態(tài)分析,如:程序復雜度、系統(tǒng)結(jié)構(gòu)、控制流程、數(shù)據(jù)流程等。動態(tài)測試是被測系統(tǒng)在運行當中,根據(jù)
18、其動態(tài)的行為進行的測試。根據(jù)測試規(guī)模,可分為:單元測試、集成測試、系統(tǒng)測試及應用測試等幾個階段。2.3.3按測試用例設計方法劃分軟件測試的方法和技術(shù)是多種多樣的,按測試用例設計方法,可分為黑盒測試和白盒測試,并且黑盒測試和白盒測試還是目前通用的測試技術(shù) 2,7-8。黑盒測試著眼于程序外部結(jié)構(gòu)、不考慮內(nèi)部邏輯結(jié)構(gòu)、針對軟件界面和軟件功能進行的測試。黑盒測試也稱功能測試、數(shù)據(jù)驅(qū)動測試或基于規(guī)格說明的測試,它在已知產(chǎn)品應具有的功能的條件下,通過測試來檢測每個功能是否都能正常使用。在測試時,把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進行測試,它只檢查程
19、序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試是以用戶的觀點,從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對應關(guān)系出發(fā)進行測試的,它不涉及到程序的內(nèi)部結(jié)構(gòu)。黑盒測試注重于測試軟件的功能需求,主要試圖發(fā)現(xiàn)軟件中的功能錯誤、界面錯誤、數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問錯誤、性能錯誤、初始化和終止錯誤等。白盒測試是基于代碼的測試,測試人員通過閱讀程序代碼或者通過使用開發(fā)工具中的單步調(diào)試來判斷軟件的質(zhì)量。白盒測試也稱結(jié)構(gòu)測試、邏輯驅(qū)動測試或基于程序本身的測試,它是知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)
20、定正常進行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗程序中的每條通路是否都有能按預定要求正確工作,而不涉及它的功能,白盒測試的主要方法有邏輯驅(qū)動、基路測試等,主要用于軟件驗證。白盒測試需要全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進行測試。白盒測試是窮舉路徑測試,在使用這一方案時,測試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測試數(shù)據(jù)。黑盒測試與白盒測試的比較如下表2.1。表2.1 黑盒測試與白盒測試的比較黑盒測試白盒測試測試依據(jù)用戶能看到的規(guī)格說明,針對功能進行測試程序的內(nèi)部結(jié)構(gòu)優(yōu)點能站在用戶立場上進行測試能夠?qū)Τ绦騼?nèi)部的特定部位進行覆蓋測試缺點不能測試程序內(nèi)部特定部位。如果規(guī)格說明有誤,則
21、無法發(fā)現(xiàn)無法檢驗程序的外特性,無法對未實現(xiàn)規(guī)格說明的程序內(nèi)部欠缺部分進行測試缺點來源基于程序所有功能得到說明的基礎之上基于所有的需求得到實現(xiàn)的基礎之上舉例等價類劃分邊值分析因果圖語句覆蓋,分支覆蓋條件覆蓋,判定/條件覆蓋,路徑覆蓋按測試目的劃分對于一個軟件系統(tǒng),衡量它的好壞有兩個最重要的指標,一是它的功能是否符合要求,二是它的性能是否符合要求。那么針對這兩個指標,我們可以將軟件測試分為:功能測試和性能測試兩個部分2。功能測試:針對軟件的功能測試,目的是為了驗證軟件的功能是否符合軟件需求規(guī)格說明的要求,找出軟件不符合用戶需求的地方。功能測試要盡量測試到軟件的每一個功能單元,找出軟件中的缺陷,確保
22、軟件的每一個部分都能正常、正確的工作。性能測試:就是用來測試軟件在系統(tǒng)中的運行性能的。性能測試可以發(fā)生在各個測試階段中,即使是在單元層,一個單獨模塊的性能也可以使用白盒測試來進行評估,然而,只有當整個系統(tǒng)的所有成分都集成到一起之后,才能檢查一個系統(tǒng)的真正性能。性能測試經(jīng)常和壓力測試一起進行,而且常常需要硬件和軟件測試設備,這就是說,常常有必要的在一種苛刻的環(huán)境中衡量資源的使用(比如,處理器周期)。外部的測試設備可以監(jiān)測測試執(zhí)行,當出現(xiàn)情況(如中斷)時記錄下來。通過對系統(tǒng)的檢測,測試者可以發(fā)現(xiàn)導致效率降低和系統(tǒng)故障的原因。3自動化測試技術(shù)基礎3.1自動化測試概念隨著軟件系統(tǒng)的規(guī)模越來越大,整個系
23、統(tǒng)的復雜性也越來越大,那么單純的手工測試已經(jīng)不適合這種大系統(tǒng)的測試了。首先手工測試的效率低下,其次有些測試是手工測試所無法完成的。為了解決手工測試效率低下和手工測試不能解決的一些測試等問題,自動化測試就應運而生了。軟件自動化測試就是執(zhí)行某種程序設計語言編制的自動測試程序,控制被測軟件的執(zhí)行,模擬手動測試步驟,完成全自動或半自動測試。其目的在于縮短測試周期,增強對軟件性能方面的測試能力等,從而達到保證軟件質(zhì)量并使軟件能夠提前上線9。自動化測試自動化測試就是希望能夠通過自動化測試工具或其他手段,按照測試工程師的預定計劃進行自動的測試,目的是減輕手工測試的勞動量,從而達到提高軟件質(zhì)量的目的。自動化測
24、試的目的在于發(fā)現(xiàn)老缺陷;而手工測試的目的在于發(fā)現(xiàn)新缺陷。測試自動化涉及到測試流程、測試體系、自動化化編譯、持續(xù)集成、自動發(fā)布測試系統(tǒng)以及自動化測試等方面整合。也就是說要讓測試能夠自動化,不僅是技術(shù)、工具的問題,更是一個公司和組織的文化問題。首先公司從資金、管理上支持您,其次要有專門的測試團隊去建立適合自動化測試的測試流程、測試體系;其次就是把原代碼從受控庫中取出、編譯、集成、發(fā)布可運行系統(tǒng)、進行自動化的單元測試和自動化的功能測試的過程9。自動化測試的優(yōu)點當正確實施軟件自動化測試并嚴格遵守制定的測試過程時,自動化測試可帶來若干好處。假定對于給定的企業(yè)需求,測試工程師必須評估潛在的好處是否符合所要
25、求的改進標準,在項目實施自動化測試是否仍然是合適的10-11。(1)提高測試效率一般來說,軟件產(chǎn)品的發(fā)布周期很短,而在測試期間是每天都可能要發(fā)布一個版本供測試人員測試,一個系統(tǒng)的功能點有幾千個上萬個,手工測試是一個勞動密集型的工作,并且容易出錯。引入自動化測試能夠用更有效、可重復的自動化測試環(huán)境代替繁瑣的手工測試活動,而且能在更少的時間內(nèi)完成更多的測試工作,從而提高了測試工程師的工作效率。(2)令軟件新版本進行回歸測試的開銷最小產(chǎn)品發(fā)現(xiàn)錯誤以后的改動,代碼變了,但要求的功能并沒有變,所以測試用例也不必改變,自動化測試就可以很方便地進行回歸測試,另外,對于產(chǎn)品型的軟件,每次發(fā)布一個新的版本,其中
26、大部分功能和界面都和上一個版本相似或完全相同,這部分功能特別適合于自動化測試,從而可以讓測試達到測試每個特征的需求。(3)可以完成一些手工測試不能或難以完成的測試對于一些非功能性方面的測試,如:壓力測試、并發(fā)測試、大數(shù)據(jù)量測試、崩潰性測試等,這些測試用手工測試是很難,甚至是不可能完成的。但自動化測試則能方便地執(zhí)行這些測試,比如并發(fā)測試,使用自動化測試工具就可以模擬來自多方的并發(fā)操作了。(4)具有一致性和可重復性由于每次自動化測試運行的腳本是相同的,所以可以進行重復的測試,使得每次執(zhí)行的測試具有一致性,手工測試則很難做到這點。(5)更好地利用資源將繁瑣的測試任務自動化,可以使測試人員解脫出來,將
27、精力更多地投入到測試案例的設計和必要的手工測試當中。并且,理想的自動化測試能夠按計劃完全自動地運行,使得完全可以利用周末和晚上的時間執(zhí)行自動測試。(6)解決測試與開發(fā)之間的矛盾通常在開發(fā)的末期,進入集成測試階段,由于每發(fā)布一個版本的初期,測試系統(tǒng)的錯誤比較少,這時開發(fā)人員有等待測試人員測出錯誤的時間。事實上在迭代周期很短的開發(fā)模式中,存在更多的矛盾,但自動化測試可以解決其中的主要矛盾。(7)增加軟件信任度每一個測試人員都有自己特殊的經(jīng)歷和技術(shù)背景,有自己的一些操作習慣和先入為主的觀念,這就導致不是所有的測試都是可信的,而且有時測試會把一些新的錯誤帶入軟件產(chǎn)品之中。自動化測試則會在很大程度上避免
28、這些問題。一旦得知軟件通過強有力的自動測試后,軟件發(fā)布時對其的信任度也高(假設已做過很好的測試)。總而言之,測試自動化的優(yōu)點在于通過較少的開銷就可以獲得更徹底的測試能力,以及提高產(chǎn)品的質(zhì)量。3.1.3自動化測試的局限性當然,軟件自動化測試也并非萬能,人們對軟件自動化測試的理解也存在許多誤區(qū),認為自動化測試能完成一切工作,從測試計劃到測試執(zhí)行,都不需要人工干預。其實軟件自動化測試所完成的測試功能也是有限的。以下幾點是自動化測試的不足所在10-11:(1)不能完全取代手工測試。軟件自動化測試不可能也沒必要取代手工測試來完成所有的測試任務。因為有些測試使用手工測試比自動化測試要簡單,這時將測試自動化
29、的開銷就比較大了。如以下一些情況:測試很少運行。對于很少運行的測試任務,例如一年只需測試一次,對測試自動化則是一種浪費。軟件不穩(wěn)定。如果在某段時間內(nèi)軟件的界面和功能更新頻繁,那么修改相應的自動化測試點開銷較大,因此只有當軟件達到相對的穩(wěn)定,沒有界面性嚴重錯誤和中斷錯誤才適合開始自動化測試。涉及感觀方面的測試。例如界面的美觀、聲音的體驗、易用性的測試等,這類測試很容易通過人來驗證,自動化測試反而難以執(zhí)行。涉及物理交互的測試。自動化測試很難完成與物理設備的交互,比如刷卡的測試等。(2)手工測試比軟件自動化測試發(fā)現(xiàn)的缺陷更多自動化測試的最大特點在于適合重復測試。一般情況下,以前運行過的測試再次用來檢
30、查軟件的新版本往往暴露的缺陷要少得多。測試專家 JamesBach總結(jié)出,85%的缺陷靠手工發(fā)現(xiàn),而自動化測試只能發(fā)現(xiàn)15%的缺陷。自動化測試能夠很好的發(fā)現(xiàn)老缺陷。(3)軟件自動化測試不能提高有效性自動化測試并不會比手工運行相同測試更有效,它可以提高測試效率,但也可能對測試的進展起反作用。(4)軟件自動化測試可能會制約軟件開發(fā)應用軟件的變化對自動化測試的影響要比手工測試更大一些,軟件的部分改變有可能使自動化測試軟件崩潰。而設計和實施自動化測試要比手工測試開銷大,并需要維護,所以對自動化測試影響較大的軟件修改可能受到限制。(5)軟件自動化測試本身沒有想象力自動化測試是通過軟件進行,測試程序只是按
31、照運行機制執(zhí)行。手工測試時可以直接判斷結(jié)果的正確性,而自動測試許多情況下測試結(jié)果還需要人工干預判斷。手工測試可以處理意外事件網(wǎng)絡連接中斷,此時必須重新建立連接。手工測試時可以及時處理該意外,而自動化測試時該意外事件一般會導致測試的中止??偟恼f來,軟件自動化測試的優(yōu)點和收益是顯而易見的,但它同時也并非萬能,只有對其進行合理的設計和順利的實施才能從中獲益。3.2自動化測試的適用范圍Peer給出了對各類型測試進行自動化的參考12。表3.1 各類型測試進行自動化技術(shù)描述備注單元測試/組件測試該測試工作通常是開發(fā)人員的職責,很多不同的方法能夠被使用,比如“測試先行”,它是一個測試框架,開發(fā)人員在編寫代碼
32、前編寫不同的單元測試。當測試通過是,代碼也被完成了。通過使用正式的自動化單元測試,不僅能夠幫助開發(fā)人員產(chǎn)生更加穩(wěn)定的代碼而且能夠使軟件的整體質(zhì)量更加的好。冒煙測試/構(gòu)建版本測試冒煙測試是一般驗證被測試系統(tǒng)的功能性測試用例的集合,冒煙測試背后的思想是確保基礎是可以工作的,以便更大的測試工作能夠開始在構(gòu)建過程能夠確保構(gòu)建已經(jīng)為測試準備好時,冒煙測試通常是自動化的運行功能/集成測試這里測試的工作關(guān)注在驗證的不同的組件之間的集成上。這些類型的測試通常是被測試的更加復雜測試的基礎,大量的邊緣測試被合并以制造出不同的錯誤處理測試。系統(tǒng)測試/用例測試這種測試是通過執(zhí)行用戶場景模擬真實用戶使用系統(tǒng)以證明系統(tǒng)具
33、有被期望的功能的測試。不需要使用自動化的測試。安裝測試、安全性測試通常是由手工完成,因此系統(tǒng)的環(huán)境不會是恒定不變的。回歸測試回歸測試實際上是重復已經(jīng)存在的測試。通常如果是手工完成的話,這種測試只在項目的結(jié)尾執(zhí)行少數(shù)幾次。這里完全有潛力完成自動化的測試。能夠在每次構(gòu)件完成后執(zhí)行自動化的回歸測試,以驗證被測試系統(tǒng)的改變是否影響了系統(tǒng)的其他功能。性能測試性能測試包括以下不同測試形式:-負載測試-壓力測試-并發(fā)測試如果沒有自動化的測試工具,將無法執(zhí)行通過模擬用戶的負載實現(xiàn)的高密集度的性能測試??梢娭貜托员容^高的回歸測試,以及手工測試難以完成的性能測試是自動化測試最有潛力應用和最能體現(xiàn)價值的地方,而早期
34、的單元測試中如果引入自動化,也將大大提高開發(fā)出的代碼質(zhì)量。當決定在一個產(chǎn)品的測試過程中實現(xiàn)自動化測試的時候,必須將自動化測試手工測試結(jié)合起來使用。目的就是用較少的開銷,獲得徹底的測試,并提高商品的質(zhì)量。下表對何時使用自動化測試和何時使用手工測試進行了一個概要的總結(jié)。表3.2 何時使用自動化測試和手工測試使用自動化測試使用手工測試項目沒有嚴格的時間壓力具有良好定義的測試策略和測試計劃¡ 知道要測試什么¡ 知道什么時候測試對于自動化測試擁有一個能夠被識別的測試框架和侯選者能夠確保多個測試運行的構(gòu)建策略多平臺環(huán)境需要被測試擁有運行測試的硬件擁有關(guān)注在自動化過程上的資源被測試系統(tǒng)是
35、可自動化測試的沒有適當?shù)臏y試過程沒有一個測試什么,什么時候測試的清晰的藍圖剛加入項目組,并且還不是完全的理解方案的功能性和或者設計項目成員或者整個項目在時間的壓力下在團隊中沒有資源或者具有自動化測試技能的人沒有硬件4.主流自動化測試工具簡介自動化測試需要不同類型的自動化測試工具進行支持。目前,軟件市場上已經(jīng)有很多優(yōu)秀的自動化測試工具,它們功能強大,有針對功能的,也有針對性能的,有執(zhí)行白盒測試的測試工具也有執(zhí)行黑盒的測試工具。主流的商業(yè)化的自動化測試工具軟件開發(fā)公司是:Mercury Interactive公司、IBM Rational公司和Compuware公司。三個公司都開發(fā)了一整套自動化測
36、試工具,這些自動化測試工具都經(jīng)過無數(shù)的實際運用,都是非常優(yōu)秀的自動化測試工具。一個完整地自動化軟件測試工具,應該包括測試管理工具、功能測試工具、性能測試工具三個部分。下面就目前Windows操作系統(tǒng)下的主流的自動化測試工具作一個整體的介紹。4.1 MI(Mercury Interactive)公司的測試軟件Mercury Interactive公司是商業(yè)技術(shù)優(yōu)化的業(yè)界領(lǐng)導者。它成立于1989年,目前,和全球超過35個國家都有貿(mào)易往來。全球100強公司中有將近90%的公司依靠MI公司的軟件和服務來實施他們的商業(yè)技術(shù)優(yōu)化策略。這使得MI公司成為世界上最大的、成長最快的企業(yè)級軟件公司。該公司開發(fā)的自
37、動化測試工具以其功能強大、完善的售后服務和支持,使其成為了自動化測試軟件開發(fā)領(lǐng)域的領(lǐng)先者。MI主要測試軟件的構(gòu)成如下圖13:圖4.1 MI主要測試軟件的構(gòu)成下面對上圖的工具作一個概括的介紹。4.1.1管理工具TestDirector是MI自動化測試工具集中的測試管理工具,它是業(yè)界第一個基于WEB的測試管理系統(tǒng)。使用TD及其配套的功能和性能等測試工具,可以組織全球范圍的測試。TestDirector通過在一個整體的應用系統(tǒng)中提供并且集成了測試需求管理、測試計劃、測試日程控制及測試執(zhí)行和錯誤跟蹤等功能,通過使用這些功能可以使測試專業(yè)化,提高測試的效率,加速測試的過程。TestDirector主要有
38、三大功能模塊構(gòu)成:(1)Site Administrator該模塊的主要功能是:創(chuàng)建測試域,創(chuàng)建和維護測試項目,管理測試人員,查看測試項目的訪問情況,配置注冊碼。(2)Customer在該功能模塊中,TD用戶(即測試人員或其他與測試相關(guān)的人員)可以訂制和修改用戶的一些信息。包括:修改用戶信息、創(chuàng)建新的用戶類型和用戶組類型,訂制模塊的訪問權(quán)限,訂制項目實體和列表,配置郵件,調(diào)整工作流等。(3)TestManager這個模塊是TestDirector的主要功能的所在。它主要集成了需求指定、建立測試計劃、執(zhí)行測試、缺陷跟蹤四個功能模塊。4.1.2測試工具MI的測試工具主要有功能測試工具WinRunn
39、er和性能測試工具LoadRunner,下面對這兩個工具作一個概括的介紹。(1)WinRunner針對Windows應用程序的一個企業(yè)級的功能測試工具,用于檢測應用程序是否能夠達到預期的功能及正常運行。它通過自動錄制、檢測和回放用戶的應用操作,來發(fā)現(xiàn)程序中的錯誤。可以有效地幫助測試人員對復雜的企業(yè)級應用軟件的不同發(fā)布版本進行測試,提高測試人員的工作效率和質(zhì)量。確??缙脚_的、復雜的企業(yè)級應用軟件無故障發(fā)布和長期穩(wěn)定的運行。(2)LoadRunner黑盒性能測試工具。4.2 Rational公司的測試軟件Rational公司是軟件業(yè)中領(lǐng)先的應用開發(fā)工具供應商,提供基于業(yè)界開放標準的工具、最佳方案和
40、服務,用于開發(fā)商業(yè)應用和構(gòu)建軟件產(chǎn)品和系統(tǒng)。2002年Rational公司被IBM公司收購。對于Rational公司的產(chǎn)品,我們比較熟悉的是它的建模工具,它的測試工具同它的建模工具一樣優(yōu)秀。Rational的測試工具Rational Suite TestStudio的構(gòu)成如下圖14:圖4.2 Rational Suite TestStudio的構(gòu)成4.2.1管理工具Rational Suite TestStudio測試工具集中的管理工具主要有五個子工具組成,它們結(jié)合起來,完成一個完整的測試管理工具的功能。下面就上面各個管理工具的功能作一個概括的介紹。(1)Rational TestManage
41、rTestManager 處于測試管理工具的核心位置。它是一個開放的可擴展的架構(gòu),將其它的工具和測試數(shù)據(jù)聯(lián)合為一個整體。在TestManager中主要可以完成建立測試計劃、安排測試、執(zhí)行測試、查看測試結(jié)果和分析測試結(jié)果等工作。(2)Rational AdministratorRational Administrator集中了測試項目的管理功能,可以創(chuàng)建測試項目,管理相關(guān)的人員,包括測試人員和有關(guān)的開發(fā)人員。它的詳細功能如下:創(chuàng)建一個Rational測試項目,配置項目的有關(guān)信息。連接某個測試項目。通過網(wǎng)絡操作遠程的測試項目。刪除一個測試項目。創(chuàng)建和管理測試人員和用戶組。創(chuàng)建和管理包含Requis
42、itePro項目和Rose項目的測試項目??刂埔粋€Rational測試項目的測試數(shù)據(jù)的安全權(quán)限。(3)Rational RequisiteProRational RequisitePro是一個需求管理的工具,它可幫助項目團隊控制開發(fā)的進度。它通過將Microsoft Word和一個需求倉庫連接來組織測試需求,它還提供了跟蹤功能,并且在整個項目的生命周期內(nèi)可以隨時改變需求。利用RequisitePro你可以完成如下工作:定制需求數(shù)據(jù)庫和管理多種不同類型的測試。指定優(yōu)先級,排序和安排需求??刂铺卣髯冃?,確保軟件質(zhì)量。跟蹤產(chǎn)生的變化,包括這些改變是誰做出的、什么時候、為什么。(4)Rational
43、ClearQuest在ClearQuest中進行缺陷的跟蹤和管理。通過ClearQuest可以將測試中發(fā)現(xiàn)的缺陷直接發(fā)送給相應的測試人員,集中管理某個測試項目的缺陷,并跟蹤缺陷的修復情況。(5)Rational SoDA文檔生成工具,測試需求、測試結(jié)果、缺陷報告等測試信息可以通過SoDA這個工具生成詳細的報表。4.2.2測試工具Rational Suite TestStudio測試工具集中的測試工具比較全面,既有功能和性能的測試工具,也有代碼級的黑盒和白盒測試工具。(1)Rational Robot Rational Robot集成了功能測試和性能測試兩種功能。使用Robot可以創(chuàng)建兩種類型的
44、測試腳本:基于GUI對象的功能測試腳本和用于性能測試的腳本。功能測試腳本可以在Robot中直接運行,而性能測試的腳本要在TestManager中運行。(2)Rational QuantifyRational Quantify提供了一個完整的、精確的針對被測應用程序和相關(guān)組件的一個性能測試數(shù)據(jù)集合,同過圖表等易于理解和觀察的方式顯示出來,可以很容易看出被測程序那個地方耗費了較多時間,然后優(yōu)化修改耗費時間較多的代碼,提高程序執(zhí)行效率。Rational Quantify主要適用的應用程序的對象是:Visual C/C+開發(fā)的.exe,.dlls,OLE/ActiveX控件以及COM對象組件;Visu
45、al Basic開發(fā)的應用程序;Java語言開發(fā)的應用程序;語言開發(fā)的應用程序等。(3)Rational Purify檢測內(nèi)存泄露的白盒測試工具。(4)Rational PureCoverage 測試代碼覆蓋率的白盒測試工具。(5)Rational TestFactory它是一個基于組件的測試工具,主要功能如下:根據(jù)程序的導航結(jié)構(gòu)自動生成TestFactory腳本。自動創(chuàng)建和維護一個被測軟件的詳細map。不用記錄,自動生成提供擴展代碼覆蓋率的腳本和發(fā)現(xiàn)缺陷的腳本。追蹤運行過的或未運行過的源代碼,并且報告它的詳細的發(fā)現(xiàn)。通過最大限度的縮短花費在書寫導航代碼上的時間來縮短產(chǎn)品的測試周期。在Test
46、Factory中可以回放Robot功能測試腳本一觀察擴展代碼覆蓋率的信息以創(chuàng)建回歸測試集;在Robot中也可以回放TestFactory腳本用以調(diào)試腳本。(6)Rational SiteCheck網(wǎng)頁測試工具,利用Rational SiteCheck 可以檢查企業(yè)內(nèi)部互聯(lián)網(wǎng)的結(jié)構(gòu)完整性以及網(wǎng)頁錯誤??梢詭椭榭?、跟蹤和維護迅速變化的頁面。利用SiteCheck具體可以做如下事情:顯示網(wǎng)頁的結(jié)構(gòu)以及各頁面間的關(guān)系。識別和分析帶有動態(tài)內(nèi)容的Web頁面,如:forms, Java, JavaScript, ActiveX, VBScript。過濾信息,以利于你觀察制定的文件類型和缺陷,包括斷開的連接
47、。檢查和編輯任意網(wǎng)頁的源代碼。利用集成的編輯器更新或修復文件。對安全網(wǎng)頁執(zhí)行全面的測試。SiteCheck提供了Secure Scoket Layer(SSL)支持,代理服務器配置以及多密碼域。(7)Rational TeamTest團隊合作測試工具。4.3 Compuware公司的測試軟件Compuware公司是世界上最大的軟件和專業(yè)服務供應商之一。Compuware開發(fā)的QACenter測試工具集的主要構(gòu)成如下圖15:圖4.3 QACenter測試工具集4.3.1管理工具(1)QADirectorQADirector處于QACenter管理工具的核心位置,它協(xié)調(diào)整個測試過程,并提供了一下功
48、能: 計劃和組織測試需求。 調(diào)用相應的自動測試工具執(zhí)行測試。 測試過程允許使用手動測試。 觀察和分析測試結(jié)果。 方便的將測試結(jié)果信息加載到測試缺陷跟蹤系統(tǒng)。 針對需求驗證測試。 將分析過程和測試過程結(jié)合。(2)Reconcile需求管理工具,組織和管理測試需求。(3)TrackRecordTrackRecord是一個高級的需求變更和缺陷管理工具,可以幫助組織建立一個系統(tǒng)方法來協(xié)調(diào)軟件開發(fā)、調(diào)試、測試和實現(xiàn)??蛇M行自動化的軟件缺陷的跟蹤管理。4.3.2測試工具(1)QARunQARun可以提供C/S系統(tǒng)、電子商務系統(tǒng)和企業(yè)資源計劃應用提供企業(yè)級的功能測試。同WinRunner和Rational
49、Robot能提供的功能一樣,可以執(zhí)行自動化的功能測試。(2)QALoadQALoad是C/S系統(tǒng)、企業(yè)資源計劃(ERP)和電子商務應用的自動化負載測試工具。它是QACenter測試工具集性能版的一部分。它通過可重復使用的、真實的測試能夠徹底的度量應用程序的可擴展性和性能。它可以模擬成百上千的用戶并發(fā)執(zhí)行關(guān)鍵的業(yè)務完成對應用程的性能測試,并針對所發(fā)現(xiàn)的問題對系統(tǒng)性能進行優(yōu)化,確保軟件的成功部署。(3)WebCheck全面的站點分析和測試工具。5.自動化功能測試工具的分析比較與總結(jié)WinRunner、Rational Robot和QARun這三個工具都是自動化的功能測試工具,它們針對的測試對象都是
50、使用IDEs(如:支持Java、C/C+、VB、HTML等語言的集成開發(fā)環(huán)境)開發(fā)的帶有GUI對象的應用程序,都能夠大大降低重復性的測試所耗費的時間,將測試人員從復雜好事的測試工作中解脫出來。我們目前所分析比較WinRunner、Rational Robot、QARun這個三個自動化功能測試工具,都是比較新的版本,并不是最新的版本。但這些不同版本的測試工具首先從功能、原理上都是一樣的,而且整體的架構(gòu)和細節(jié)的功能也不會有太大的變化。所以針對下面三個較新版本的工具進行分析和比較,對新版本的工具選擇同樣具有參考價值。分析和比較的工具對象的版本及軟件平臺情況如下表:表5.1 工具對象的版本及軟件平臺開
51、發(fā)單位工具名稱版本平臺MI公司W(wǎng)inRunner7.51Windows Server 2003Rational公司Robot2002Windows Server 2003Compuware公司QARun465Windows 2000 Professional下面,將從測試步驟、測試結(jié)果等方面對這三種工具先作一個詳細的分析和介紹,然后根據(jù)分析在對這三個工具進行橫向的詳細比較。5.1測試環(huán)境和對象(1)WinRunner我們使用的WinRunner版本是WinRunner7.50。是MI測試軟件中比較新的版本?;旧峡梢酝瓿蒞indows操作系統(tǒng)下的不同類型軟件的自動化功能測試。下表是對WinRu
52、nner7.50所支持的環(huán)境和被測軟件對象的一個總結(jié)16-17表5.2 WinRunner7.50所支持的環(huán)境和被測軟件對象工具操作系統(tǒng)環(huán)境支持被測軟件對象WinRunnerversion 7.50Microsoft Windows 95/98/NT/2000/XP/2003l Netscape, Microsoft Internet Explorerl JDKl Visual Basicl C/C+l PowerBuilderl Delphil Java applets, Java applications,JavaScriptl ActiveX, OCX Controlsl WAPl ER
53、P/CRM applications(Oracle Applications, PeopleSoft, SAP, Siebel)l C/C+、VB、Delphi、PowerBuilder等開發(fā)的應用程序(2)Rational Robot表5.3 Rational Robot所支持的環(huán)境和被測軟件對象工具操作系統(tǒng)環(huán)境支持被測軟件對象Rational RobotVersionMicrosoft Windows 98/NT/2000/XP/2003l Microsoft Internet Explorer 6.0l JDKl Visual Basicl C/C+l PowerBuilderl Del
54、phil Wordl Java applets and applicationsl VB Applicationsl Oracle Forms Applicationsl HTML Applicationsl C/C+、Delphi、PowerBuilder等開發(fā)的應用程序l PeopleTools Applications(3)QARun表5.4 QARun所支持的環(huán)境和被測軟件對象工具操作系統(tǒng)環(huán)境支持被測軟件對象WinRunner7.50Microsoft Windows 3.x/95/98/NT/2000/XPl Netscape, Microsoft Internet Explorer
55、l JDKl Visual Studio 6.0l 數(shù)據(jù)庫支持l Microsoft Windows圖形用戶界面應用程序l SAP,Siebel,Oracle Web Form和PeopleSoftl Windows 2000控件l 基于Web的應用程序l C/S系統(tǒng)5.2工具功能模塊詳細劃分雖然三個工具都是自動化的功能測試工具,從大的方面來說,它們的功能都是一樣的,但有許多細節(jié)的功能還是有很大區(qū)別的。所以,為了更清楚、更詳細的認識和比較這三個工具,將這個工具按它的功能模塊進行劃分,然后針對每個細節(jié)的功能進行分析和比較,最后從整體上把握,是最好的方法。(1)WinRunnerWinRunner為了支持完整的功能測試,簡化測試難度,使測試人員能夠輕松正確的執(zhí)行測試,內(nèi)置了許多強大的功能。下圖是結(jié)合WinRunner的實際使用情況,對它從主要功能上的一個詳細的劃分13。圖5.1 WinRunner功能劃分從上面的功能模塊劃分圖我們可以看出,WinRunner主要13個主
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZSM 0057-2024“領(lǐng)跑者”評價技術(shù)要求 石油、石化及相關(guān)工業(yè)用的鋼制球閥
- T-ZJZYC 010-2024 中藥材產(chǎn)業(yè)合規(guī)管理規(guī)范
- 二零二五年度個人向新能源車輛制造商借款購買電動車的合同
- 歷年合同法司考備考輔導班師資聘用合同2025年度
- 2025年度集體土地租賃與特色小鎮(zhèn)建設合同
- 二零二五年度互聯(lián)網(wǎng)廣告聯(lián)盟合作協(xié)議合同
- 2025年度砂石場勞務人員薪酬及福利待遇合同
- 二零二五年度網(wǎng)紅獨家經(jīng)紀合作協(xié)議模板
- 二零二五年度電子商務平臺支付清算合同范本
- 新能源汽車項目買賣合同
- 《計算機應用基礎》教學教案-02文字錄入技術(shù)
- 2023年大疆科技行業(yè)發(fā)展概況分析及未來五年行業(yè)數(shù)據(jù)趨勢預測
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院院感知識培訓
- 《審計學》完整全套課件
- 胎盤早剝應急預案演練腳本
- 2023年中國鐵路南寧局招聘筆試參考題庫附帶答案詳解
- 某鐵路注漿處理工藝性試驗方案
- GB/T 12265-2021機械安全防止人體部位擠壓的最小間距
- GB 8537-2018食品安全國家標準飲用天然礦泉水
- GB 31247-2014電纜及光纜燃燒性能分級
- 部編人教版道德與法治五年級下冊全冊課時練習講解課件
評論
0/150
提交評論