第4章軟件自動化測試_第1頁
第4章軟件自動化測試_第2頁
第4章軟件自動化測試_第3頁
第4章軟件自動化測試_第4頁
第4章軟件自動化測試_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、軟件測試軟件測試 主講:許福主講:許福 聯(lián)系方式聯(lián)系方式電話:電話:62336516手機:手機件:郵件:地址:地址:信息學(xué)院軟件教研室 主樓411第四章第四章 軟件自動化測試軟件自動化測試主要內(nèi)容主要內(nèi)容4.1 自動化測試基礎(chǔ)4.2 軟件自動化測試生存周期方法學(xué)4.3 軟件測試工具分類 4.4 選擇適當?shù)臏y試工具4.5 常見自動測試工具簡介4.1 自動化測試基礎(chǔ)自動化測試基礎(chǔ)4.1.1 自動化測試的意義4.1.2 自動化測試的定義和引入4.1.3 自動化測試的原理和方法4.1.4 自動化測試工具的作用及優(yōu)勢4.1.5 自動化測試的運用4.1.1 自動化測試的意義自動化

2、測試的意義軟件測試的工作量很大(據(jù)統(tǒng)計,測試會占用到40%的開發(fā)時間;一些可靠性要求非常高的軟件,測試時間甚至占到開發(fā)時間的60%-80%)。而測試中的許多操作是重復(fù)性的、非智力性的和非創(chuàng)造性的,并要求做準確細致的工作,計算機就最適合于代替人工去完成這樣的任務(wù)。軟件自動化測試是相對手工測試而存在的,主要是通過所開發(fā)的軟件測試工具、腳本等來實現(xiàn),具有良好的可操作性、可重復(fù)性和高效率等特點。手工測試的局限性手工測試的局限性通過手工測試無法做到覆蓋所有代碼路徑。簡單的功能性測試用例在每一輪測試中都不能少,而且具有一定的機械性、重復(fù)性,工作量較大。許多與時序、死鎖、資源沖突、多線程等有關(guān)的錯誤,通過手

3、工測試很難捕捉到。進行系統(tǒng)負載、性能測試時,需要模擬大量數(shù)據(jù)或大量并發(fā)用戶等各種應(yīng)用場合時,很難通過于工測試來進行。進行系統(tǒng)可靠性測試時,需要模擬系統(tǒng)運行10年、幾十年,以驗證系統(tǒng)能否穩(wěn)定運行,這也是手工測試無法模擬的。如果有大量(幾千)的測試用例,需要在短時間內(nèi)(1天)完成,手工測試幾乎不可能做到。自動化測試帶來的好處自動化測試帶來的好處縮短軟件測試周期,讓產(chǎn)品更快投放市場。測試效率高,充分利用硬件資源。節(jié)省人力資源,降低測試成本。增強測試的穩(wěn)定性和可靠性。提高軟件測試的準確度和精確度。使測試工作開展相對比較容易,產(chǎn)生更高質(zhì)量的產(chǎn)品。手工不能做的事情,自動化測試能做,如負載、性能測試。 軟件

4、測試實行自動化進程,絕不是因為厭煩了重復(fù)的測試工作,而是因為測試工作的需要,更準確地說是回歸測試和系統(tǒng)測試的需要。建立正確的自動化測試目標建立正確的自動化測試目標 目前,軟件自動化測試還不能解決所有的測試問題,因此,需要建立正確的自動化測試目標。測試計劃產(chǎn)生:主要靠測試工程師與軟件生產(chǎn)質(zhì)量保證專家的合作,自動化工具只能起到一定的輔助作用。一種測試工具不完全適用于所有測試自動測試不一定減輕工作量測試進度可能不一定縮短測試工具不一定易于使用自動化測試的普遍應(yīng)用存在局限測試覆蓋率不會達到百分之百4.1.2 自動化測試的定義自動化測試的定義自動化測試可以被理解為使用一個商業(yè)通用測試自動化工具編寫一個軟

5、件來測試其它軟件,是通過編寫軟件去測試其它軟件。編寫驅(qū)動被測應(yīng)用程序的測試腳本以執(zhí)行鍵盤、鼠標動作和后臺進程并驗證應(yīng)用程序的響應(yīng)和行為。自動化測試的定義和引入自動化測試的定義和引入(續(xù)續(xù))對自動化測試需要有正確認識能提高測試效率、覆蓋率和可靠性等。自動化測試是對手工測試的一種補充補充,不能完全代替手工測試。它們各有特點,其測試對象和測試范圍都不一樣:在系統(tǒng)功能邏輯測試、驗收測試、適用性測試、涉及物理交互性測試時,多采用黑盒測試的手工測試方法單元測試、集成測試、系統(tǒng)負載測試、性能測試、穩(wěn)定性測試、可靠性測試等比較適合采用自動化測試。不穩(wěn)定軟件的測試、開發(fā)周期很短的軟件、一次性的軟件等不適合自動化

6、測試。自動化測試工具在進行功能測試時,其準確的含義是回歸測試工具,這時工具不能發(fā)現(xiàn)更多的新問題,但可以保證對已經(jīng)測試過部分的準確性和客觀性。 多數(shù)情況下,手工測試和自動化測試應(yīng)該相結(jié)合,以最有效的方法來完成測試任務(wù)。自動化測試的定義和引入自動化測試的定義和引入(續(xù))(續(xù))通常,當軟件開發(fā)過程具有下列情況時,就需要考慮引入自動化測試: 非常重要的測試;涉及范圍很廣的測試;對主要功能的測試;容易自動化的測試;很快有回報的測試;運行最頻繁的測試;測試個案的生成,包括測試輸入、測試輸出、測試操作指令等;測試的執(zhí)行與控制,包括單機運行和網(wǎng)絡(luò)多機分布式的運行,在節(jié)假日的運行,測試個案調(diào)用控制,測試對象、測

7、試范圍與測試版本的控制等;測試結(jié)果與標準輸出進行對比;不吻合預(yù)期的測試結(jié)果的分析、記錄、分類和報告,及總體測試狀況的統(tǒng)計及報表的產(chǎn)生。 并非任何測試自動化都可以起到預(yù)期效果,只有好的自動化測試體系才能揚長避短,達到建立自動化測試體系的初衷,在質(zhì)量保障方面有所作為。否則測試自動化可能會由于其建立和維護等方面的負擔(dān)造成延誤工期、成本浪費,甚至最終被完全放棄。 選擇高效的自動化測試體系選擇高效的自動化測試體系如何評價一個測試或測試自動化體系是否優(yōu)越呢?為此,我們應(yīng)該關(guān)注自動化測試體系的以下七個方面的屬性。(1) (1) 可維護性可維護性 指是否可以很容易使測試更新跟上軟件升級的步伐。 軟件會變更或升

8、級是注定的事實,防止變更或升級造成自動化測試的維護工作量過大是很重要的,否則整個測試自動化工作將可能被全面否決,甚至束之高閣。(2) (2) 高效性高效性 效率是與成本緊密聯(lián)系的,自動化測試的一個重要目標就是更經(jīng)濟地運行測試。應(yīng)在測試和測試自動化的設(shè)計階段全面審視各方面因素,在科學(xué)合理的測試流程基礎(chǔ)上利用優(yōu)秀的自動化策略將自動化測試與手工測試有機結(jié)合,才能實現(xiàn)效率最大化。(3) (3) 可靠性可靠性 指測試體制是否能給出精確而且可重現(xiàn)的結(jié)果。(4) (4) 兼容性兼容性 指是否允許測試用例為不同的測試目標而以不同的方式組合。(5) (5) 可用性可用性 指定制或更改測試用例是否容易,測試人員或

9、用戶掌握和理解其使用方法是否容易。(6) (6) 健壯性健壯性 指是否可以處理意外情況而不退出或終止,并盡量給出正確有用的信息。(7) (7) 可移植性可移植性 指在不同環(huán)境中運行測試的能力。 應(yīng)根據(jù)使用自動化測試體系的實際目標,綜合考慮這七個方面的具體屬性,有針對性地提高自己關(guān)注的屬性,以實施符合實際需要的自動化測試體系。4.1.3 自動化測試的原理和方法自動化測試的原理和方法軟件自動化測試是通過設(shè)計特殊程序模擬測試人員對計算機的操作過程、操作行為,或者類似于編譯系統(tǒng)那樣對計算機程序進行檢查。軟件測試自動化實現(xiàn)的原理和方法主要有:對代碼進行靜態(tài)和動態(tài)分析測試過程的捕獲和回放測試腳本技術(shù)虛擬用

10、戶技術(shù)代碼分析代碼分析一種白盒測試的自動化方法。代碼分析類似于高級編譯系統(tǒng),一般針對不同的高級語言去構(gòu)造分析工具,在工具中定義類、對象、函數(shù)、變量等定義規(guī)則、語法規(guī)則。在分析時對代碼進行語法掃描,找出不符合編碼規(guī)范的地方。根據(jù)某種質(zhì)量模型評價代碼質(zhì)量,生成系統(tǒng)的調(diào)用關(guān)系圖等。捕獲和回放捕獲和回放 一種黑盒測試的自動化方法。捕獲是將用戶每一步操作都記錄下來。將用戶界面的像素坐標或程序顯示對象(窗口、按鈕、滾動條等)的位置,以及相對應(yīng)的操作、狀態(tài)變化或是屬性變化。所有的記錄轉(zhuǎn)換為一種腳本語言所描述的過程,以模擬用戶的操作?;胤攀菍⒛_本語言所描述的過程轉(zhuǎn)換為屏幕上的操作,然后將被測系統(tǒng)的輸出記錄下來

11、同預(yù)先給定的標準結(jié)果比較??梢源蟠鬁p輕黑盒測試的工作量,在迭代開發(fā)的過程中,能夠很好地進行回歸測試。捕獲和回放捕獲和回放 自動化負載測試幾乎都是采用“錄制-回放”技術(shù)。首先,由手工完成一遍需測試的流程,由計算機記錄下客戶端和服務(wù)器端之間的通信信息(這些信息通常是一些協(xié)議和數(shù)據(jù)),形成特定的腳本程序(Script)。統(tǒng)一生成多個虛擬用戶,運行該腳本,監(jiān)控系統(tǒng)性能,并提供分析報告。這樣,通過幾臺機器就可以模擬出成百上千用戶,以便于對系統(tǒng)進行負載能力測試。捕獲和回放捕獲和回放 腳本技術(shù)腳本技術(shù) 腳本是測試工具執(zhí)行的一組指令的集合,是計算機程序的一種形式。腳本可以通過錄制測試的操作產(chǎn)生,然后再做修改,

12、這樣可以減少腳本編程的工作量。也可以直接用腳本語言編寫腳本。腳本技術(shù)可以分為以下幾類:線性腳本錄制手工執(zhí)行的測試用例得到的腳本。結(jié)構(gòu)化腳本類似于結(jié)構(gòu)化程序設(shè)計,具有各種邏輯結(jié)構(gòu)(順序、分支、循環(huán)),而且具有函數(shù)調(diào)用功能。共享腳本是指某個腳本可被多個測試用例使用,即腳本語言允許一個腳本調(diào)用另一個腳本。數(shù)據(jù)驅(qū)動腳本將測試輸入存儲在獨立的數(shù)據(jù)文件中。關(guān)鍵字驅(qū)動腳本是數(shù)據(jù)驅(qū)動腳本的邏輯擴展。自動化測試工具的特征自動化測試工具的特征軟件測試自動化通常借助測試工具進行。支持腳本化語言(Scripting Language)對程序界面中對象的識別能力支持函數(shù)的可重用支持外部函數(shù)庫抽象層將程序界面中的對象實體

13、映射成邏輯對象分布式測試(Distributed Test)的支持支持數(shù)據(jù)驅(qū)動測試(Data-Driven Test)錯誤處理調(diào)試器(Debugger)源代碼管理支持腳本的命令行(Command Line)方式4.1.4 自動化測試工具的優(yōu)勢和局限自動化測試工具的優(yōu)勢和局限測試工具可以進行部分的測試設(shè)計、實現(xiàn)、執(zhí)行和比較的工作。部分的測試工具可以實現(xiàn)測試用例的自動生成,但通常的工作方式為人工設(shè)計測試用例,使用工具進行用例的執(zhí)行和比較。采用自動比較技術(shù),還可以自動完成測試用例執(zhí)行結(jié)果的判斷,從而避免人工比對存在的疏漏問題。 自動化測試工具的作用:(1)確定系統(tǒng)最優(yōu)的硬件配置。(2)檢查系統(tǒng)的可靠

14、性。(3)檢查系統(tǒng)硬件和軟件的升級情況。(4)評估新產(chǎn)品。自動化測試工具的作用及優(yōu)勢自動化測試工具的作用及優(yōu)勢(續(xù))(續(xù))自動化測試工具的優(yōu)勢主要體現(xiàn)在以下幾個方面:(1)記錄業(yè)務(wù)流程并生成腳本程序的能力。(2)對各種網(wǎng)絡(luò)設(shè)備(客戶機或服務(wù)器、其它網(wǎng)絡(luò)設(shè)備)的模仿能力。(3)用有限的資源生成高質(zhì)量虛擬用戶的能力。(4)對于整個軟件和硬件系統(tǒng)中各個部分的監(jiān)控能力。(5)對于測試結(jié)果的表現(xiàn)和分析能力。測試自動化限制測試自動化限制 測試自動化可以帶來非常明顯的收益,但也有以下限制:不能取代手工測試 手工測試比自動測試發(fā)現(xiàn)的缺陷更多對測試質(zhì)量的依賴性極大測試自動化不能提高有效性測試自動化可能會制約軟件

15、開發(fā)工具本身并無想象力 另外,人工測試比測試工具更優(yōu)越的另一個方面是可以處理意外事件。雖然工具也能處理部分異常事件,但是對真正的突發(fā)事件和不能由軟件解決的問題就無能為力。4.1.5 自動化測試的運用自動化測試的運用測試用例(Test Case,測試個案)的生成測試的執(zhí)行與控制測試結(jié)果與標準輸出的對比不吻合測試結(jié)果的分析處理測試狀態(tài)的統(tǒng)計和報表的生成自動化測試與開發(fā)中產(chǎn)品每日構(gòu)建的配合采用自動化比較技術(shù)4.2 軟件自動化測試生存周期方法學(xué)軟件自動化測試生存周期方法學(xué)自動化測試生存自動化測試生存周期方法學(xué)周期方法學(xué)1. 自動化測試決定自動化測試決定2. 測試工具獲取測試工具獲取3. 自動化測試引入

16、過程自動化測試引入過程4. 測試計劃、設(shè)計與開發(fā)測試計劃、設(shè)計與開發(fā)5. 測試執(zhí)行與管理測試執(zhí)行與管理6. 測試評審與評估測試評審與評估自動化測試生存周期方法學(xué)結(jié)構(gòu)自動化測試生存周期方法的應(yīng)用自動化測試生存周期方法的應(yīng)用自動化測試生自動化測試生存周期方法學(xué)存周期方法學(xué)1. 自動化測試決定自動化測試決定2. 測試工具獲取測試工具獲取3. 自動化測試引入過程自動化測試引入過程4. 測試計劃、設(shè)計與開發(fā)測試計劃、設(shè)計與開發(fā)5. 測試執(zhí)行與管理測試執(zhí)行與管理6. 測試評審與評估測試評審與評估A. 系統(tǒng)生存周期過程評估與改進系統(tǒng)生存周期過程評估與改進F. 生成維護階段生成維護階段C. 小型工具先導(dǎo)小型工

17、具先導(dǎo)/原型原型D. 系統(tǒng)設(shè)計與開發(fā)階段系統(tǒng)設(shè)計與開發(fā)階段B. 業(yè)務(wù)分析與需求階段業(yè)務(wù)分析與需求階段E. 組裝與測試階段組裝與測試階段4.3自動化測試工具的分類自動化測試工具的分類 根據(jù)測試方法不同,自動化測試工具可以分為:白盒測試工具黑盒測試工具自動化測試工具的分類自動化測試工具的分類(續(xù)續(xù))按照主要用途和應(yīng)用領(lǐng)域分類:捕獲錯誤用途:用于捕獲軟件錯誤或程序調(diào)試。 代碼覆蓋率分析器和代碼測量器內(nèi)存泄漏監(jiān)測工具可使用性測試工具測試數(shù)據(jù)生成器測試管理工具網(wǎng)絡(luò)測試工具GUI測試工具負載和性能測試工具專用工具4.4 選擇自動化測試工具選擇自動化測試工具測試人員在選擇和使用自動化測試工具時,可以從以下角

18、度來考慮:關(guān)注組織的需要自主開發(fā)購買按照用途選擇匹配的測試工具在適當?shù)纳芷谶x擇測試工具按照測試人員的實際技能選擇匹配的測試工具選擇一個可提供的測試工具4.5 幾種常用軟件測試工具幾種常用軟件測試工具QACenter QACenter自動化測試系列工具是Compuware公司的產(chǎn)品,它能夠幫助測試人員創(chuàng)建快速、可重用的測試過程。這些測試工具可以幫助管理測試過程,快速分析和調(diào)試程序,包括針對回歸、強度、單元、并發(fā)、集成、移植、容量、負載測試、自動執(zhí)行測試和產(chǎn)生測試結(jié)果文檔。WinRunner WinRunner是Mercury Interactive公司提供的一個企業(yè)級 的 功 能 檢 測 工 具 。WinRunner使功能測試得以自動化,從而保證了應(yīng)用程序按照預(yù)定方式運行。它以測試腳本形式將業(yè)務(wù)的過程記錄下來,并隨著相應(yīng)的應(yīng)用程序的開發(fā)或更新來支持對腳本的改進。執(zhí)行腳本及報告結(jié)果在整個的應(yīng)用周期中可對腳本重復(fù)使用。LoadRunner

溫馨提示

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

評論

0/150

提交評論