




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、自動化測試框架思路文章分類:綜合技術(shù)1.1. 自動化測試的優(yōu)點 提高測試效率和降低測試成本 實現(xiàn)快速的回歸測試,加快測試進(jìn)度從而加快產(chǎn)品發(fā)布進(jìn)度 更多的測試,提高測試覆蓋率 保證一致性 提高測試的可靠性,避免人為因素1.2. 為什么要做自動化測試框架通過以往的嘗試,發(fā)現(xiàn)真正實現(xiàn)自動化測試,并不是掌握了某個自動化測試工具,掌握了腳本的編寫技術(shù)就能夠達(dá)成,面對復(fù)雜的ERP系統(tǒng),簡單的錄制/回放并不能達(dá)到自動化測試的要求,完全通過編寫腳本的方式,工作量巨大且可維護(hù)性極差、不能復(fù)用。實現(xiàn)自動化就是為了能夠提升測試效率,不具備可維護(hù)性、復(fù)用性差將成為導(dǎo)致自動化測試失敗的最致命因素,付出巨大代價但起到的效
2、果甚微。基于以上因素并結(jié)合行業(yè)發(fā)展思路,在正式實施自動化之前,必須搭建一套適合的自動化測試框架,將腳本能夠有效的組織、連貫應(yīng)用起來,提高測試腳本的可維護(hù)性和可讀性。1.3. 希望達(dá)成的目標(biāo)搭建符合以下要求的自動化測試框架,使得未來自動化測試正式實施時能夠有序、高效的開展: 高復(fù)用性 高可維護(hù)性 穩(wěn)定性 快速編寫腳本 自動執(zhí)行 正確輸出結(jié)果 能夠不斷提升自動化測試比例1.4. 實現(xiàn)思路分層設(shè)計:業(yè)務(wù)流程、功能點、操作組件我們在進(jìn)行測試時,首先會驗證各個頁面、各個字段的正確性,到驗證功能點的正確性,再組合各個功能點進(jìn)行業(yè)務(wù)邏輯、業(yè)務(wù)流程的驗證,最終確保系統(tǒng)滿足業(yè)務(wù)需求。* 對于自動化腳本,采用分層
3、的思想,先實現(xiàn)最底層的操作組件,通過調(diào)用操作組件、及業(yè)務(wù)邏輯實現(xiàn)對功能點的驗證,再通過調(diào)用業(yè)務(wù)邏輯組合功能點實現(xiàn)對業(yè)務(wù)流程的驗證。不同的業(yè)務(wù)流程,對于底層的操作組件、中間層的功能點函數(shù)是完全可以復(fù)用的,只是調(diào)用的業(yè)務(wù)邏輯的差異,或者是測試數(shù)據(jù)的差異性。* 盡可能做到各腳本之間具備獨立性,不相互依賴,便于進(jìn)行各種基本場景的組合運(yùn)行。如銷售系統(tǒng)中的選擇房間操作,在做預(yù)約、小訂、認(rèn)購等操作時,都需要用到選擇房產(chǎn),因此可以將選擇房產(chǎn)做為一個公共的操作組件,詳細(xì)描述選擇房產(chǎn)的操作步驟,在測試新增預(yù)約、新增小訂、新增認(rèn)購等功能點時都需要調(diào)用到選擇房產(chǎn)的操作組件,只是業(yè)務(wù)的校驗邏輯與所選擇的數(shù)據(jù)不一致。再看
4、業(yè)務(wù)流程,新增一個小訂單后可以作廢,也可以由小訂轉(zhuǎn)認(rèn)購,業(yè)務(wù)流程就有兩個:新增小訂單作廢訂單,新增小訂單轉(zhuǎn)認(rèn)購,這兩個業(yè)務(wù)流程中“新增小訂單”這個功能點是一致的,可以通過調(diào)用不同的用例數(shù)據(jù)組合成不同的業(yè)務(wù)流程。腳本分離設(shè)計:對象、操作、測試數(shù)據(jù)、業(yè)務(wù)邏輯相互剝離、靈活調(diào)用對某個功能進(jìn)行自動化測試,實際上就是對這個功能涉及的對象進(jìn)行操作,輸入測試數(shù)據(jù)來驗證其結(jié)果的正確性,復(fù)雜的驗證點需要編寫業(yè)務(wù)邏輯。如果全部用腳本的方式編寫,針對每一條測試數(shù)據(jù)就需要編寫一份腳本,腳本量相當(dāng)巨大,同時任何改動(程序、測試用例、GUI對象)都需要調(diào)整大量的腳本。為了達(dá)到可維護(hù)性、可復(fù)用性,將對象、操作、測試數(shù)據(jù)、業(yè)
5、務(wù)邏輯剝離、分開管理,通過調(diào)用關(guān)系去組合實現(xiàn)不同的測試用例。* 對象資源庫* 測試數(shù)據(jù)資源庫* 操作組件(描述操作步驟)* 腳本:業(yè)務(wù)邏輯分離后,如果要增加測試用例,只需要維護(hù)測試數(shù)據(jù),如果程序修改,增加了對象,那么只需要維護(hù)對象庫、操作組件,增加對這個對象的操作。* 封裝基礎(chǔ)函數(shù)、基本的業(yè)務(wù)邏輯、驗證點通過對基本業(yè)務(wù)邏輯、驗證點的封裝、調(diào)用,實現(xiàn)快速的腳本開發(fā)如一個數(shù)據(jù)保存的功能,每一條數(shù)據(jù)在做了增、刪、改的操作后,都需要驗證保存至后臺數(shù)據(jù)庫的數(shù)據(jù)正確性,通過預(yù)期結(jié)果與數(shù)據(jù)庫實際產(chǎn)生的數(shù)據(jù)集進(jìn)行比較驗證,在獲取數(shù)據(jù)庫實際產(chǎn)生的數(shù)據(jù)集的方式是通用的,只是不同的功能所要驗證的數(shù)據(jù)表、字段及Whe
6、re條件不一致,獲取數(shù)據(jù)集的方式就可以封裝成一個基礎(chǔ)函數(shù),傳入不同的SQL語句做為參數(shù)即可。同時預(yù)期結(jié)果與實際結(jié)果集的比較也可以封裝為基礎(chǔ)函數(shù)。再如,系統(tǒng)頁面中在某些操作或條件下,部分字段是只讀不允許編輯的,或者是隱藏不顯示的,編寫腳本時需要對每一個對象寫一條語句驗證其只讀和隱藏屬性的正確性,如果將只讀和隱藏屬性的驗證進(jìn)行封裝,針對每一個頁面進(jìn)行驗證,那么只需要傳入這個頁面只讀或隱藏的對象名稱,調(diào)用封裝的函數(shù)執(zhí)行驗證。可以大大減少腳本量,也更易于維護(hù)。* 有效的執(zhí)行體系* 批量、定制執(zhí)行、自動運(yùn)行自動化測試真正達(dá)到提升測試效率,需要實現(xiàn)無人值守情況下的批量自動執(zhí)行,并且可以定制執(zhí)行。* 異常處
7、理機(jī)制腳本執(zhí)行過程中,因程序錯誤或環(huán)境問題、腳本自身問題經(jīng)常會出現(xiàn)非預(yù)期的錯誤:如意料外的彈出窗口、發(fā)現(xiàn)錯誤的數(shù)據(jù)、未找到對象、輸入文件打不開或不能讀等,有些情況下當(dāng)前用例出錯,并不影響后續(xù)用例的執(zhí)行,需要支持異常處理機(jī)制,終止執(zhí)行或者終止當(dāng)前用例,繼續(xù)后續(xù)用例的執(zhí)行,亦或者跳過當(dāng)前步驟,繼續(xù)執(zhí)行后續(xù)操作,并輸出當(dāng)前的錯誤報告。* 業(yè)務(wù)數(shù)據(jù)還原初始狀態(tài)自動化測試需要循環(huán)執(zhí)行,執(zhí)行完成后,需要恢復(fù)初始狀態(tài)(主要是業(yè)務(wù)數(shù)據(jù)),以使得程序重新提交版本后能夠循環(huán)執(zhí)行,不斷的對新版本進(jìn)行回歸驗證。* 版本管理隨著待驗證版本的不一致,自動化測試腳本也會不斷的更新、維護(hù),同樣需要進(jìn)行版本管理。* 結(jié)果體系*
8、 針以每條用例,輸出用例執(zhí)行結(jié)果* 針對每個檢查點,輸出詳細(xì)的檢查點執(zhí)行結(jié)果* 輸出執(zhí)行日志結(jié)構(gòu)化管理對象、操作組件、基礎(chǔ)函數(shù)、測試數(shù)據(jù)、功能點腳本、業(yè)務(wù)流程組合,如此多的層級、調(diào)用關(guān)系,必須進(jìn)行結(jié)構(gòu)化管理,采用高度組織化的目錄結(jié)構(gòu)、分級管理,方便進(jìn)行正確及快速的調(diào)用,方便能夠快速定位、查找問題。軟件自動化測試的引入和應(yīng)用關(guān)鍵字:軟件測試自動化在了解軟件測試自動化的重要意義之后,就要開始啟動軟件測試自動化進(jìn)程。在進(jìn)行自動化測試之前,首先要建立一個對軟件測試自動化的認(rèn)識觀。軟件測試工具能提高測試效率、覆蓋率和可靠性等,軟件測試自動化雖然具有很多優(yōu)點,但它只是測試工作的一部分,是對手工測試的一種補(bǔ)
9、充。軟件測試自動化絕不能代替手工測試,它們各有各自的特點,其測試對象和測試范圍都不一樣:.在系統(tǒng)功能邏輯測試、驗收測試、適用性測試、涉及物理交互性測試時,多采用黑盒測試的手工測試方法。.單元測試、集成測試、系統(tǒng)負(fù)載或性能測試、穩(wěn)定性測試、可靠性測試等比較適合采用自動化刪試。.那種不穩(wěn)定軟件的測試、開發(fā)周期很短的軟件、一次性的軟件等不適合自動化測試。.工具本身并沒有想象力和靈活性,根據(jù)報道,自動測試只能發(fā)現(xiàn)15%的缺陷,而手工測試可以發(fā)現(xiàn)85%酊J缺陷。.自動化測試工具在進(jìn)行功能測試時,其準(zhǔn)確的含義是回歸測試工具,這時工具不能發(fā)現(xiàn)更多的新問題,但口丁以保證對已經(jīng)測試過部分的準(zhǔn)確性和客觀性。多數(shù)情
10、況下,手工測試和自動化測試應(yīng)該相結(jié)合,以攝有效的方法來完成測試任務(wù)。1找準(zhǔn)測試自動化的切入點管是自己開發(fā)測試工具,還是購買第三方現(xiàn)成的工具產(chǎn)品,當(dāng)開始啟動測試自動化時,要希望一F子就能做很多事情。必須從蛀基本的測試工作切入,如驗證新構(gòu)建的軟件包(Bujld)是否有嚴(yán)重的或致命的問題,即驗證構(gòu)建的軟件包所有基本功能是否正常工作,或者可以從某一個模塊開始,如果這個模塊做成功了,再向其他模塊推進(jìn)。2把測試開發(fā)納入整個軟件開發(fā)體系測試用例設(shè)計完成之后,就可以進(jìn)行手工測試,但要用測試工具,還必須將測試用例轉(zhuǎn)化成測試腳本或編寫特殊的測試程序,測試腳本也是程序,所以應(yīng)該要遵守已有的、規(guī)范的編程標(biāo)準(zhǔn)和規(guī)則。用
11、編程語言或腳本語言寫出短小的程序來產(chǎn)生大量的測試輸入(包括輸入數(shù)據(jù)與操作指令),或同時也按一定的邏輯規(guī)律產(chǎn)牛標(biāo)準(zhǔn)輸出。輸入與輸出的文件名字,同開發(fā)中其他環(huán)節(jié)一樣,進(jìn)行統(tǒng)一規(guī)劃,按規(guī)定進(jìn)行配對,以便進(jìn)行自動化測試的結(jié)果對比分析。自動化測試應(yīng)該是整個開發(fā)過程中的一個有機(jī)組成部分。自動測試要依靠配置管理來提供良好的運(yùn)行環(huán)境,同時它必須要與開發(fā)中的軟件構(gòu)建緊密配合a只要是程序,就可能存在缺陷,所以測試腳本或測試程序也要進(jìn)行測試,在實際運(yùn)杓測試之前,要保證測試工具或測試腳本的正確性。當(dāng)然,并不是說要一層層的測試下去,而進(jìn)入程序測試遞歸的死胡同。相對來隨,測試腳本或測試工具簡單些,其測試也容易些。一旦測試
12、中發(fā)現(xiàn)問題,要么是被測試的對象有問題,要么是測試腳本或測試工具有問題,總之,問題容易發(fā)現(xiàn)。為了使測試自動化的腳本能多次重復(fù)進(jìn)行,測試用例和測試腳本要寫入數(shù)據(jù)庫,進(jìn)行動態(tài)管理。3測試自動化依賴測試流程和測試用倒不管是手工測試和自動化測試,關(guān)鍵是測試流程的建立和測試用例的設(shè)計,只有在良好的測試用例基礎(chǔ)上,編寫測試腳本、執(zhí)行測試或運(yùn)行測試腳本,才能保證測試的執(zhí)行效果。為了適合測試自動化的測試腳本的編程,可以使測試用例轉(zhuǎn)化為用例矩陣化(CaseMatcix),使測試腳本容易實現(xiàn)結(jié)構(gòu)化。4軟件測試自動化的投入較大對于軟件測試自動化要有一個正確的理解,才能做到事半功倍e由于軟件測試自動化在前期的投入要比手
13、工測試的投入大得多,除了在購買軟件測試工具或成套工具系統(tǒng)所投八的資金(一般這類工具軟件還比較貴)和大量的人員培訓(xùn)之外,還要花很多時間去寫測試腳本、維護(hù)腳本等。5進(jìn)行赍源的合理調(diào)度在開發(fā)中的產(chǎn)品達(dá)到一定程度的時候,就應(yīng)該開始進(jìn)行每日構(gòu)造新版本并進(jìn)行自動化的驗證測試。這種做法能使軟件的開投狀態(tài)得到頻繁的更新,及早發(fā)現(xiàn)設(shè)計和集成的缺陷。為了充分利用時間與設(shè)備資源,下班之后進(jìn)行自動的軟件構(gòu)建,緊接著進(jìn)行自動測試(這里多數(shù)指的是系統(tǒng)測試或回歸測試)是一個非常行之有效的方法。如果安排得好,到第二天上班時,測試結(jié)果就已經(jīng)在各人的電子郵箱里面了。軟件測試框架介紹關(guān)鍵字:軟件測試測試框架在軟件測試領(lǐng)域,我們經(jīng)常
14、會聽到測試框架。什么是軟件測試框架?在軟件測試中它起到怎樣的作用?要認(rèn)識軟件測試框架,首先要對所謂框架有概念。框架(Framework)是整個或部分系統(tǒng)的可重用設(shè)計,表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實例間交互的方法;另一種定義認(rèn)為,框架是可被應(yīng)用開發(fā)者定制的應(yīng)用骨架。前者是從應(yīng)用方面、而后者是從目的方面給出的定義。測試框架也是如此,測試框架出現(xiàn)的最終目的是花少量的資源來完成盡可能多的測試任務(wù),所以軟件測試框架的建立以及框架的重用性方面是最值得測試人員深入探究的地方。Java測試框架、.Net測試框架、自動化測試框架、單元測試框架、集成測試框架,你是不是已經(jīng)被這些名稱弄暈了?如何實現(xiàn)測試框架用于特殊場合
15、?本專題將就以上問題對測試框架進(jìn)行全面詳解,從測試框架入門和類別,到常用框架應(yīng)用和自己動手實現(xiàn)框架。什么是測試框架:軟件測試框架是一組自動化測試的規(guī)范、測試腳本的基礎(chǔ)代碼,以及測試思想、慣例的集合。可用于減少冗余代碼、提高代碼生產(chǎn)率、提高代碼重用性和可維護(hù)性。測試框架的好處在于:提高開發(fā)速度,提升測試代碼的執(zhí)行效率;提高軟件代碼質(zhì)量,同時引入重構(gòu)概念,讓代碼更干凈和富有彈性;提升系統(tǒng)的可信賴度,作為回歸測試的一種實現(xiàn)方法支持修復(fù)后再測試,確保代碼的正確性。常用的測試框架分類包括自動化測試框架和單元測試框架。根據(jù)所用開發(fā)平臺不同,也可使用不同的測試框架展開測試。軟件自動化測試框架的發(fā)展基于界面的
16、軟件自動化測試框架和工具的發(fā)展大致經(jīng)歷了三個階段(有人也據(jù)此將測試工具分為三代):1)簡單的錄制/回放:由工具錄制并記錄操作的過程和數(shù)據(jù)形成腳本,通過回放來重復(fù)人工操作的過程。在這種模式下數(shù)據(jù)和腳本混在一起,幾乎一個測試用例對應(yīng)一個腳本,維護(hù)成本很高。而且即使界面的簡單變化也需要重新錄制,腳本可重復(fù)使用的效率低。2)數(shù)據(jù)驅(qū)動(datadriven)的自動化測試:從數(shù)據(jù)文件讀取輸入數(shù)據(jù),通過變量的參數(shù)化,將測試數(shù)據(jù)傳入測試腳本,不同的數(shù)據(jù)文件對應(yīng)不同的測試用例。在這種模式下數(shù)據(jù)和腳本分離,腳本的利用率、可維護(hù)性大大提高,但受界面變化的影響仍然很大。3)關(guān)鍵字驅(qū)動(keyworddriven)的自
17、動化測試:關(guān)鍵字驅(qū)動測試是數(shù)據(jù)驅(qū)動測試的一種改進(jìn)類型,它將測試邏輯按照關(guān)鍵字進(jìn)行分解,形成數(shù)據(jù)文件,關(guān)鍵字對應(yīng)封裝的業(yè)務(wù)邏輯。主要關(guān)鍵字包括三類:被操作對象(Item)、操作(Operation)和值(value),用面向?qū)ο笮问娇蓪⑵浔憩F(xiàn)為Item.Operation(Value)關(guān)鍵字驅(qū)動的主要思想是:腳本與數(shù)據(jù)分離、界面元素名與測試內(nèi)部對象名分離、測試描述與具體實現(xiàn)細(xì)節(jié)分離。相應(yīng)地,軟件測試自動化腳本的類型,從低到高的發(fā)展層次是:1)線性腳本:通過錄制直接產(chǎn)生的線性執(zhí)行的腳本。2)結(jié)構(gòu)化的腳本:具有順序、循環(huán)、分支等結(jié)構(gòu)的腳本。3)共享的腳本:可以被多個測試用例使用,被其它腳本調(diào)用的腳本。4)數(shù)據(jù)驅(qū)動的腳本:數(shù)據(jù)和流程控制分離的腳本,通過讀入數(shù)據(jù)文件來驅(qū)動流程進(jìn)行的腳本。5)關(guān)鍵字驅(qū)動的腳本
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 常州工程職業(yè)技術(shù)學(xué)院《高級阿拉伯語二》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆科技學(xué)院《外國史學(xué)名著選讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 淮北理工學(xué)院《社會學(xué)原理類》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶智能工程職業(yè)學(xué)院《生物統(tǒng)計與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 赤峰學(xué)院《教育史專題研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 梧州學(xué)院《現(xiàn)代舞創(chuàng)編》2023-2024學(xué)年第二學(xué)期期末試卷
- 東北林業(yè)大學(xué)《生物科學(xué)專業(yè)英語》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西航空職業(yè)技術(shù)學(xué)院《攝影報道》2023-2024學(xué)年第二學(xué)期期末試卷
- 合肥共達(dá)職業(yè)技術(shù)學(xué)院《現(xiàn)代電子測量技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 內(nèi)蒙古工業(yè)大學(xué)《概率論與數(shù)據(jù)統(tǒng)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 地下室車庫綜合管線施工布置
- 月度及年度績效考核管理辦法
- 采購訂單模板
- 畢業(yè)設(shè)計鋼筋彎曲機(jī)的結(jié)構(gòu)設(shè)計
- 工程結(jié)構(gòu)質(zhì)量特色介紹
- 清華大學(xué)MBA課程——運(yùn)籌學(xué)
- 濕法冶金浸出凈化和沉積PPT課件
- 生產(chǎn)現(xiàn)場作業(yè)十不干PPT課件
- 雨污水管網(wǎng)勞務(wù)施工分包合同
- 通信桿路工程施工
- 初中物理光學(xué)經(jīng)典題(共23頁)
評論
0/150
提交評論