




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
自動(dòng)化功能測試及用例設(shè)計(jì)袁玉宇yuanyuyu@263.net
yuyu_yuan4@自動(dòng)化功能測試及用例設(shè)計(jì)袁玉宇1本部分課程目標(biāo)測試與自動(dòng)化測試WinRunner介紹測試用例設(shè)計(jì)本部分課程目標(biāo)測試與自動(dòng)化測試2自動(dòng)化
自動(dòng)化是對策略、經(jīng)驗(yàn)、工具及工件的使用,它減少了對手工或人的干預(yù)或非技能方面的介入,及重復(fù)或冗長工作需要。自動(dòng)化3測試自動(dòng)化自動(dòng)化測試直接依賴于整個(gè)軟件流程的可自動(dòng)化成熟度。包括:測試流程、持續(xù)編譯、持續(xù)集成、測試系統(tǒng)發(fā)布、測試執(zhí)行、測試管理、缺陷測試跟蹤等多個(gè)方面的自動(dòng)化實(shí)現(xiàn)和整合。測試自動(dòng)化自動(dòng)化測試直接依賴于整個(gè)軟件流程的可自動(dòng)化成熟度。4測試和自動(dòng)化的區(qū)別測試和自動(dòng)化的區(qū)別5自動(dòng)化測試的誤區(qū)期望自動(dòng)化測試能夠完全取代手動(dòng)測試期望自動(dòng)化測試發(fā)現(xiàn)大量的新缺陷期望自動(dòng)化測試能夠智能的完成絕大多數(shù)工作期望自動(dòng)化測試是一勞永逸的自動(dòng)化測試的誤區(qū)期望自動(dòng)化測試能夠完全取代手動(dòng)測試6自動(dòng)化測試的目的縮短測試周期,加快測試進(jìn)度,從而加快產(chǎn)品發(fā)布進(jìn)度實(shí)現(xiàn)更大規(guī)模、更大頻率的測試減少手工測試的人力資源投入,降低測試成本提高測試覆蓋率保證回歸測試的可控性和一致性自動(dòng)化測試的目的縮短測試周期,加快測試進(jìn)度,從而加快產(chǎn)品發(fā)布7自動(dòng)化測試的目的提高測試用例執(zhí)行的可靠性在不降低質(zhì)量的情況下由低技能的人員完成定義清晰的測試過程,降低和避免測試人員的個(gè)體對整體測試的影響提高測試人員的工作效率,并使更高技能的人員有時(shí)間和資源,對產(chǎn)品進(jìn)入更深層次的測試。輔助測試人員完成手工無法完成的測試工作。自動(dòng)化測試的目的提高測試用例執(zhí)行的可靠性8測試用例的質(zhì)量指標(biāo)檢測軟件缺陷的有效性測試用例的可仿效性測試用例執(zhí)行、分析和調(diào)試的經(jīng)濟(jì)性測試用例的可修改行測試用例的質(zhì)量指標(biāo)檢測軟件缺陷的有效性9Keviat圖Keviat圖10適合做自動(dòng)化測試情況產(chǎn)品型項(xiàng)目大型增量式開發(fā)、持續(xù)集成項(xiàng)目能夠自動(dòng)編譯、自動(dòng)發(fā)布的系統(tǒng)需要多次重復(fù)機(jī)械性動(dòng)作的測試
適合做自動(dòng)化測試情況產(chǎn)品型項(xiàng)目11適合做自動(dòng)化測試情況簡單而煩瑣的基于命令行交互方式的測試完成一些手工難以完成的測試目標(biāo)涉及大量第三方軟件或設(shè)備的測試適合做自動(dòng)化測試情況簡單而煩瑣的基于命令行交互方式的測試12不適合做自動(dòng)化測試情況按需定制型項(xiàng)目(通常為一次性的短期項(xiàng)目)項(xiàng)目周期很短的項(xiàng)目業(yè)務(wù)規(guī)則復(fù)雜的項(xiàng)目不適合做自動(dòng)化測試情況按需定制型項(xiàng)目(通常為一次性的短期項(xiàng)目13不適合做自動(dòng)化測試情況依賴于人類的習(xí)慣、感官或智力的測試內(nèi)容不需要頻繁測試的軟件軟件不穩(wěn)定不適合做自動(dòng)化測試情況依賴于人類的習(xí)慣、感官或智力的測試內(nèi)容14被測軟件產(chǎn)品提供API的軟件基于命令行的接口基于GUI基于終端接口被測軟件產(chǎn)品提供API的軟件15自動(dòng)化測試的最佳實(shí)踐自動(dòng)化測試的代碼效率不是越高越好自動(dòng)化測試的執(zhí)行過程和記錄應(yīng)便于分析自動(dòng)化測試的設(shè)計(jì)和腳本可讀性越好越好自動(dòng)化測試的最佳實(shí)踐自動(dòng)化測試的代碼效率不是越高越好16自動(dòng)化測試的最佳實(shí)踐自動(dòng)化測試的腳本可維護(hù)性是重中之重完整性是自動(dòng)化測試成功的前提自動(dòng)化測試腳本之間是松耦合或彼此獨(dú)立的自動(dòng)化測試的最佳實(shí)踐自動(dòng)化測試的腳本可維護(hù)性是重中之重17自動(dòng)化技術(shù)模擬/虛擬技術(shù)對象管理技術(shù)腳本技術(shù)比較技術(shù)自動(dòng)化技術(shù)模擬/虛擬技術(shù)18自動(dòng)化技術(shù)執(zhí)行技術(shù)錄制、回放技術(shù)同步技術(shù)健壯性技術(shù)自動(dòng)化技術(shù)執(zhí)行技術(shù)19自動(dòng)化測試的腳本技術(shù)線性腳本結(jié)構(gòu)化腳本共享腳本數(shù)據(jù)驅(qū)動(dòng)腳本關(guān)鍵字驅(qū)動(dòng)腳本自動(dòng)化測試的腳本技術(shù)線性腳本20線性腳本線性腳本是錄制手工執(zhí)行的測試事例得到的腳本。如果用戶只使用線性腳本技術(shù),即錄制每個(gè)測試事例的全部內(nèi)容,則每個(gè)測試事例可以通過腳本完整地被回放。幾乎任何重復(fù)的操作都可以使用線性腳本技術(shù)自動(dòng)化。線性腳本線性腳本是錄制手工執(zhí)行的測試事例得到的腳本。21線性腳本的優(yōu)點(diǎn)簡單,只需坐在計(jì)算機(jī)前錄制手工任務(wù)??梢钥焖匍_始自動(dòng)化。對實(shí)際執(zhí)行操作可以審計(jì)跟蹤。用戶不必是編程人員(如果不修改)線性腳本的優(yōu)點(diǎn)簡單,只需坐在計(jì)算機(jī)前錄制手工任務(wù)。22線性腳本的缺點(diǎn)無共享或重用腳本。容易受軟件變化的影響。修改代價(jià)大。如果回放腳本時(shí)發(fā)生了錄制腳本時(shí)沒有發(fā)生的事情,引起整個(gè)測試失敗。線性腳本的缺點(diǎn)無共享或重用腳本。23結(jié)構(gòu)化腳本結(jié)構(gòu)化腳本類似于結(jié)構(gòu)化程序設(shè)計(jì),結(jié)構(gòu)化腳本中含有控制腳本執(zhí)行的指令??刂颇_本執(zhí)行的指令:順序,選擇和疊代。結(jié)構(gòu)化腳本結(jié)構(gòu)化腳本類似于結(jié)構(gòu)化程序設(shè)計(jì),結(jié)構(gòu)化腳本中含有控24結(jié)構(gòu)化腳本例子PartoftheScribbletestscriptSelectOption’File/Close’FocusoOn’Close’LeftMouseClick’Yes’FocusOn’SaveAs’Typecountries2LeftMouseClick’Save’IfMessage=‘Replaceexistingfile?’LeftMouseClick’yes’EndifFocusOn‘Scribble’SelectOption’File/Exti’結(jié)構(gòu)化腳本例子PartoftheScribblete25結(jié)構(gòu)化腳本的優(yōu)缺點(diǎn)健壯性好,對一些容易導(dǎo)致測試失敗的特殊情況進(jìn)行處理??梢詧?zhí)行許多其他類似的功能,如重復(fù)的指令可以使用循環(huán)結(jié)構(gòu)。可以作為模塊被其他腳本調(diào)用。腳本變得更加復(fù)雜,而且測試數(shù)據(jù)仍然’捆綁’在腳本中。結(jié)構(gòu)化腳本的優(yōu)缺點(diǎn)健壯性好,對一些容易導(dǎo)致測試失敗的特殊情況26共享腳本腳本可以被多個(gè)測試事例使用。這意味著腳本語言允許一個(gè)腳本被另一個(gè)腳本調(diào)用,而這多少已成為所有測試執(zhí)行自動(dòng)化工具的標(biāo)準(zhǔn)。這種技術(shù)思路是產(chǎn)生一個(gè)執(zhí)行某種任務(wù)的腳本,而不同的測試要重復(fù)這個(gè)任務(wù),當(dāng)要執(zhí)行這個(gè)任務(wù)時(shí)只需要在每個(gè)測試事例的適當(dāng)?shù)胤秸{(diào)用這個(gè)腳本。共享腳本腳本可以被多個(gè)測試事例使用。這意味著腳本語言允許一個(gè)27共享腳本例子ScribbleOpen(FILENAME)
LeftMouseClick’Scribble’FocusOn’Scribble’SelectOption’File/Open’FocusOn’Open’Type’countries’LeftMouseClick’Open’共享腳本例子ScribbleOpen(FILENAME)L28共享腳本例子ScribbleSaveAs(FILENAME)FocusOn’Scribble’SelectOption’File/Close’FocusOn’Close’LeftMouseClick’Yes’FocusOn’SaveAs’TypeFILENAMELeftMouseClick’Save’FocusOn’Scribble’SelectOption’File/Exit’共享腳本例子ScribbleSaveAs(FILENAME)29共享腳本例子CallScribbleOpen(‘countries’)FocusOn’Scribble’SelectOption’List/AddItem’FocusOn’AddItem’Type’France’LeftMouseClick’OK’FocusOn’Scribble’SelectOption’List/AddItem’FocusOn’AddItem’Type’Germany’LeftMouseClick’OK’FocusOn’Scribble’CallScribbleSaveAS(‘TEST2’)共享腳本例子CallScribbleOpen(‘count30共享腳本的優(yōu)點(diǎn)以較少的開銷實(shí)現(xiàn)類似的測試。維護(hù)開銷低于線性腳本。刪除明顯的重復(fù)??梢栽诠蚕砟_本中增加更智能的功能。共享腳本的優(yōu)點(diǎn)以較少的開銷實(shí)現(xiàn)類似的測試。31共享腳本的缺點(diǎn)需要跟蹤更多的腳本,文檔、名字、以及存儲,很難找到適當(dāng)?shù)哪_本。對于每個(gè)測試仍需要一個(gè)特定的測試腳本。因此維護(hù)成本比較高。共享腳本通常是針對被測軟件的某個(gè)部分。共享腳本的缺點(diǎn)需要跟蹤更多的腳本,文檔、名字、以及存儲,很難32數(shù)據(jù)驅(qū)動(dòng)腳本數(shù)據(jù)驅(qū)動(dòng)腳本技術(shù)將測試輸入存儲在獨(dú)立的數(shù)據(jù)文件中,而不是存儲在腳本中。腳本中存放控制信息(如菜單導(dǎo)航)。執(zhí)行測試時(shí),從文件中而不是直接從腳本中讀取測試輸入。這種方法的最大好處是同一個(gè)腳本可以運(yùn)行不同的測試。數(shù)據(jù)驅(qū)動(dòng)腳本數(shù)據(jù)驅(qū)動(dòng)腳本技術(shù)將測試輸入存儲在獨(dú)立的數(shù)據(jù)文件中33數(shù)據(jù)驅(qū)動(dòng)腳本例子Controlscript:ScribbleControlOpenFile’ScribbleData’ForeachrecordinScribbleDataReadINPUTFILEReadNAME1ReadNAME2ReadOUTPUTFILE數(shù)據(jù)驅(qū)動(dòng)腳本例子Controlscript:Scr34數(shù)據(jù)驅(qū)動(dòng)腳本例子CallScribbleOpen(INPUTFILE)FocusOn’Scribble’SelectOption’List/AddItem’FocusOn’AddItem’TypeNAME1LeftMouseClick’OK’FocusOn’Scribble’SelectOption’List/AddItem’FocusOn’AddItem’TypeNAME2LeftMouseClick’OK’FocusOn’Scribble’CallScribbleSaveAS(OUTPUTFILE)EndFor數(shù)據(jù)驅(qū)動(dòng)腳本例子CallScribbleOpen(INPU35數(shù)據(jù)驅(qū)動(dòng)腳本例子Datafile:ScribbleDataCountries,Sweden,USA,test1Countries,France,Germany,test2Countries,Austria,Italy,test3Countries,Spain,Finland,test4數(shù)據(jù)驅(qū)動(dòng)腳本例子Datafile:ScribbleDat36數(shù)據(jù)驅(qū)動(dòng)腳本優(yōu)點(diǎn)可以很快增加類似的測試。測試者增加新測試不必具有工具腳本語言的技術(shù)或編程知識。對第二個(gè)測試及后續(xù)測試無額外的腳本維護(hù)開銷。數(shù)據(jù)驅(qū)動(dòng)腳本優(yōu)點(diǎn)可以很快增加類似的測試。37數(shù)據(jù)驅(qū)動(dòng)腳本缺點(diǎn)初始建立的開銷較大;需要專業(yè)編程支持;必須易于管理。數(shù)據(jù)驅(qū)動(dòng)腳本缺點(diǎn)初始建立的開銷較大;38關(guān)鍵字驅(qū)動(dòng)腳本就是較復(fù)雜的數(shù)據(jù)驅(qū)動(dòng)技術(shù)的邏輯擴(kuò)展。分為三層結(jié)構(gòu):一是控制腳本;二關(guān)鍵字動(dòng)作描述;三是數(shù)據(jù)或測試用例。關(guān)鍵字驅(qū)動(dòng)腳本就是較復(fù)雜的數(shù)據(jù)驅(qū)動(dòng)技術(shù)的邏輯擴(kuò)展。39WinRunner定義WinRunner是一個(gè)自動(dòng)化企業(yè)功能測試工具,能夠用來測試應(yīng)用程序是否按照預(yù)料的結(jié)果進(jìn)行運(yùn)行。通過錄制腳本,校驗(yàn)和自動(dòng)的對用戶的交互進(jìn)行回放,WinRunner能夠確定出應(yīng)用中的缺陷,并且保證跨越多個(gè)應(yīng)用和數(shù)據(jù)庫的業(yè)務(wù)過程,能夠在初次和以后的時(shí)間里面穩(wěn)定的無縫的運(yùn)行。WinRunner定義WinRunner是一個(gè)自動(dòng)化企業(yè)功能40手工測試和自動(dòng)化測試的區(qū)別
執(zhí)行用戶操作等待處理完成檢查應(yīng)用是否具有預(yù)期功能重復(fù)以上操作直到所有應(yīng)用得到驗(yàn)證1234生成自動(dòng)測試腳本加入同步點(diǎn)加入檢查點(diǎn)運(yùn)行一個(gè)腳本或一組腳本1234手工測試和自動(dòng)化測試的區(qū)別執(zhí)行用戶等待處理檢查應(yīng)用是否重復(fù)41客戶的目的保證企業(yè)應(yīng)用程序能夠按照預(yù)期設(shè)想如期運(yùn)行并且能夠如期部署能夠讓測試人員適應(yīng)迅速變化的環(huán)境能夠讓QA人員保持有效的重復(fù)測試的任務(wù)減少測試的時(shí)間客戶的目的保證企業(yè)應(yīng)用程序能夠按照預(yù)期設(shè)想如期運(yùn)行并且能夠如42能夠減少測試時(shí)間自動(dòng)處理不可預(yù)知的應(yīng)用程序的意外情況提供在各種條件(不同的測試數(shù)據(jù))下測試業(yè)務(wù)過程創(chuàng)建可以重復(fù)利用的和可以維護(hù)的腳本通過設(shè)定運(yùn)行條件,使復(fù)雜的測試過程變的簡單能夠減少測試時(shí)間自動(dòng)處理不可預(yù)知的應(yīng)用程序的意外情況43WinRunner標(biāo)準(zhǔn)版WinRunner配置Web、VisualBasic、PowerBuilder、ActiveX等四種Add-insDelphi、Java、Baan、Wap等附加的Add-ins利用一個(gè)測試工具WinRunner能夠測試大部分的企業(yè)應(yīng)用利用檢查點(diǎn)很容易對數(shù)據(jù)進(jìn)行檢查市場上最為強(qiáng)大的功能測試工具WinRunner標(biāo)準(zhǔn)版WinRunner配置Web、Vis44WinRunner支持最為廣泛的企業(yè)環(huán)境
Legacy3270Emulators5250EmulatorsVT100EmulatorsCustomC/S
VB4,5,6PB4,5,6,6.5OracleDev2000Forte3.0.l.3Delphi2,3,4ERP/CRM
BaanIVc,VSAPR/33,4OracleApps10,10.7,11Peoplesoft6,7,7.5SiebelE-BizIE4.x,IE5.xNS4.0&higherDHTMLXMLAWTfromJDK1.1.7JFCJDKSymantecVisualCaféActiveXOracleJinitiatorOracleNCAAnimatedImagesWinRunner支持最為廣泛的企業(yè)環(huán)境LegacyCus45WinRunner自動(dòng)化測試過程
1.設(shè)置初始化條件2.記錄用戶的操作3.設(shè)置結(jié)束條件4.運(yùn)行測試腳本生成自動(dòng)測試腳本生成自動(dòng)測試腳本1加入檢查點(diǎn)執(zhí)行測試3加入同步點(diǎn)24WinRunner自動(dòng)化測試過程1.設(shè)置初始化條件生成自46記錄并且生成腳本
#AutomobilePurchaseFormset_window("AutomobilePurchaseForm",10);edit_set("CustomerName","ThomasPaine");edit_set("Address","234WillowDrive");DepartDate:___/___/___FromCity..:________________ToCity.....:________________Flight......:_______OrderNumber....:__________Customer........:___________________BillingDate......:edit_set("Date","12/12/03");list_select_item("Make","BMW");button_press("InsertSale");ThomasPaine234WillowDrive12/12/03BMW19732002tiiedit_set("Model","2002tii");edit_set("Year","1973");記錄并且生成腳本#AutomobilePurcha47回放腳本
DepartDate:___/___/___FromCity..:________________ToCity.....:________________Flight......:_______OrderNumber....:__________Customer........:___________________BillingDate......:ThomasPaine234WillowDrive12/12/03BMW19732002tiiPurchaseCompleted...#AutomobilePurchaseFormset_window("AutomobilePurchaseForm",10);edit_set("CustomerName","ThomasPaine");edit_set("Address","234WillowDrive");edit_set("Date","12/12/03");list_select_item("Make","BMW");button_press("InsertSale");edit_set(”Model",”2002tii");edit_set(”Year",”1973");回放腳本DepartDate:___/___/___48WinRunner自動(dòng)化測試過程
生成自動(dòng)測試腳本1加入檢查點(diǎn)執(zhí)行測試3加入同步點(diǎn)24加入同步點(diǎn)1.
與被測應(yīng)用保持同步2.
加入同步點(diǎn)WinRunner自動(dòng)化測試過程生成自動(dòng)測試腳本1加入檢查49什么是同步點(diǎn)
Definition:腳本中的一行程序,目的是等待用戶應(yīng)用的一個(gè)確定的響應(yīng),之后繼續(xù)腳本的運(yùn)行。什么是同步點(diǎn)Definition:50Client/Server處理單個(gè)用戶請求
Server響應(yīng)時(shí)間DatabaseServerClient/Server處理單個(gè)用戶請求Server響應(yīng)51Client/Server處理幾個(gè)用戶請求
Server響應(yīng)時(shí)間DatabaseServerClient/Server處理幾個(gè)用戶請求Server響應(yīng)52Client/Server處理多個(gè)用戶請求
Server響應(yīng)時(shí)間DatabaseServerClient/Server處理多個(gè)用戶請求Server響應(yīng)53Client/Server處理響應(yīng)時(shí)間示例
幾個(gè)用戶0.61多個(gè)用戶1.00單個(gè)用戶0.33響應(yīng)時(shí)間Client/Server處理響應(yīng)時(shí)間示例幾個(gè)用戶0.6154為什么加入同步點(diǎn)
不加同步點(diǎn)加同步點(diǎn)發(fā)送數(shù)據(jù)到數(shù)據(jù)庫服務(wù)器輸入數(shù)據(jù)到被測軟件接受輸入數(shù)據(jù)RunscriptScriptAUT發(fā)送數(shù)據(jù)到數(shù)據(jù)庫服務(wù)器試圖執(zhí)行下一步繼續(xù)執(zhí)行客戶端確認(rèn)傳送完成輸入數(shù)據(jù)到被測軟件接受輸入數(shù)據(jù)ScriptAUTRunscript等待服務(wù)器處理數(shù)據(jù)服務(wù)器返回結(jié)果Synchronizationpoint等待服務(wù)器響應(yīng),不能繼續(xù)腳本錯(cuò)誤中止為什么加入同步點(diǎn)不加同步點(diǎn)加同步點(diǎn)發(fā)送數(shù)據(jù)到數(shù)據(jù)庫服務(wù)器輸55確定同步類型
等待一個(gè)窗口出現(xiàn)窗口沒有可視的提示,只是等待一段時(shí)間延時(shí)等待一個(gè)圖片的刷新位圖等待一個(gè)對象的狀態(tài)對象狀態(tài)確定同步類型等待一個(gè)窗口出現(xiàn)窗口沒有可視的提示,只是等待一56WinRunner自動(dòng)化測試過程
1.檢查點(diǎn)介紹2.GUI檢查點(diǎn)3.位圖檢查點(diǎn)4.數(shù)據(jù)庫檢查點(diǎn)生成自動(dòng)測試腳本1加入檢查點(diǎn)執(zhí)行測試3加入同步點(diǎn)24加入檢查點(diǎn)WinRunner自動(dòng)化測試過程1.檢查點(diǎn)介紹生成自動(dòng)測57什么是檢查點(diǎn)
Definition:WinRunner腳本中的語句,可以比較預(yù)期結(jié)果和實(shí)際結(jié)果并且報(bào)告比較結(jié)果。什么是檢查點(diǎn)Definition:WinRunner腳本中58WinRunner中的檢查點(diǎn)GUI對象檢查數(shù)據(jù)庫檢查圖片檢查文本檢查WinRunner中的檢查點(diǎn)GUI對象檢查59WinRunner檢查點(diǎn)的創(chuàng)建和執(zhí)行
WinRunner比較實(shí)際的結(jié)果和期待的結(jié)果3WinRunner在回放腳本時(shí)捕獲到一個(gè)真正的結(jié)果21WinRunner在錄制的腳本里面儲存了一個(gè)期待的結(jié)果WinRunner報(bào)告結(jié)果里面包含比較的結(jié)果是PASS還是FAIL4WinRunner檢查點(diǎn)的創(chuàng)建和執(zhí)行WinRunner比較60GUI對象檢查點(diǎn)
窗口的大小是否是正確的大???OK按鈕是否是enabled狀態(tài)?文本框的信息是什么?檢查GUI對象的狀態(tài)或?qū)傩訥UI對象檢查點(diǎn)窗口的大小是否是正確的大???檢查GUI對象61數(shù)據(jù)庫檢查點(diǎn)
檢查數(shù)據(jù)庫的內(nèi)容和大小即時(shí)的驗(yàn)證與數(shù)據(jù)庫相連的交易數(shù)據(jù)庫檢查點(diǎn)檢查數(shù)據(jù)庫的內(nèi)容和大小62圖片檢查點(diǎn)
通過捕捉圖象來檢查軟件的非GUI對象區(qū)域
捕捉窗口,對象或屏幕的一個(gè)區(qū)域的圖象圖片檢查點(diǎn)通過捕捉圖象來檢查軟件的非GUI對象區(qū)域63文本檢查點(diǎn)
讀取和檢查圖片區(qū)域或者非GUI方式的用戶界面的文本信息(比如ASCII)文本檢查點(diǎn)讀取和檢查圖片區(qū)域或者非GUI方式的用戶界面的文64WinRunner預(yù)期與實(shí)際比較
檢查通過檢查未通過不匹配的內(nèi)容WinRunner預(yù)期與實(shí)際比較檢查通過檢查未通過不匹配的65WinRunner自動(dòng)化測試過程
1.準(zhǔn)備數(shù)據(jù)驅(qū)動(dòng)的數(shù)據(jù)2.運(yùn)行測試并查看結(jié)果執(zhí)行測試生成自動(dòng)測試腳本1加入檢查點(diǎn)執(zhí)行測試3加入同步點(diǎn)24WinRunner自動(dòng)化測試過程1.準(zhǔn)備數(shù)據(jù)驅(qū)動(dòng)的數(shù)據(jù)66數(shù)據(jù)驅(qū)動(dòng)測試invoke_application(“flight1a.exe","","C:\\",SW_SHOW);set_window("Login",10);edit_set("userid",“Josephine”);edit_set("password","Mercury");button_press("OK");set_window("FlightReservation",10);win_check_gui("FlightReservation","list1.ckl","gui1",1);menu_select_item("File;Exit");測試腳本“Josephine”Highlightthehardcodedvalue數(shù)據(jù)驅(qū)動(dòng)測試invoke_application(“flig67數(shù)據(jù)驅(qū)動(dòng)測試invoke_application(“flight1a.exe","","C:\\",SW_SHOW);set_window("Login",10);edit_set("userid",“Josephine”);edit_set("password","Mercury");button_press("OK");set_window("FlightReservation",10);win_check_gui("FlightReservation","list1.ckl","gui1",1);menu_select_item("File;Exit");測試腳本“Josephine”HighlightthehardcodedvalueAssignthevalueaparametername數(shù)據(jù)驅(qū)動(dòng)測試invoke_application(“flig68數(shù)據(jù)驅(qū)動(dòng)測試invoke_application(“flight1a.exe","","C:\\",SW_SHOW);set_window("Login",10);edit_set("userid",ddt_val(table,“UserName"));edit_set("password","Mercury");button_press("OK");set_window("FlightReservation",10);win_check_gui("FlightReservation","list1.ckl","gui1",1);menu_select_item("File;Exit");測試腳本HighlightthehardcodedvalueAssignthevalueaparameternameAfunctionisinsertedwhichretrievesthevaluefromthedatatable數(shù)據(jù)驅(qū)動(dòng)測試invoke_application(“flig69數(shù)據(jù)驅(qū)動(dòng)測試RepeatforallothervaluesHighlightthehardcodedvalueAssignthevalueaparameternameAfunctionisinsertedwhichretrievesthevaluefromthedatatableinvoke_application(“flight1a.exe","","C:\\",SW_SHOW);set_window("Login",10);edit_set("userid",ddt_val(table,“UserName"));edit_set("password",ddt_val(table“Password”));button_press("OK");set_window("FlightReservation",10);win_check_gui("FlightReservation","list1.ckl","gui1",1);menu_select_item("File;Exit");測試腳本數(shù)據(jù)驅(qū)動(dòng)測試Repeatforallotherval70數(shù)據(jù)驅(qū)動(dòng)測試
table=getvar(testname)&”\\default.xls”;ddt_open
(table);do{invoke_application(“flight1a.exe","","C:\\",SW_SHOW);set_window("Login",10);edit_set("userid",ddt_val(table,“UserID");edit_set("password",ddt_val(table“Password”);button_press("OK");set_window("FlightReservation",10);win_check_gui("FlightReservation","list1.ckl","gui1",1);menu_select_item("File;Exit"); }while
(ddt_next_row(table)==E_OK);ddt_close(table);測試腳本數(shù)據(jù)驅(qū)動(dòng)測試table=getvar(testnam71自動(dòng)化測試過程
自動(dòng)記錄業(yè)務(wù)操作生成測試腳本優(yōu)化測試腳本生成可反復(fù)執(zhí)行的測試程序修改應(yīng)用之后再進(jìn)行測試執(zhí)行數(shù)據(jù)驅(qū)動(dòng)的測試報(bào)告測試結(jié)果自動(dòng)化測試腳本的革新回歸測試自動(dòng)化測試過程自動(dòng)記錄業(yè)務(wù)優(yōu)化測試腳本修改應(yīng)用之后執(zhí)行數(shù)據(jù)72WinRunner的特點(diǎn)
GUIMap數(shù)據(jù)驅(qū)動(dòng)測試數(shù)據(jù)庫檢查點(diǎn)虛擬對象生成器外部函數(shù)接口函數(shù)管理器記錄模式測試分級腳本調(diào)試工具同步點(diǎn)與其他工具集成支持多種應(yīng)用WinRunner的特點(diǎn)GUIMap記錄模式73WinRunner如何建立腳本GUIMapJohnset_window(”Login",10);edit_set("Name",”John");錄制過程WinRunner如何建立腳本GUIMapJohnset_w74WinRunner如何回放腳本GUIMapJohnset_window(”Login",10);edit_set("Name",”John");回放過程WinRunner如何回放腳本GUIMapJohnset_w75set_window("SaveAs",1);button_press("OK");測試腳本W(wǎng)inRunner錄制演示應(yīng)用程序GUIMap
Logical
Physical{class:window,MSW_id:3277label:"SaveAs"}{class:push_button,label:"OK"}"SaveAs"
"OK"set_window("SaveAs",1);測試腳本76set_window("SaveAs",1);button_press("OK");測試腳本W(wǎng)inRunner回放演示
SaveAs應(yīng)用程序GUIMap
Logical
Physical{class:window,MSW_id:3277label:"SaveAs"}{class:push_button,label:"OK"}"SaveAs"
"OK"set_window("SaveAs",1);測試腳本77set_window("AutomobilePurchaseForm",10);edit_set("Address","234WillowDrive");edit_set("CustomerName","ThomasPaine");Options Class:Window Label:WindowDealerName Class:Edit label:DealerNameAddress Class:Window Label:AddressLogin Class:Window Label:LoginAutomobilePurchaseForm Class:Window Label:APFCustomerName Class:Edit label:CustomerNameMake Class:Window Label:Make邏輯名稱與物理名稱的映射邏輯名稱物理描述測試腳本GUIMAP應(yīng)用程序set_window("AutomobilePurchas78窗口(邏輯名稱)對象(邏輯名稱)上面被選擇的窗口或者對象的物理描述GUIMapEditor樹狀結(jié)構(gòu)顯示GUIMap文件中所包含的窗口和對象第一層是應(yīng)用程序中的所有窗口第二層是窗口中所有的對象窗口對象上面被選擇的窗口或者對象的物理描述GUIMapE79WinRunner的優(yōu)勢提高效率節(jié)約資源提高應(yīng)用的質(zhì)量減少人為錯(cuò)誤易于管理和操作故障分析及跟蹤可重用性WinRunner的優(yōu)勢提高效率80測試用例設(shè)計(jì)邊界值分析法等價(jià)類法決策表法因果圖法正交法測試用例設(shè)計(jì)邊界值分析法81函數(shù)測試——邊界值分析邊界值測試的基本原理:
錯(cuò)誤更可能出現(xiàn)在輸入變量的極值附近.失效極少由兩個(gè)(或多個(gè))缺陷的同時(shí)發(fā)生引起的。Min、min+、nom、max-和max。函數(shù)測試——邊界值分析邊界值測試的基本原理:82邊界值測試如果函數(shù)F實(shí)現(xiàn)了一個(gè)程序,則輸入兩個(gè)變量x1和x2會有一些邊界:a≤x1≤b
c≤x2≤d區(qū)間[a,b]和[c,d]是x1和x2的值域。邊界值測試如果函數(shù)F實(shí)現(xiàn)了一個(gè)程序,則輸入兩個(gè)變量x1和83邊界值分析adcbx2x1邊界值分析adcbx2x184邊界值分析adcbx1x2邊界值分析adcbx1x285邊界值分析邊界的數(shù)據(jù)類型可能是:數(shù)值速度字符地址位置尺寸數(shù)量邊界值分析邊界的數(shù)據(jù)類型可能是:86邊界值分析邊界值類型的描述:第一個(gè)/最后一個(gè)最小值/最大值開始/完成超過/在內(nèi)空/滿最短/最長最大/最小最高/最低相鄰/最遠(yuǎn)邊界值分析邊界值類型的描述:87次邊界值分析次邊界條件:
有些邊界條件在軟件內(nèi)部,最終用戶幾乎看不到,但是軟件測試仍有必要檢查。這樣的邊界條件稱為次邊界條件或者內(nèi)部邊界條件。如2的乘方和ASCⅡ。次邊界值分析次邊界條件:88軟件中的2的乘方術(shù)語范圍或值位0或1雙位0-15字節(jié)0-255字0-65,535千1,024兆1,048,576十億1,073,741,824萬億1,009,511,627,776軟件中的2的乘方術(shù)語范圍或值位0或1雙位0-15字節(jié)0-2589部分的ASCⅡ制表字符ASCⅡ值字符ASCⅡ值Null0B66Space32Y89/47Z90048[91149‘96250a97957b98:58y121@64z122A65{123部分的ASCⅡ制表字符ASCⅡ值字符ASCⅡ值Null0B690邊界值分析邊界值分析的特點(diǎn)和局限性對于一個(gè)n變量函數(shù),邊界值分析會產(chǎn)生4n+1個(gè)測試用例。邊界值的取值取決于變量本身的性質(zhì)。邊界值分析對布爾變量沒有什么意義。邊界值分析假設(shè)變量是完全獨(dú)立的。邊界值分析邊界值分析的特點(diǎn)和局限性91健壯性測試健壯性測試是邊界值分析的一種簡單擴(kuò)展adcbx1x2健壯性測試健壯性測試是邊界值分析的一種簡單擴(kuò)展adcbx1x92最壞情況測試最壞情況測試用例adcbx1x2最壞情況測試最壞情況測試用例adcbx1x293健壯最壞情況測試健壯最壞情況測試用例adcbx1x2健壯最壞情況測試健壯最壞情況測試用例adcbx1x294邊界值測試-----練習(xí)1、寫出三角形問題的邊界值分析測試用例2、寫出NextDate函數(shù)的最壞情況測試用例邊界值測試-----練習(xí)1、寫出三角形問題的邊界值分析測試95傭金問題的邊界值測試用例傭金問題的邊界值測試用例96
傭金問題的邊界值測試用例寫出傭金問題的輸出邊界值分析測試用例
傭金問題的邊界值測試用例寫出傭金問題的輸出97傭金問題的測試用例用例槍機(jī)槍托槍管銷售額傭金注釋111110010輸出最小值211212512.5輸出略大于最小值312113013輸出略大于最小值421114514.5輸出略大于最小值555550050中點(diǎn)61010997597.5略低于邊界點(diǎn)71091097097略低于邊界點(diǎn)89101095595.5略低于邊界點(diǎn)91010101000100邊界點(diǎn)101010111025103.75略高于邊界點(diǎn)111011101030104.5略高于邊界點(diǎn)121110101045106.75略高于邊界點(diǎn)131414141400160中點(diǎn)傭金問題的測試用例用例槍機(jī)槍托槍管銷售額傭金注釋11111098傭金問題的測試用例用例槍機(jī)槍托槍管銷售額傭金注釋141818171775216.25略低于邊界點(diǎn)151817181770215.5略低于邊界點(diǎn)161718181755213.25略低于邊界點(diǎn)171818181800220邊界點(diǎn)181818191825225略高于邊界點(diǎn)191819181830226略高于邊界點(diǎn)201918181845229略高于邊界點(diǎn)214848484800820中點(diǎn)2270808977751415輸出略小于最大值2370799077701414輸出略小于最大值2469809077551411輸出略小于最大值2570809078001420輸出最大值傭金問題的測試用例用例槍機(jī)槍托槍管銷售額傭金注釋14181899思考題測試向共享打印機(jī)發(fā)送文件是否成功?思考題測試向共享打印機(jī)發(fā)送文件是否成功?100邊界值測試的小結(jié)這類測試方法是基于一種假設(shè):輸入的變量是真正獨(dú)立的。這些方法的區(qū)別是:正常值與健壯值;單缺陷與多缺陷。邊界值測試的小結(jié)這類測試方法是基于一種假設(shè):輸入的變量是真正101分類技術(shù)—等價(jià)類測試等價(jià)分配:是指分步驟地把過多(無限)的測試案例減小到同樣有效的小范圍的過程。等價(jià)類別或者等價(jià)區(qū)間是指測試相同目標(biāo)或者暴露相同軟件缺陷的一組測試。在尋找等價(jià)區(qū)間時(shí),想辦法把軟件的相似輸入、輸出、操作分成組。這些組是等價(jià)區(qū)間。分類技術(shù)—等價(jià)類測試等價(jià)分配:是指分步驟地把過多(無限)102等價(jià)類測試弱一般等價(jià)類測試用例agedx1x2fbc等價(jià)類測試弱一般等價(jià)類測試用例agedx1x2fbc103等價(jià)類測試強(qiáng)一般等價(jià)類測試用例agedx1x2fbc等價(jià)類測試強(qiáng)一般等價(jià)類測試用例agedx1x2fbc104等價(jià)類測試弱健壯等價(jià)類測試用例agedx1x2fbc等價(jià)類測試弱健壯等價(jià)類測試用例agedx1x2fbc105等價(jià)類測試強(qiáng)健壯等價(jià)類測試用例agedx1x2fbc等價(jià)類測試強(qiáng)健壯等價(jià)類測試用例agedx1x2fbc106練習(xí)寫出三角形問題的輸入等價(jià)類和輸出等價(jià)類寫出NextDate函數(shù)的輸入等價(jià)類Windows文件名可以包含除了、/:*?“〈〉。文件名長度是1-255個(gè)字符。寫出文件名創(chuàng)建測試用例如何確定從數(shù)據(jù)庫讀取數(shù)據(jù)的等價(jià)類?練習(xí)寫出三角形問題的輸入等價(jià)類和輸出等價(jià)類107練習(xí)給出一個(gè)輸出集合等價(jià)類劃分的例子。假設(shè)一個(gè)銷售書籍的獎(jiǎng)勵(lì)系統(tǒng),銷售三種軟件工程類書籍,每本書的單價(jià)不同,《軟件測試》每本25元;《程序設(shè)計(jì)》每本30元;《軟件工程》每本40元。每月銷售額不到(含)500元的部分獎(jiǎng)勵(lì)10%,500(不含)到700元(含)元的部分為15%,超過7000元的部分為20%。該系統(tǒng)生成月份銷售報(bào)告,匯總售出的各類書籍的總數(shù),總銷售額以及獎(jiǎng)金。練習(xí)給出一個(gè)輸出集合等價(jià)類劃分的例子。假設(shè)108三角形問題—弱強(qiáng)一般等價(jià)類測試用例測試用例abc預(yù)期輸出1555等邊三角形2223等腰三角形3345不等邊三角形4412非三角形三角形問題—弱強(qiáng)一般等價(jià)類測試用例測試用例abc預(yù)期輸出15109三角形問題—弱健壯等價(jià)類測試用例測試用例abc預(yù)期輸出1-155a取值不在所允許的取值范圍內(nèi)25-15b取值不在所允許的取值范圍內(nèi)355-1c取值不在所允許的取值范圍內(nèi)420155a取值不在所允許的取值范圍內(nèi)552015b取值不在所允許的取值范圍內(nèi)655201c取值不在所允許的取值范圍內(nèi)三角形問題—弱健壯等價(jià)類測試用例測試用例abc預(yù)期輸出1-1110三角形問題—強(qiáng)健壯等價(jià)類測試用例測試用例abc預(yù)期輸出1-155a取值不在所允許的取值范圍內(nèi)25-15b取值不在所允許的取值范圍內(nèi)355-1c取值不在所允許的取值范圍內(nèi)4-1-15a、b取值不在所允許的取值范圍內(nèi)55-1-1b、c取值不在所允許的取值范圍內(nèi)6-15-1c、a取值不在所允許的取值范圍內(nèi)7-1-1-1a、b、c取值不在所允許的取值范圍內(nèi)三角形問題—強(qiáng)健壯等價(jià)類測試用例測試用例abc預(yù)期輸出1-1111等價(jià)類測試的小結(jié)
等價(jià)類測試的弱形式不如對應(yīng)的強(qiáng)形式的測試全面。如果錯(cuò)誤條件非常重要,則進(jìn)行健壯性的測試是合適的。如果輸入數(shù)據(jù)以離散值區(qū)間和集合定義,則等價(jià)類測試是合適的。在發(fā)現(xiàn)合適的等價(jià)類關(guān)系之前,可能需要進(jìn)行多次嘗試。等價(jià)類測試的小結(jié)等價(jià)類測試的弱形式不如對應(yīng)的強(qiáng)形式的測試全112基于決策表的測試在所有功能測試方法中,基于決策表的測試方法是最嚴(yán)格的,因?yàn)闆Q策表具有邏輯嚴(yán)格性。決策表很適合描述不同條件集合下采取行動(dòng)的若干組合的情況?;跊Q策表的測試在所有功能測試方法中,基于決策表的測試方法是113決策表(判定表)條件樁條件項(xiàng)動(dòng)作樁動(dòng)作項(xiàng)規(guī)則決策表(判定表)規(guī)則114決策表的組成條件樁:列出了問題的所有條件。動(dòng)作樁:列出了問題規(guī)定可能采取的操作。條件項(xiàng):列出針對它所列條件的取值,在所有可能情況下的真假值。動(dòng)作項(xiàng):列出在條件項(xiàng)的各種取值情況下應(yīng)該采取的動(dòng)作。規(guī)則:任何一個(gè)條件組合的特定取值及其相應(yīng)要執(zhí)行的操作。在決策表中貫穿條件項(xiàng)和動(dòng)作項(xiàng)的一列就是一條規(guī)則。決策表的組成條件樁:列出了問題的所有條件。115決策表的建立列出所有的條件樁和動(dòng)作樁;填入條件項(xiàng);填入動(dòng)作項(xiàng),制定初始判定表;簡化;合并相似規(guī)則或者相同動(dòng)作。決策表的建立列出所有的條件樁和動(dòng)作樁;116基于決策表的測試樁規(guī)則1規(guī)則2規(guī)則3、4規(guī)則5C1C2C3TTTTTFTF—FTTA1A2A3XXX
X
XX
X基于決策表的測試樁規(guī)則1規(guī)則2規(guī)則3、4規(guī)則5C1TTTFA117基于決策表的測試樁123456789C1:a,b,c構(gòu)成三角形?C2:a=b?C3:a=c?C4:b=c?N---YYYYYYYNYYNYYYNNYNYYYNYNYNNYYNNNA1:非三角形A2:不等邊三角形A3:等腰三角形A4:等邊三角形A5:不可能X
X
X
X
X
X
X
X
X基于決策表的測試樁123456789C1:a,b,c構(gòu)成三角118基于決策表的測試條件1-456789C1C2C3T--FTTFTFFFTFFFTFFA1A2A3X-XXX-XXX-XX--XX-X基于決策表的測試條件1-456789C1TFFFFTA1XX119基于決策表的測試條件1-456789C1C2C3T--FTTFTFFFTFFFTFFA1A2A3X-XXX-XXX-XX--X-X-基于決策表的測試條件1-456789C1TFFFFTA1XX120基于決策表的測試M1={月份:每月有30天};M2={月份:每月有31天};M3={月份:此月是2月};D1={日期:1≤日期≤28};D2={日期:日期=29};D3={日期:日期=30};D4={日期:日期=31};Y1={年:年是閏年};Y2={年:年不是閏年}?;跊Q策表的測試M1={月份:每月有30天};D3={日期:121基于決策表的測試條件
C1:月份在M1中?C2:月份在M2中?C3:月份在M3中?C4:日期在D1中?C5:日期在D2中?C6:日期在D3中?C7:日期在D4中?C8:年在Y1中?T
T
TA1:不可能A2:NextDate
基于決策表的測試條件
C1:月份在M1中?T
A1:不122基于決策表的測試M1={月份:每月有30天};M2={月份:每月有31天};M3={月份:此月是2月};D1={日期:1≤日期≤28};D2={日期:日期=29};D3={日期:日期=30};D4={日期:日期=31};Y1={年:年=2000};Y2={年:年是閏年};Y3={年:年是平年}?;跊Q策表的測試M1={月份:每月有30天};D3={日期:123基于決策表的測試
12345678C1:月份在C2:日期在C3:年在規(guī)則條數(shù)統(tǒng)計(jì)M1D1-3M1D2-3M1D3-3M1D4-3M2D1-3M2D2-3M2D3-3M2D4-3A1:不可能A2:日期增1A3:日期復(fù)位A4:月份增1A5:月份復(fù)位A6:年增1
X
X
XXX
X
X
X
X???基于決策表的測試
12345678C1:月份在M1M1M1M124基于決策表的測試
91011121314151617C1:月份在C2:日期在C3:年在規(guī)則條數(shù)統(tǒng)計(jì)M3D1Y11M3D1Y21M3D1Y31M3D2Y11M3D2Y21M3D2Y31M3D3-3M3D3-3M3D4-3A1:不可能A2:日期增1A3:日期復(fù)位A4:月份增1A5:月份復(fù)位A6:年增1
X
X
XX
XX
XX
X
X
X
X基于決策表的測試
91011121314151617C1:月125
基于決策表的測試M1={月份:每月有30天};M2={月份:每月有31天,12月除外};M3={月份:此月是12月};M4={月份:此月是2月};D1={日期:1≤日期≤27};D2={日期:日期=28};D3={日期:日期=29}D4={日期:日期=30};D5={日期:日期=31};Y1={年:年是閏年};Y2={年:年不是閏年}。
基于決策表的測試M1={月份:每月有30天};D2={日期126基于決策表的測試
12345678910C1:月份在C2:日期在C3:年在M1D1-M1D2-M1D3-M1D4-M1D5-M2D1-M2D2-M2D3-M2D4-M2D5-A1:不可能A2:日期增1A3:日期復(fù)位A4:月份增1A5:月份復(fù)位A6:年增1
X
X
X
XXX
X
X
X
X
XX基于決策表的測試
12345678910C1:月份在M1M1127基于決策表的測試
111213141516171819202122C1:月份在C2:日期在C3:年在M3D1-M3D2M3D3M3D4M3D5-M4D1-M4D2Y1M4D2Y2M4D3Y1M4D3Y2M4D4-M4D5-A1:不可能A2:日期增1A3:日期復(fù)位A4:月份增1A5:月份復(fù)位A6:年增1
X
X
X
X
X
XX
X
X
XX
XXXXX基于決策表的測試
111213141516171819202128基于決策表的測試
1-3456-910C1:月份在C2:日期在C3:年在M1D1-D3-M1D4-M1D5-M2D1-D4-M2D5-A1:不可能A2:日期增1A3:日期復(fù)位A4:月份增1A5:月份復(fù)位A6:年增1
X
XXX
X
XX基于決策表的測試
1-3456-910C1:月份在M1M1M129基于決策表的測試
11-1415161718192021-22C1:月份在C2:日期在C3:年在M3D1-D4-M3D5-M4D1-M4D2Y1M4D2Y2M4D3Y1M4D3Y2M4D4-D5-A1:不可能A2:日期增1A3:日期復(fù)位A4:月份增1A5:月份復(fù)位A6:年增1
X
X
XX
X
X
XX
XXXX基于決策表的測試
11-1415161718192021-2130基于決策表的測試寫出NextDate函數(shù)的決策表測試用例基于決策表的測試寫出NextDate函數(shù)的決策表測試用例131基于決策表的測試的小結(jié)決策表技術(shù)適用于具有以下特征的應(yīng)用程序:If-then-else邏輯很突出條件和規(guī)則的順序不影響執(zhí)行哪些操作。輸入變量之間存在邏輯關(guān)系。涉及輸入變量子集的計(jì)算。輸入與輸出之間存在因果關(guān)系。很高的圈復(fù)雜度。迭代會有所幫助,第一次不見得會成功?;跊Q策表的測試的小結(jié)決策表技術(shù)適用于具有以下特征的應(yīng)用程132因果圖
因果圖是從用自然語言書寫的程序規(guī)格說明的描述中找到因(輸入條件)和果(輸出或程序狀態(tài)的改變),通過因果圖轉(zhuǎn)化為判別表。因果圖133因果圖的基本邏輯符號因果圖的基本邏輯符號134因果圖的約束符號因果圖的約束符號135因果圖產(chǎn)生測試用例的步驟把程序的規(guī)格劃分解成可以工作的片斷;確定規(guī)格中的原因和結(jié)果;分析規(guī)格以確定原因和結(jié)果之間的邏輯關(guān)系,并且使用因果圖表示出來;確定句法或環(huán)境的約束,這些約束使得某些組合不能產(chǎn)生;把因果圖轉(zhuǎn)化成有限入口決策表;從決策表的每一列選取一個(gè)測試用例。因果圖產(chǎn)生測試用例的步驟把程序的規(guī)格劃分解成可以工作的片斷;136因果圖-案例第一列字符必須A或B,第二列字符必須是數(shù)字,在此情況下文件被更新。但如果第一個(gè)字符不正確,那么信息X12被產(chǎn)生;如果第二個(gè)字符不是數(shù)字,則信息X13產(chǎn)生。因果圖-案例第一列字符必須A或B,第二列字符必須是數(shù)字,在此137案例分析原因:1——第一個(gè)字符是“A”2——第一個(gè)字符是“B”3——第二個(gè)字符是一個(gè)數(shù)字結(jié)果:70——進(jìn)行更新71——產(chǎn)生信息X1272——產(chǎn)生信息X13案例分析原因:1——第一個(gè)字符是“A”138簡單的因果圖簡單的因果圖139帶有約束的因果圖帶有約束的因果圖140決策表決策表141練習(xí)
有一個(gè)處理單價(jià)為1元5角錢的盒裝飲料的自動(dòng)售貨機(jī)軟件。若投入1元5角硬幣,按下“可樂”、“雪碧”和“紅茶”按鈕,相應(yīng)的飲料就送出來。若投入的是兩元硬幣,在送出飲料的同時(shí)退還5角硬幣。練習(xí):做出因果圖,編制出決策表練習(xí)有一個(gè)處理單價(jià)為1元5角錢的盒裝飲料的自動(dòng)售貨142練習(xí)——因果圖練習(xí)——因果圖143練習(xí)——決策表練習(xí)——決策表144因果圖——小結(jié)根據(jù)需求規(guī)格說明書,分析因果關(guān)系;有助于用一個(gè)系統(tǒng)的方法選擇出高效的測試用例集;額外的好處,就是可以指出規(guī)格說明的不完整性和不明確之處。因果圖是一種形式語言,實(shí)際上是一種數(shù)字邏輯電路,但沒有使用標(biāo)準(zhǔn)的電子學(xué)符號,而是使用了稍微簡單點(diǎn)的符號。因果圖——小結(jié)根據(jù)需求規(guī)格說明書,分析因果關(guān)系;145正交測試法正交測試源于正交試驗(yàn)設(shè)計(jì)方法,是從大量的數(shù)據(jù)中挑選適量的、有代表性的點(diǎn),從而合理地安排測試的一種科學(xué)的試驗(yàn)設(shè)計(jì)方法。正交測試法就是使用已經(jīng)造好了的正交表格來安排試驗(yàn)并進(jìn)行數(shù)據(jù)分析的一種方法。它簡單易行并且計(jì)算表格化,應(yīng)用性較好。正交測試法正交測試源于正交試驗(yàn)設(shè)計(jì)方法,是從大量的數(shù)據(jù)中挑選146案例為了提高某化學(xué)產(chǎn)品的轉(zhuǎn)化率,選擇了三個(gè)有關(guān)因素進(jìn)行條件試驗(yàn),反應(yīng)溫度(A),反應(yīng)時(shí)間(B)用堿量(C),并確定了它們的試驗(yàn)范圍如下:A:80——90℃;B:90——150分鐘;C:5%——7%。案例為了提高某化學(xué)產(chǎn)品的轉(zhuǎn)化率,選擇了三個(gè)有關(guān)因素進(jìn)行條件試147全面試驗(yàn)法取點(diǎn)全面試驗(yàn)法取點(diǎn)148簡單對比法簡單對比法149正交試驗(yàn)測試法正交試驗(yàn)測試法150正交表一般用L代表正交表,常用的有L8(27)、L9(34)、L16(45)、等。例如:L8(27)、其中,7為此表列的數(shù)目(最多可安排的因子數(shù));2為因子的水平數(shù);8為此表的數(shù)目(試驗(yàn)次數(shù))。正交表一般用L代表正交表,常用的有L8(27)、151L9(34)正交表L9(34)正交表152案例——試驗(yàn)方案案例——試驗(yàn)方案153正交測試用例設(shè)計(jì)步驟(1)確定交互測試中有多少個(gè)相互獨(dú)立的變量,這映射到表中的因素?cái)?shù)(Factors)。(2)確定每個(gè)變量可以取值的個(gè)數(shù)的最大數(shù),這映射到表中的水平數(shù)(Levels)。(3)選擇一個(gè)次數(shù)(Run)數(shù)最少的最適合的正交表。一個(gè)最合適的正交表是至少滿足第一步說明的因素?cái)?shù)和第二步說明的水平數(shù)。正交測試用例設(shè)計(jì)步驟(1)確定交互測試中有多少個(gè)相互獨(dú)立的變154正交測試用例設(shè)計(jì)步驟(4)把因素和值映射到表中。(5)為剩下的水平數(shù)選取值。(6)把次數(shù)中所描述的組合轉(zhuǎn)化成測試用例,再增加一些沒有生成的但可疑的測試用例。正交測試用例設(shè)計(jì)步驟(4)把因素和值映射到表中。155練習(xí)一
假設(shè)一個(gè)網(wǎng)頁有3個(gè)不同的部分(Top、Middle、Bottom),并且可以把其中的一個(gè)單獨(dú)部分顯示及隱藏。要測試這三個(gè)不同部分的交互。按照前面給出的正交表測試用例設(shè)計(jì)步驟,設(shè)計(jì)該系統(tǒng)的正交表測試用例。練習(xí)一156用例設(shè)計(jì)步驟(1)確定有3個(gè)獨(dú)立的變量(網(wǎng)頁的3個(gè)部分)。(2)每個(gè)變量能夠取兩個(gè)值(Hidden或Visible)。(3)選擇正交表——變量為三因素,值為二水平。(4)把變量的值映射到表中,其中Hidden=0,Visible=1。用例設(shè)計(jì)步驟(1)確定有3個(gè)獨(dú)立的變量(網(wǎng)頁的3個(gè)部分)。157正交用例表因素1因素2因素3次數(shù)1000次數(shù)2011次數(shù)3101次數(shù)4110正交用例表因素1因素2因素3次數(shù)1000次數(shù)201158因素映射之后TopmiddleBottom用例1HiddenHiddenHidden用例2HiddenVisibleVisible用例3VisibleHiddenVisible用例4VisibleVisibleHidden因素映射之后TopmiddleBottom用例1Hi159用例設(shè)計(jì)步驟(5)此種情況沒有剩余的水平數(shù),也就是說,表中的每一個(gè)水平都有一個(gè)值被映射過來。(6)把表中每一行轉(zhuǎn)換成測試用例,可以得到4個(gè)測試用例。這是測試3個(gè)變量成對交互時(shí)需要測試的內(nèi)容。用例設(shè)計(jì)步驟(5)此種情況沒有剩余的水平數(shù),也就是說,表中的160測試用例描述
A.隱藏這3部分。 B.顯示除Top部分外的其它部分。 C.顯示除Middle部分外的其它部分。 D.顯示除Bottom部分外的其它部分。測試用例描述 A.隱藏這3部分。161練習(xí)二Web瀏覽器(Netscape6.2、IE6.0、Opera4.0)插件(RealPlayer、MediaPlayer)應(yīng)用服務(wù)器(IIS、Apache、NetscapeEnterprise)操作系統(tǒng)(Windows2000、WindowsNT、Linux)練習(xí)二Web瀏覽器(Netscape6.2、IE6.0、O162練習(xí)——結(jié)果12341Netscape無IISW20002NetscapeRealPlayerApache
WNT3NetscapeMediaPlayerEnterprise
Linux)4IE無
Apache
Linux)5IERealPlayer
EnterpriseW20006IEMediaPlayerIISWNT7Opera無
EnterpriseWNT8OperaRealPlayerIIS
Linux)9OperaMediaPlayer
Apachew2000練習(xí)——結(jié)果12341Netscape無IISW20002N163小結(jié)節(jié)約測試工作工時(shí);可控制生成的測試用例的數(shù)量;測試用例具有一定的覆蓋率。小結(jié)節(jié)約測試工作工時(shí);164隨機(jī)測試專家測試隨機(jī)測試半隨機(jī)測試探測性測試隨機(jī)測試專家測試165小結(jié)清楚何時(shí)使用工具和使用哪一種工具是軟件測試員的重要技巧。創(chuàng)建、使用測試工具和測試自動(dòng)化是有意義的工作。小結(jié)清楚何時(shí)使用工具和使用哪一種工具是軟件測試員的重要技巧。166自動(dòng)化功能測試及用例設(shè)計(jì)袁玉宇yuanyuyu@263.net
yuyu_yuan4@自動(dòng)化功能測試及用例設(shè)計(jì)袁玉宇167本部分課程目標(biāo)測試與自動(dòng)化測試WinRunner介紹測試用例設(shè)計(jì)本部分課程目標(biāo)測試與自動(dòng)化測試168自動(dòng)化
自動(dòng)化是對策略、經(jīng)驗(yàn)、工具及工件的使用,它減少了對手工或人的干預(yù)或非技能方面的介入,及重復(fù)或冗長工作需要。自動(dòng)化169測試自動(dòng)化自動(dòng)化測試直接依賴于整個(gè)軟件流程的可自動(dòng)化成熟度。包括:測試流程、持續(xù)編譯、持續(xù)集成、測試系統(tǒng)發(fā)布、測試執(zhí)行、測試管理、缺陷測試跟蹤等多個(gè)方面的自動(dòng)化實(shí)現(xiàn)和整合。測試自動(dòng)化自動(dòng)化測試直接依賴于整個(gè)軟件流程的可自動(dòng)化成熟度。170測試和自動(dòng)化的區(qū)別測試和自動(dòng)化的區(qū)別171自動(dòng)化測試的誤區(qū)期望自動(dòng)化測試能夠完全取代手動(dòng)測試期望自動(dòng)化測試發(fā)現(xiàn)大量的新缺陷期望自動(dòng)化測試能夠智能的完成絕大多數(shù)工作期望自動(dòng)化測試是一勞永逸的自動(dòng)化測試的誤區(qū)期望自動(dòng)化測試能夠完全取代手動(dòng)測試172自動(dòng)化測試的目的縮短測試周期,加快測試進(jìn)度,從而加快產(chǎn)品發(fā)布進(jìn)度實(shí)現(xiàn)更大規(guī)模、更大頻率的測試減少手工測試的人力資源投入,降低測試成本提高測試覆蓋率保證回歸測試的可控性和一致性自動(dòng)化測試的目的縮短測試周期,加快測試進(jìn)度,從而加快產(chǎn)品發(fā)布173自動(dòng)化測試的目的提高測試用例執(zhí)行的可靠性在不降低質(zhì)量的情況下由低技能的人員完成定義清晰的測試過程,降低和避免測試人員的個(gè)體對整體測試的影響提高測試人員的工作效率,并使更高技能的人員有時(shí)間和資源,對產(chǎn)品進(jìn)入更深層次的測試。輔助測試人員完成手工無法完成的測試工作。自動(dòng)化測試的目的提高測試用例執(zhí)行的可靠性174測試用例的質(zhì)量指標(biāo)檢測軟件缺陷的有效性測試用例的可仿效性測試用例執(zhí)行、分析和調(diào)試的經(jīng)濟(jì)性測試用例的可修改行測試用例的質(zhì)量指標(biāo)檢測軟件缺陷的有效性175Keviat圖Keviat圖176適合做自動(dòng)化測試情況產(chǎn)品型項(xiàng)目大型增量式開發(fā)、持續(xù)集成項(xiàng)目能夠自動(dòng)編譯、自動(dòng)發(fā)布的系統(tǒng)需要多次重復(fù)機(jī)械性動(dòng)作的測試
適合做自動(dòng)化測試情況產(chǎn)品型項(xiàng)目177適合做自動(dòng)化測試情況簡單而煩瑣的基于命令行交互方式的測試完成一些手工難以完成的測試目標(biāo)涉及大量第三方軟件或設(shè)備的測試適合做自動(dòng)化測試情況簡單而煩瑣的基于命令行交互方式的測試178不適合做自動(dòng)化測試情況按需定制型項(xiàng)目(通常為一次性的短期項(xiàng)目)項(xiàng)目周期很短的項(xiàng)目業(yè)務(wù)規(guī)則復(fù)雜的項(xiàng)目不適合做自動(dòng)化測試情況按需定制型項(xiàng)目(通常為一次性的短期項(xiàng)目179不適合做自動(dòng)化測試情況依賴于人類的習(xí)慣、感官或智力的測試內(nèi)容不需要頻繁測試的軟件軟件不穩(wěn)定不適合做自動(dòng)化測試情況依賴于人類的習(xí)慣、感官或智力的測試內(nèi)容180被測軟件產(chǎn)品提供API的軟件基于命令行的接口基于GUI基于終端接口被測軟件產(chǎn)品提供API的軟件181自動(dòng)化測試的最佳實(shí)踐自動(dòng)化測試的代碼效率不是越高越好自動(dòng)化測試的執(zhí)行過程和記錄應(yīng)便于分析自動(dòng)化測試的設(shè)計(jì)和腳本可讀性越好越好自動(dòng)化測試的最佳實(shí)踐自動(dòng)化測試的代碼效率不是越高越好182自動(dòng)化測試的最佳實(shí)踐自動(dòng)化測試的腳本可維護(hù)性是重中之重完整性是自動(dòng)化測試成功的前提自動(dòng)化測試腳本之間是松耦合或彼此獨(dú)立的自動(dòng)化測試的最佳實(shí)踐自動(dòng)化測試的腳本可維護(hù)性是重中之重183自動(dòng)化技術(shù)模擬/虛擬技術(shù)對象管理技術(shù)腳本技術(shù)比較技術(shù)自動(dòng)化技術(shù)模擬/虛擬技術(shù)184自動(dòng)化技術(shù)執(zhí)行技術(shù)錄制、回放技術(shù)同步技術(shù)健壯性技術(shù)自動(dòng)化技術(shù)執(zhí)行技術(shù)185自動(dòng)化測試的腳本技術(shù)線性腳本結(jié)構(gòu)化腳本共享腳本數(shù)據(jù)驅(qū)動(dòng)腳本關(guān)鍵字驅(qū)動(dòng)腳本自動(dòng)化測試的腳本技術(shù)線性腳本186線性腳本線性腳本是錄制手工執(zhí)行的測試事例得到的腳本。如果用戶只使用線性腳本技術(shù),即錄制每個(gè)測試事例的全部內(nèi)容,則每個(gè)測試事例可以通過腳本完整地被回放。幾乎任何重復(fù)的操作都可以使用線性腳本技術(shù)自動(dòng)化。線性腳本線性腳本是錄制手工執(zhí)行的測試事例得到的腳本。187線性腳本的優(yōu)點(diǎn)簡單,只需坐在計(jì)算機(jī)前錄制手工任務(wù)??梢钥焖匍_始自動(dòng)化。對實(shí)際執(zhí)行操作可以審計(jì)跟蹤。用戶不必是編程人員(如果不修改)線性腳本的優(yōu)點(diǎn)簡單,只需坐在計(jì)算機(jī)前錄制手工任務(wù)。188線性腳本的缺點(diǎn)無共享或重用腳本。容易受軟件變化的影響。修改代價(jià)大。如果回放腳本時(shí)發(fā)生了錄制腳本時(shí)沒有發(fā)生的事情,引起整個(gè)測試失敗。線性腳本的缺點(diǎn)無共享或重用腳本。189結(jié)構(gòu)化腳本結(jié)構(gòu)化腳本類似于結(jié)構(gòu)化程序設(shè)計(jì),結(jié)構(gòu)化腳本中含有控制腳本執(zhí)行的指令??刂颇_本執(zhí)行的指令:順序,選擇和疊代。結(jié)構(gòu)化腳本結(jié)構(gòu)化腳本類似于結(jié)構(gòu)化程序設(shè)計(jì),結(jié)構(gòu)化腳本中含有控190結(jié)構(gòu)化腳本例子PartoftheScribbletestscriptSelectOption’File/Close’FocusoOn’Close’LeftMouseClick’Yes’FocusOn’SaveAs’Typecountries2LeftMouseClick’Save’IfMessage=‘Replaceexistingfile?’LeftMouseCl
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 制造業(yè)離職證明及勞動(dòng)經(jīng)歷聲明(6篇)
- 2025年春季芳香保健師(初級)職業(yè)技能鑒定試卷在線測試與備考指南
- 2025年茶藝師職業(yè)技能鑒定理論試卷(茶藝旅游篇)
- 生活中的一個(gè)小事件記敘文創(chuàng)作15篇
- 2025年康復(fù)醫(yī)療服務(wù)體系與康復(fù)康復(fù)康復(fù)機(jī)構(gòu)服務(wù)質(zhì)量提升運(yùn)營模式報(bào)告
- 智慧港口自動(dòng)化裝卸設(shè)備在2025年智慧旅游信息化中的應(yīng)用案例研究分析報(bào)告
- 2025年阿爾茨海默癥試題
- 無人零售技術(shù)在不同城市消費(fèi)場景下的接受度比較報(bào)告2025
- 電商綠色物流與物流行業(yè)綠色物流人才培養(yǎng)報(bào)告
- 市場營銷策略實(shí)施成果證明(8篇)
- 醫(yī)療行業(yè)上云用云研究報(bào)告2024
- 融資擔(dān)保行業(yè)2024年信用回顧與2025年展望 -新世紀(jì)
- 曹楊二中自招數(shù)學(xué)試卷
- (新疆一模)2025屆高三高考適應(yīng)性檢測分學(xué)科第一次模擬考試 生物試卷(含答案解析)
- 中職高二數(shù)學(xué)測試卷01(高教版2023拓展模塊一下冊全部)(原卷版)
- 醫(yī)院反腐倡廉廉潔行醫(yī)專題黨課宣講課件
- 大數(shù)據(jù)分析與應(yīng)用知到智慧樹章節(jié)測試課后答案2024年秋西安理工大學(xué)
- 抗精神病與精神藥品區(qū)別
- 手術(shù)室抗菌藥物的使用
- 乳腺癌患者靜脈管理
- 地球化學(xué)復(fù)習(xí)資料
評論
0/150
提交評論