基于新信息技術的軟件測試技術 課件 第8章 軟件自動化測試概述_第1頁
基于新信息技術的軟件測試技術 課件 第8章 軟件自動化測試概述_第2頁
基于新信息技術的軟件測試技術 課件 第8章 軟件自動化測試概述_第3頁
基于新信息技術的軟件測試技術 課件 第8章 軟件自動化測試概述_第4頁
基于新信息技術的軟件測試技術 課件 第8章 軟件自動化測試概述_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第8章軟件自動化測試概述8.1軟件自動化測試的產生8.2軟件自動化測試的概念8.3軟件自動化測試的意義8.4開展自動化測試的方8.5軟件自動化測試的原理和方法8.6軟件自動化測試工具

8.1軟件自動化測試的產生

隨著計算機日益廣泛的應用,計算機軟件越來越龐大和復雜,軟件測試的工作量也越來越大。隨著人們對軟件測試工作的重視,大量的軟件自動化測試工具不斷涌現出來,自動化測試能夠滿足軟件公司想在最短的進度內充分測試其軟件的需求,一些軟件公司在這方面的投入,會對整個開發(fā)工作的質量、成本和周期帶來非常明顯的效果。

8.2軟件自動化測試的概念

軟件自動化測試是一項讓計算機代替測試人員進行軟件測試的技術,是指編寫軟件去測試其他軟件。自動化測試的目標是對被測試系統進行自動測試??偟膩碚f,自動化測試的目標是通過較少的開銷,得到更徹底的測試,并提高產品的質量。

軟件自動化測試有如下特點:

(1)可以對程序的新版本自動執(zhí)行回歸測試;

(2)可以執(zhí)行一些手工測試困難或不可能進行的測試;

(3)可以更好地利用資源;

(4)測試具有一致性和可重復性;

(5)可以更快地將軟件推向市場;

(6)可以增加軟件信任度。

8.3軟件自動化測試的意義

軟件自動化測試就是一項讓計算機代替測試人員進行軟件測試的技術,相對于手工測試而言,自動化測試主要是通過所開發(fā)的軟件測試工具、腳本等來實現的,具有良好的可操作性、可重復性和高效率等特點。為了更好地理解自動化測試的意義,需要從三個方面考慮:一是手工測試的局限性;二是軟件自動化測試所帶來的好處;三是自動化測試的局限性。

1.手工測試的局限性

手工測試是不可替代的,因為人具有很強的判斷能力。

(1)通過手工測試無法做到覆蓋所有代碼路徑。

(2)簡單的功能性測試用例在每一輪測試中都不能少,而且具有一定的機械性、重復性,工作量往往較大。

(3)許多與時序、死鎖、資源沖突、多線程等有關的錯誤,通過手工測試很難捕捉到。

(4)進行系統負載、性能測試,需要模擬大量數據或大量并發(fā)用戶等各種應用場合時,很難通過手工測試來進行。

(5)進行系統可靠性測試時,需要模擬系統運行10年、數十年,以驗證系統能否穩(wěn)定運行,這也是手工測試無法模擬的。

(6)如果有大量的測試用例,需要在短時間內(如1天)完成,手工測試幾乎不可能做到。

(7)難以做到回歸測試。

2.軟件自動化測試所帶來的好處

自動化測試有很強的優(yōu)勢,即借助計算機的計算能力可以重復、不知疲倦地運行。

使用測試工具的目的就是要提高軟件測試的效率和軟件測試的質量。通常,自動化測試的好處有:產生可靠的系統;改進測試工作質量;減少測試工作量并加快測試進度。

1)產生可靠的系統

測試工作的主要目標一是找出缺陷,從而減少應用中的錯誤;二是確保系統的性能滿足用戶的期望。

通過使用自動化測試可獲得的效果歸納如下:

(1)需求定義的改進;

(2)性能測試的改進;

(3)負載/壓力測試的改進;

(4)高質量測量與測試最佳化;

(5)改進與開發(fā)組人員之間的關系;

(6)改進系統開發(fā)生命周期。

2)改進測試工作質量

通過使用自動化測試工具,可增加測試的深度與廣度,改進測試工作質量。其具體好處可歸納如下:

(1)改進多平臺兼容性測試;

(2)改進軟件兼容性測試;

(3)改進普通測試執(zhí)行;

(4)使測試集中于高級測試問題;

(5)可執(zhí)行手工測試無法完成的測試;

(6)可重現軟件缺陷;

(7)測試無需用戶干預。

3)減少測試工作量并加快測試進度

善于使用測試工具來進行測試,其節(jié)省時間并加快測試工作進度是毋庸置疑的,這也是自動化測試的主要優(yōu)點。

3.自動化測試的局限性

1)自動化測試不能取代手工測試

自動化測試絕不能代替手工測試,下列情況不適合于自動化測試:

(1)周期短并且一次性的項目。

(2)進度非常緊張的項目。

(3)使用了很多第三方或自定義控件的項目。(4)軟件不穩(wěn)定,如軟件升級版本時,用戶界面和功能頻繁變化,此時自動化測試相應部分修改的開銷較大。

(5)結果很容易通過人驗證的測試。

(6)涉及物理交互的測試,如在讀卡機上劃卡,斷開設備的物理連接、開關電源等。

2)手工測試比自動測試發(fā)現的故障要多

自動化測試主要是進行重復測試。一般情況下,自動化測試進行的工作是以前進行過的,因此被測試軟件在自動化測試中暴露的故障要少得多。

自動化測試主要用于回歸測試,進行正確性驗證測試,而不是故障發(fā)現測試。據經驗數據統計,自動化測試只能發(fā)現約15%的故障,而手工測試可以發(fā)現約85%的故障。

3)自動化測試不能提高測試的有效性

自動化測試僅用于提高測試的效率,即減少測試的開銷和時間。

4)自動化測試不具有想象力

(1)自動化測試是通過測試軟件進行的,測試過程只是按照運行機制執(zhí)行。手工測試時可以直接判斷測試結果的正確性,而自動化測試在許多情況下的測試結果還需要人工干預判斷。

(2)手工測試可以處理意外事件,如網絡連接中斷,此時必須重新建立連接。手工測試時可以及時處理該意外,而自動化測試時該意外事件一般都會導致測試的中止。

8.4開展自動化測試的方法

1.選取合適的測試項目來開展自動化測試自動化測試只有在多次運行后,才能體現出自動化的優(yōu)勢,只有不斷地運行自動化測試才能有效預防缺陷、減輕測試人員手工的回歸測試的工作量。如果一個項目是短期的并且是一次性的項目,則不適合開展自動化測試。

2.自動化測試介入的時機

過早的自動化測試會帶來維護成本的增加,因為早期的程序界面一般不夠穩(wěn)定,處于頻繁更改的狀態(tài),這時候進行自動化測試往往得不償失,疲于應付“動蕩”的界面。

自動化測試不應該在界面尚未穩(wěn)定的時候開始,但是,并不意味著不需要計劃和準備工作。在項目初期,就要考慮工具的選擇問題。

3.自動化測試工程師的基本素質和技能要求

自動化測試工程師應該具備一定的自動化測試基礎,包括自動化測試工具的基礎、自動化測試腳本的開發(fā)基礎知識等;還需要了解各種測試腳本的編寫、設計方法,知道在什么時候選取怎樣的測試腳本開發(fā)方式和如何維護測試腳本;需要具備一定的編程技巧,熟悉某些測試腳本語言的基本語法和使用方法。

4.自動化測試的成本

成功開展自動化測試必須考慮自動化測試的成本問題。成本包括測試人員、測試設備、測試工具等。

8.5軟件自動化測試的原理和方法

1.代碼分析代碼分析類似于高級編譯系統,一般針對不同的高級語言構造分析工具,在工具中定義類、對象、函數、變量等的定義規(guī)則、語法規(guī)則;在分析時對代碼進行語法掃描,找出不符合編碼規(guī)范的地方;根據某種質量模型評價代碼質量,生成系統的調用關系圖等。

2.捕獲和回放

代碼分析是一種白盒測試的自動化方法,捕獲和回放則是一種黑盒測試的自動化方法。

捕獲是將用戶每一步操作都記錄下來。這種記錄的方式有兩種:程序用戶界面的像素坐標或程序顯示對象(窗口、按鈕、滾動條等)的位置,以及相對應的操作、狀態(tài)變化或是屬性變化。所有的記錄轉換為一種腳本語言所描述的過程,以模擬用戶的操作。

3.腳本技術

腳本是一個特定測試的一系列指令,這些指令可以被自動化測試工具執(zhí)行。腳本可以通過錄制測試的操作產生,然后再做修改,這樣可以減少腳本編程的工作量。當然,也可以直接用腳本語言編寫腳本。

腳本的產生有兩種方式:一種是通過錄制測試的操作產生;另一種是直接用腳本語言編寫。

腳本技術可以分為以下幾類:

(1)線性腳本:是錄制手工執(zhí)行的測試用例得到的腳本。

(2)結構化腳本:類似于結構化程序設計,具有各種邏輯結構(順序、分支、循環(huán)),而且具有函數調用功能。

(3)共享腳本:是指某個腳本可被多個測試用例使用,即腳本語言允許一個腳本調用另一個腳本。

(4)數據驅動腳本:是指將測試輸入存儲在獨立的數據文件中。

(5)關鍵字驅動腳本:是數據驅動腳本的邏輯擴展。

4.虛擬用戶技術

虛擬用戶技術通過模擬真實用戶的行為來對被測程序(ApplicationUnderTest,AUT)施加負載,以測量AUT的性能指標值,如事務的響應時間、服務器的吞吐量等。

虛擬用戶技術以真實用戶的“商務處理”(用戶為完成一個商業(yè)業(yè)務而執(zhí)行的一系列操作)作為負載的基本組成單位,用“虛擬用戶”(模擬用戶行為的測試腳本)來模擬真實用戶。

8.6軟件自動化測試工具

8.6.1測試工具分類1.按照測試方法分類1)白盒測試工具白盒測試工具一般是針對代碼進行測試,常用的白盒測試工具集有Parasoft和Compuware,見表8-1和表8-2。測試中發(fā)現的缺陷可以定位到代碼級,根據測試工具原理的不同,又可以分為靜態(tài)測試工具和動態(tài)測試工具。

(1)靜態(tài)測試工具:直接對代碼進行分析,不需要運行代碼,也不需要對代碼編譯鏈接,生成可執(zhí)行文件。

(2)動態(tài)測試工具:動態(tài)測試工具與靜態(tài)測試工具不同,它一般采用“插樁”的方式,向代碼的可執(zhí)行文件中插入一些監(jiān)測代碼,用來統計程序運行時的數據。

2)黑盒測試工具

黑盒測試工具包括功能測試工具和性能測試工具。黑盒測試工具的一般原理是利用腳本的錄制(Record)/回放(Playback),模擬用戶的操作,然后將被測系統的輸出記錄下來同預先給定的標準結果比較。

黑盒測試工具的代表有Rational公司的TeamTest、Compuware公司的QACenter。常見的黑盒功能測試工具如表8-3所示。

2.按照測試的對象和目的分類

軟件測試工具按照測試的對象和目的大致可分為單元測試工具、功能測試工具、負載測試工具、性能測試工具、Web測試工具、數據庫測試工具、回歸測試工具、嵌入式測試工具、頁面鏈接測試工具、測試設計與開發(fā)工具、測試執(zhí)行和評估工具、測試管理工具等。

3.按測試工具的用途分類

(1)測試管理工具用于管理測試的整個工作過程以及過程中產生的各種相關文檔、數據、記錄和報告等。常用的測試管理工具有TestDirector和TestManager等。其中TestDirector的使用率最高。

(2)功能測試工具是指用于自動化執(zhí)行功能測試腳本的工具,一般采用基于錄制回放的機制。

(3)性能測試工具通常指那些用來支持壓力、負載測試,能夠用來錄制和生成腳本、設置和部署場景、產生并發(fā)用戶和向系統施加持續(xù)壓力的工具。

(4)單元測試工具一般指用于單元測試的測試框架,這些測試工具提供單元測試的一些接口,管理單元測試的執(zhí)行。常見的單元測試工具有XUnit系列、MSTest等。

(5)測試用例設計工具指用于輔助測試用例的設計或測試數據生成的工具,一般常用的有TD。

4.按測試工具的收費方式分類

1)商業(yè)測試工具

商業(yè)測試工具的特點是需要花錢購買,但是會相對成熟和穩(wěn)定,并且有一定的售后服務和技術支持。

商業(yè)測試工具主要集中在GUI功能測試和性能測試方面,目前流行的基于GUI的功能自動化測試工具有Robot、QTP、TestComplete等。

2)開源測試工具

開源軟件是指軟件的源代碼是公開發(fā)布的,通常是由自愿者開發(fā)和維護的軟件。開源測試工具是測試工具的一個重要分支。

3)自主開發(fā)測試工具

目前,很多軟件測試組織其實已經具備了自己動手開發(fā)測試工具的條件。

市場對于測試工具的接受程度在不斷提高,人們對測試工具的認識不斷加強和深入,對測試工具原理的理解不斷提高。

8.6.2目前市場上主流的測試工具

1.MI公司的產品

1)?LoadRunner

LoadRunner是一種預測系統行為和性能的負載測試工具。

LoadRunner主要功能如下:

(1)輕松創(chuàng)建虛擬用戶。

(2)使用VirtualUserGenerator,能簡便地創(chuàng)立起系統負載。

(3)創(chuàng)建真實的負載。

(4)定位性能問題。

(5)分析結果以精確定位問題所在。

2)?WinRunner

2006年以前,MercuryInteractive公司的WinRunner是一種企業(yè)級的功能測試工具,用于檢測應用程序是否能夠達到預期的功能及正常運行。

WinRunner的特點在于:與傳統的手工測試相比,它能快速、批量地完成功能點測試;能針對相同測試腳本,執(zhí)行相同的動作,從而消除人工測試所帶來的理解上的誤差;此外,它還能重復執(zhí)行相同動作,因此測試工作中最枯燥的部分可交由機器完成;它支持程序風格的測試腳本,一個高素質的測試工程師能借助它完成流程極為復雜的測試,通過使用通配符、宏、條件語句、循環(huán)語句等,還能重用測試腳本;它針對于大多數編程語言和Windows技術,提供了較好的集成、支持環(huán)境,對基于Windows平臺的應用程序實施功能測試帶來了極大的便利。

其主要功能包括:

(1)輕松創(chuàng)建測試;

(2)插入檢查點;

(3)檢驗數據;

(4)增強測試;

(5)運行測試;

(6)分析結果;

(7)維護測試。

3)?TestDirector

TestDirector是全球最大的軟件測試工具提供商MercuryInteractive公司生產的企業(yè)級測試管理工具,也是業(yè)界第一個基于Web的測試管理系統,它可以在公司內部或外部

進行全球范圍內測試的管理。通過在一個整體的應用系統中集成測試管理的各個部分,包括需求管理、測試計劃、測試執(zhí)行以及錯誤跟蹤等功能,TestDirector極大地加速了測試

過程。

TestDirector將測試過程流水化,從測試需求管理到測試計劃、測試日程安排、測試執(zhí)行,到出錯后的錯誤跟蹤,僅在一個基于瀏覽器的應用中便可完成,而不需要每個客戶端都安裝一套客戶端程序。

(1)需求管理。

(2)測試計劃的制訂。

(3)人工與自動測試的結合。

(4)安排和執(zhí)行測試。

(5)缺陷管理。

(6)圖形化和報表輸出。

4)?QTP

QTP(QuickTestProfessional)是一種自動測試工具。使用QTP的目的是用它來執(zhí)行重復的手動測試,主要是用于回歸測試和測試同一軟件的新版本。因此在測試前要考慮好如何對應用程序進行測試,例如要測試哪些功能、操作步驟、輸入數據和期望的輸出數據等。

2.IBMRational公司的產品

1)?RationalTestmanager

RationalTestManager是一個開放的可擴展的架構,它統一了所有的工具、制造(Artifacts)和數據,而數據是由測試工作產生并與測試工作(Effort)關聯的。在這個唯一的保護傘(Umbrella)下,測試工作中的所有負責人(Stakeholder)和參與者能夠定義和提煉他們將要達到的質量目標。

2)?RationalClearQuest

ClearQuest是IBMRational公司提供的缺陷及變更管理工具。

3)?RationalRobot

RationalRobot提供了軟件測試的功能,正如其名robot(機器人),它提供了許多類似機器人的重復過程,供測試用。

RationalRobot是一個面向對象的軟件測試工具,主要針對Web、ERP和C/S進行功能自動化測試;可以降低在功能測試上的人力和物力的投入成本和風險,測試包括可見的和不可見的對象。

RationalRobot具有以下功能和作用:

(1)執(zhí)行完整的功能測試。記錄和回放遍歷應用程序的腳本以及測試在查證點處的對象狀態(tài)。

(2)執(zhí)行完整的性能測試。通過RationalRobot與RationalTestManager的協作可以記錄和回放腳本,這些腳本幫助斷定多客戶系統在不同負載情況下是否能夠按照用戶定義的標準運行。

(3)在SQABasic、VB、VU多種環(huán)境下創(chuàng)建并編輯腳本。RationalRobot編輯器提供有色代碼命令,并在集成腳本開發(fā)階段提供鍵盤幫助。

(4)測試微軟IDE環(huán)境下VB、HTML、Java、OracleForms、PowerBuilder、Delphi、開發(fā)的應用程序以及用戶界面上看不見的那些對象。

(5)腳本回放階段收集應用程序診斷信息。RationalRobot與RationalPurifyQuantifyPureCoverage集成,可以通過診斷工具回放腳本,并在日志中查看結果。

(6)同Rational其他組件或產品集成使用Robot。

4)?RationalPurify

自動化測試工具RationalPurify是RationalPurifyPlus工具中的一種。Purify是一個面向VC、VB或者Java開發(fā)的測試VisualC/C++和Java代碼中與內存有關的錯誤,確保整個應用程序的質量和可靠性。

3.Telelogic公司產品

最有名的logiscope白盒測試工具是法國Telelogic公司推出的專用于軟件質量保證和軟件測試的產品。其主要功能是對軟件做質量分析和測試以保證軟件的質量,并可做認證、反向工程和維護,特別是針對要求高可靠性和高安全性的軟件項目和工程。

4.Parasoft公司產品

1)?JTest白盒測試工具

JTest是Parasoft公司推出的一款針對Java語言的自動化代碼優(yōu)化和測試工具,它通過自動化實現對Java應用程序的單元測試和編碼規(guī)范校驗,從而提高代碼的可靠性以及Java軟件開發(fā)團隊的開發(fā)效率。

2)?C++Test白盒測試工具

C++Test是Parasoft針對C/C++開發(fā)的一款自動化測試工具,專門針對C/C++的源程序代碼進行自動化單元測試的工具,可以自動測試任何

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論