已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第6章 軟件自動化測試基礎(chǔ),6.1 自動化測試基礎(chǔ) 6.2 軟件自動化測試生存周期方法學(xué) 6.3 軟件自動化測試生存周期方法學(xué)的應(yīng)用 6.4 軟件自動化測試工具簡述,本章教學(xué)目標(biāo),理論環(huán)節(jié) 認(rèn)識與理解應(yīng)用軟件自動化測試的基本概念 認(rèn)識與理解軟件自動化測試生存周期方法學(xué)及其應(yīng)用 認(rèn)識軟件自動化測試工具與測試平臺的獲取及引入 常用軟件自動化測試工具簡介 實(shí)踐環(huán)節(jié) 選定一個白盒自動化測試工具,進(jìn)行初步學(xué)習(xí)和認(rèn)識 選定一個黑盒自動化測試工具,進(jìn)行初步學(xué)習(xí)和認(rèn)識 選定一個負(fù)載自動化測試工具,進(jìn)行初步學(xué)習(xí)和認(rèn)識,6.1 自動化測試基礎(chǔ),6.1.1 自動化測試的意義 6.1.2 自動化測試的定義和引入 6.1.3 自動化測試的原理和方法 6.1.4 自動化測試工具的作用及優(yōu)勢 6.1.5 自動化測試的運(yùn)用,Return,6.1.1 自動化測試的意義,通常,軟件測試的工作量很大(據(jù)統(tǒng)計,測試會占用到40%的開發(fā)時間;一些可靠性要求非常高的軟件,測試時間甚至占到開發(fā)時間的60%)。而測試中的許多操作是重復(fù)性的、非智力性的和非創(chuàng)造性的,并要求做準(zhǔn)確細(xì)致的工作,計算機(jī)就最適合于代替人工去完成這樣的任務(wù)。 軟件自動化測試是相對手工測試而存在的,主要是通過所開發(fā)的軟件測試工具、腳本等來實(shí)現(xiàn),具有良好的可操作性、可重復(fù)性和高效率等特點(diǎn)。 要理解為什么要進(jìn)行自動化測試,可以從兩個方面考慮: 一是手工測試的局限性; 二是軟件自動化測試所帶來的好處。,手工測試的局限性,通過手工測試無法做到覆蓋所有代碼路徑。 簡單的功能性測試用例在每一輪測試中都不能少,而且具有一定的機(jī)械性、重復(fù)性,工作量往往較大。 許多與時序、死鎖、資源沖突、多線程等有關(guān)的錯誤,通過手工測試很難捕捉到。 進(jìn)行系統(tǒng)負(fù)載、性能測試時,需要模擬大量數(shù)據(jù)或大量并發(fā)用戶等各種應(yīng)用場合時,很難通過于工測試來進(jìn)行。 進(jìn)行系統(tǒng)可靠性測試時,需要模擬系統(tǒng)運(yùn)行10年、幾十年,以驗(yàn)證系統(tǒng)能否穩(wěn)定運(yùn)行,這也是手工測試無法模擬的。 如果有大量(幾千)的測試用例,需要在短時間內(nèi)(1天)完成,手工測試幾乎不可能做到。 對于小型項(xiàng)目,自動測試可能用處不大,不值得去學(xué)習(xí)另外一種測試工具的使用方法。,自動化測試帶來的好處,縮短軟件開發(fā)測試周期,可以讓產(chǎn)品更快投放市場。 測試效率高,充分利用硬件資源。 節(jié)省人力資源,降低測試成本。 增強(qiáng)測試的穩(wěn)定性和可靠性。 提高軟件測試的準(zhǔn)確度和精確度,增加軟件信任度。 軟件測試工具使測試工作相對比較容易,但能產(chǎn)生更高質(zhì)量的測試結(jié)果。 手工不能做的事情,自動化測試能做,如負(fù)載、性能測試。 軟件測試實(shí)行自動化進(jìn)程,絕不是因?yàn)閰挓┝酥貜?fù)的測試工作,而是因?yàn)闇y試工作的需要,更準(zhǔn)確地說是回歸測試和系統(tǒng)測試的需要。,6.1.2 自動化測試的定義和引入,自動化測試的定義:使用一種自動化測試工具來驗(yàn)證各種軟件測試的需求,它包括測試活動的管理與實(shí)施。 在進(jìn)行自動化測試前,首先要建立一個對軟件測試自動化的認(rèn)識觀。軟件測試工具能提高測試效率、覆蓋率和可靠性等,自動化測試雖然具有很多優(yōu)點(diǎn),但它只是測試工作的一部分,是對手工測試的一種補(bǔ)充。自動化測試絕不能代替手工測試,它們各有各自的特點(diǎn),其測試對象和測試范圍都不一樣: 在系統(tǒng)功能邏輯測試、驗(yàn)收測試、適用性測試、涉及物理交互性測試時,多采用黑盒測試的手工測試方法。,自動化測試的定義和引入(續(xù)),單元測試、集成測試、系統(tǒng)負(fù)載測試、性能測試、穩(wěn)定性測試、可靠性測試等比較適合采用自動化測試。 那種不穩(wěn)定軟件的測試、開發(fā)周期很短的軟件、一次性的軟件等不適合自動化測試。 工具本身并沒有想象力和靈活性,根據(jù)報道,自動化測試只能發(fā)現(xiàn)15的缺陷,而手工測試可以發(fā)現(xiàn)85的缺陷。 自動化測試工具在進(jìn)行功能測試時,其準(zhǔn)確的含義是回歸測試工具,這時工具不能發(fā)現(xiàn)更多的新問題,但可以保證對已經(jīng)測試過部分的準(zhǔn)確性和客觀性。 多數(shù)情況下,手工測試和自動化測試應(yīng)該相結(jié)合,以最有效的方法來完成測試任務(wù)。,自動化測試的定義和引入(續(xù)),通常,當(dāng)軟件開發(fā)過程具有下列情況時,就需要考慮引入自動化測試: (1)非常重要的測試;(2)涉及范圍很廣的測試;(3)對主要功能的測試;(4)容易自動化的測試;(5)很快有回報的測試;(6)運(yùn)行最頻繁的測試;(7)測試個案的生成,包括測試輸入、測試輸出、測試操作指令等;(8)測試的執(zhí)行與控制,包括單機(jī)運(yùn)行和網(wǎng)絡(luò)多機(jī)分布式的運(yùn)行,在節(jié)假日的運(yùn)行,測試個案調(diào)用控制,測試對象、測試范圍與測試版本的控制等;(9)測試結(jié)果與標(biāo)準(zhǔn)輸出進(jìn)行對比;(10)不吻合預(yù)期的測試結(jié)果的分析、記錄、分類和報告,及總體測試狀況的統(tǒng)計及報表的產(chǎn)生。,6.1.3 自動化測試的原理和方法,軟件測試自動化實(shí)現(xiàn)的基礎(chǔ)是可以通過設(shè)計的特殊程序模擬測試人員對計算機(jī)的操作過程、操作行為,或者類似于編譯系統(tǒng)那樣對計算機(jī)程序進(jìn)行檢查。 軟件測試自動化實(shí)現(xiàn)的原理和方法主要有:直接對代碼進(jìn)行靜態(tài)和動態(tài)分析、測試過程的捕獲和回放、測試腳本技術(shù)、虛擬用戶技術(shù)和測試管理技術(shù)。 (1)代碼分析 代碼分析類似于高級編譯系統(tǒng),一般針對不同的高級語言去構(gòu)造分析工具,在工具中定義類、對象、函數(shù)、變量等定義規(guī)則、語法規(guī)則;在分析時對代碼進(jìn)行語法掃描,找出不符合編碼規(guī)范的地方;根據(jù)某種質(zhì)量模型評價代碼質(zhì)量,生成系統(tǒng)的調(diào)用關(guān)系圖等。,自動化測試的原理和方法(續(xù)),(2)捕獲和回放 代碼分析是一種白盒測試的自動化方法,捕獲和回放則是一種黑盒測試的自動化方法。捕獲是將用戶每一步操作都記錄下來。這種記錄的方式有兩種:程序用戶界面的像素坐標(biāo)或程序顯示對象(窗口、按鈕、滾動條等)的位置,以及相對應(yīng)的操作、狀態(tài)變化或是屬性變化。所有的記錄轉(zhuǎn)換為一種腳本語言所描述的過程,以模擬用戶的操作。 回放時,將腳本語言所描述的過程轉(zhuǎn)換為屏幕上的操作,然后將被測系統(tǒng)的輸出記錄下來同預(yù)先給定的標(biāo)準(zhǔn)結(jié)果比較。這可以大大減輕黑盒測試的工作量,在迭代開發(fā)的過程中,能夠很好地進(jìn)行回歸測試。,自動化測試的原理和方法(續(xù)),關(guān)于自動化測試中的“錄制回放”技術(shù) 目前的自動化負(fù)載測試解決方案幾乎都是采用 “錄制-回放”的技術(shù)。 所謂的“錄制-回放”技術(shù),就是先由手工完成一遍需要測試的流程,同時由計算機(jī)記錄下這個流程期間客戶端和服務(wù)器端之間的通信信息,這些信息通常是一些協(xié)議和數(shù)據(jù),并形成特定的腳本程序 (Script) 。然后在系統(tǒng)的統(tǒng)一管理下同時生成多個虛擬用戶,并運(yùn)行該腳本,監(jiān)控硬件和軟件平臺的性能,提供分析報告或相關(guān)資料。這樣,通過幾臺機(jī)器就可以模擬出成百上千的用戶對應(yīng)用系統(tǒng)進(jìn)行負(fù)載能力的測試。,自動化測試的原理和方法(續(xù)),(3)腳本技術(shù) 腳本是一組測試工具執(zhí)行的指令集合,也是計算機(jī)程序的一種形式。腳本可以通過錄制測試的操作產(chǎn)生,然后再做修改,這樣可以減少腳本編程的工作量。當(dāng)然,也可以直接用腳本語言編寫腳本。腳本技術(shù)可以分為以下幾類: 線性腳本是錄制手工執(zhí)行的測試用例得到的腳本。 結(jié)構(gòu)化腳本類似于結(jié)構(gòu)化程序設(shè)計,具有各種邏輯結(jié)構(gòu)(順序、分支、循環(huán)),而且具有函數(shù)調(diào)用功能。 共享腳本是指某個腳本可被多個測試用例使用,即腳本語言允許一個腳本調(diào)用另一個腳本。 數(shù)據(jù)驅(qū)動腳本將測試輸入存儲在獨(dú)立的數(shù)據(jù)文件中。 關(guān)鍵字驅(qū)動腳本是數(shù)據(jù)驅(qū)動腳本的邏輯擴(kuò)展。,6.1.4 自動化測試工具的作用及優(yōu)勢,軟件測試自動化通常借助測試工具進(jìn)行。測試工具可以進(jìn)行部分的測試設(shè)計、實(shí)現(xiàn)、執(zhí)行和比較的工作。部分的測試工具可以實(shí)現(xiàn)測試用例的自動生成,但通常的工作方式為人工設(shè)計測試用例,使用工具進(jìn)行用例的執(zhí)行和比較。如果采用自動比較技術(shù),還可以自動完成測試用例執(zhí)行結(jié)果的判斷,從而避免人工比對存在的疏漏問題。 自動化測試工具的作用: (1)確定系統(tǒng)最優(yōu)的硬件配置。 (2)檢查系統(tǒng)的可靠性。 (3)檢查系統(tǒng)硬件和軟件的升級情況。 (4)評估新產(chǎn)品。,軟件測試自動化的實(shí)施過程,熟悉、分析測試用例 把已有的測試用例規(guī)類,寫成比較簡單的測試自動化計劃書 開始自動化測試程序的編寫 不斷完善自動化測試系統(tǒng) 測試自動化是一項(xiàng)龐大的工程,在真正動手之前,必須嘗試把所有的因素及可能性研究一遍,然后制定方案,因?yàn)榇朔桨敢坏┐_定,日后修改要付出很大代價,浪費(fèi)許多時間和人力。,自動化測試工具的作用及優(yōu)勢(續(xù)),自動化測試工具的優(yōu)勢主要體現(xiàn)在以下幾個方面: (1)記錄業(yè)務(wù)流程并生成腳本程序的能力。 (2)對各種網(wǎng)絡(luò)設(shè)備(客戶機(jī)或服務(wù)器、其它網(wǎng)絡(luò)設(shè)備)的模仿能力。 (3)用有限的資源生成高質(zhì)量虛擬用戶的能力。 (4)對于整個軟件和硬件系統(tǒng)中各個部分的監(jiān)控能力。 (5)對于測試結(jié)果的表現(xiàn)和分析能力。,6.1.5 自動化測試的運(yùn)用,測試用例(Test Case,測試個案)的生成 測試的執(zhí)行與控制 測試結(jié)果與標(biāo)準(zhǔn)輸出的對比 不吻合測試結(jié)果的分析處理 測試狀態(tài)的統(tǒng)計和報表的生成 自動化測試與開發(fā)中產(chǎn)品每日構(gòu)建的配合 采用自動化比較技術(shù),6.2 軟件自動化測試生存周期方法學(xué),圖 自動化測試生存周期方法學(xué)結(jié)構(gòu),軟件自動化測試生存周期方法學(xué)(續(xù)),采用自動化測試方法的確認(rèn) 自動化測試工具的獲取 自動化測試的引入階段 包括測試過程分析和測試工具的考查。 測試計劃與測試設(shè)計 包括制訂測試計劃、建立測試環(huán)境、測試設(shè)計和設(shè)計開發(fā)。 測試執(zhí)行與管理 測試活動評審與評估,6.3 自動化測試生存周期方法的應(yīng)用,建立正確的自動化測試目標(biāo),目前,軟件自動化測試還不能解決所有的測試問題,因此,需要建立正確的自動化測試目標(biāo)。 測試計劃產(chǎn)生:主要靠測試工程師與軟件生產(chǎn)質(zhì)量保證 專家的合作,自動化工具只能起到一定的輔助作用。 一種測試工具不完全適用于所有測試 自動測試不一定減輕工作量 測試工具不一定易于使用 自動化測試的普遍應(yīng)用存在局限 測試覆蓋率不會達(dá)到百分之百,測試自動化限制,測試自動化可以帶來非常明顯的收益,但也有以下限制: 不能取代手工測試 手工測試比自動測試發(fā)現(xiàn)的缺陷更多 對測試質(zhì)量的依賴性極大 測試自動化可能會制約軟件開發(fā)。 工具本身并無想象力 另外,人工測試比測試工具更優(yōu)越的另一個方面是可以處理意外事件。雖然工具也能處理部分異常事件,但是對真正的突發(fā)事件和不能由軟件解決的問題就無能為力。,6.4 軟件自動化測試工具簡述,6.4.1 自動化測試工具的特征 6.4.2 自動化測試工具的分類 6.4.3 選擇自動化測試工具 6.4.4 常用測試工具概要,Return,6.4.1 自動化測試工具的特征,支持腳本化語言(Scripting Language) 對程序界面中對象的識別能力 支持函數(shù)的可重用 支持外部函數(shù)庫 抽象層將程序界面中的對象實(shí)體映射成邏輯對象 分布式測試(Distributed Test)的支持 支持?jǐn)?shù)據(jù)驅(qū)動測試(Data-Driven Test) 錯誤處理 調(diào)試器(Debugger) 源代碼管理 支持腳本的命令行(Command Line)方式,6.4.2 自動化測試工具的分類,測試工具可以從兩個不同的方面去分類。 根據(jù)測試方法不同,自動化測試工具可以分為: 白盒測試工具、黑盒測試工具 根據(jù)測試的對象和目的,自動化測試工具可以分為: 單元測試工具、功能測試工具、負(fù)載測試工具、性能測試工具、Web測試工具、數(shù)據(jù)庫測試工具、回歸測試工具、嵌入式測試工具、頁面鏈接測試工具、測試設(shè)計與開發(fā)工具、測試執(zhí)行和評估工具、測試管理工具等,白盒測試工具,白盒測試工具一般是針對被測源程序進(jìn)行的測試,測試所發(fā)現(xiàn)的故障可以定位到代碼級。根據(jù)測試工具工作原理的不同,白盒測試的自動化工具可分為靜態(tài)測試工具和動態(tài)測試工具。 靜態(tài)測試工具是在不執(zhí)行程序的情況下,分析軟件的特性。靜態(tài)分析主要集中在需求文檔、設(shè)計文檔以及程序結(jié)構(gòu)方面。按照完成的職能不同,靜態(tài)測試工具包括以下幾種類型: (1)代碼審查 (2)一致性檢查 (3)錯誤檢查 (4)接口分析 (5)輸入輸出規(guī)格說明分析檢查 (6)數(shù)據(jù)流分析 (7)類型分析 (8)單元分析 (9)復(fù)雜度分析 靜態(tài)測試工具的代表有Telelogic公司的Logiscope軟件、PR公司的PRQA軟件,白盒測試工具(續(xù)),動態(tài)測試工具是直接執(zhí)行被測程序以提供測試活動。它需要實(shí)際運(yùn)行被測系統(tǒng),并設(shè)置斷點(diǎn),向代碼生成的可執(zhí)行文件中插入一些監(jiān)測代碼,掌握斷點(diǎn)這一時刻程序運(yùn)行數(shù)據(jù)(對象屬性、變量的值等),具有功能確認(rèn)、接口測試、覆蓋率分析、性能分析等性能。動態(tài)測試工具可以分為以下幾種類型: (1)功能確認(rèn)與接口測試 (2)覆蓋測試 (3)性能測試 (4)內(nèi)存分析 常用的動態(tài)工具有: Compuware公司的DevPartner IBM公司的 Rational Purify,黑盒測試工具,黑盒測試工具是在明確軟件產(chǎn)品應(yīng)具有的功能的條件下,完全不考慮被測程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特性,通過測試來檢驗(yàn)軟件功能是否按照軟件需求規(guī)格的說明正常工作。 按照完成的職能不同,黑盒測試工具可以分為: 功能測試工具用于檢測程序能否達(dá)到預(yù)期的功能要求并正常運(yùn)行。 性能測試工具用于確定軟件和系統(tǒng)的性能。 常用的黑盒測試工具有: Compuware公司的QACenter IBM公司的Rational TeamTest,網(wǎng)絡(luò)測試工具,這類工具主要包括網(wǎng)絡(luò)故障定位工具、網(wǎng)絡(luò)性能檢測工具、網(wǎng)絡(luò)仿真模擬工具等。他們分析分布式應(yīng)用性能,關(guān)注應(yīng)用、網(wǎng)絡(luò)和其他元素內(nèi)部的交互式活動,以便使網(wǎng)絡(luò)管理員能夠了解不同位置和不同活動之間應(yīng)用的行為。 Network Associates提供的Network Sniffer,是常用的網(wǎng)絡(luò)打包監(jiān)視軟件,能夠截取網(wǎng)絡(luò)打包并查看所傳遞的資料內(nèi)容,對C/S形式軟件測試的幫助很大,并可以幫助軟件找到不少軟件缺陷。,測試設(shè)計與開發(fā)工具,測試設(shè)計是說明被測軟件特征或特征組合的方法,并確定選擇相關(guān)測試用例的過程。測試開發(fā)是將測試設(shè)計轉(zhuǎn)換成具體的測試用例的過程。 測試設(shè)計和開發(fā)需要的工具類型有: 測試數(shù)據(jù)生成器(Parasoft C+ Test) 基于需求的測試設(shè)計工具 捕獲/回放 覆蓋分析,測試執(zhí)行和評估工具,測試執(zhí)行和評估是執(zhí)行測試用例并對測試結(jié)果進(jìn)行評估的過程,包括選擇用于執(zhí)行的測試用例、設(shè)置測試環(huán)境、運(yùn)行所選擇的測試用例、記錄測試執(zhí)行過程、分析潛在的故障,并檢查測試工作的有效性。 評估類工具對執(zhí)行測試用例和評估測試結(jié)果過程起到輔助作用。 測試執(zhí)行和評估類工具有: 捕獲/回放 覆蓋分析 存儲器測試,測試管理工具,測試管理工具用于對測試過程進(jìn)行管理,幫助完成制定測試計劃,跟蹤測試運(yùn)行結(jié)果。通常,測試管理工具對測試計劃、測試用例、測試實(shí)施進(jìn)行管理,還包括缺陷跟蹤管理等。 常用的測試管理工具有: IBM公司的Rational Test Manager 測試管理工具包括以下內(nèi)容: 測試用例管理 缺陷跟蹤管理(問題跟蹤管理) 配置管理,6.4.3 選擇自動化測試工具,測試人員在選擇和使用自動化測試工具時,可以從以下角度來考慮: 按照用途選擇匹配的測試工具 在適當(dāng)?shù)纳芷谶x擇測試工具 按照測試人員
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年瑜伽館教練技能提升與考核合同3篇
- 2025年人教版高一數(shù)學(xué)上冊月考試卷
- 2025年人教A版八年級物理下冊月考試卷含答案
- 2024電影拍攝場地租賃合同
- 2024攜手共創(chuàng)立項(xiàng)協(xié)議:合作伙伴版版B版
- 2025年度高校畢業(yè)生實(shí)習(xí)生勞動合同規(guī)范文本3篇
- 2025年度集裝箱板房租賃合同樣本6篇
- 2025年山東省淄博高青縣事業(yè)單位綜合類崗位招聘98人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年外研版2024七年級科學(xué)下冊階段測試試卷含答案
- 2025年北師大新版選修2地理上冊月考試卷含答案
- 房屋租賃管理?xiàng)l例2024年
- 《文獻(xiàn)檢索與論文寫作》教學(xué)大綱思政版
- 《成人有創(chuàng)機(jī)械通氣氣道內(nèi)吸引技術(shù)操作》標(biāo)準(zhǔn)解讀
- 檔案館查資料委托書
- 高中數(shù)學(xué)人教A版必修第一冊 全冊 思維導(dǎo)圖
- 【基于自由現(xiàn)金流貼現(xiàn)法的企業(yè)估值的案例探析3300字(論文)】
- 江門市廣雅中學(xué)2023-2024學(xué)年七年級下學(xué)期月考數(shù)學(xué)試題 (B卷)
- 鑄件工藝性分析報告
- 船舶維修搶修方案
- 九年級初三中考物理綜合復(fù)習(xí)測試卷3套(含答案)
- (正式版)JTT 1218.5-2024 城市軌道交通運(yùn)營設(shè)備維修與更新技術(shù)規(guī)范 第5部分:通信
評論
0/150
提交評論