自動化測試框架_第1頁
自動化測試框架_第2頁
自動化測試框架_第3頁
自動化測試框架_第4頁
自動化測試框架_第5頁
全文預覽已結束

下載本文檔

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

文檔簡介

1、自動化測試框架思路文章分類:綜合技術1.1. 自動化測試的優(yōu)點 提高測試效率和降低測試成本 實現快速的回歸測試,加快測試進度從而加快產品發(fā)布進度 更多的測試,提高測試覆蓋率 保證一致性 提高測試的可靠性,避免人為因素1.2. 為什么要做自動化測試框架通過以往的嘗試,發(fā)現真正實現自動化測試,并不是掌握了某個自動化測試工具,掌握了腳本的編寫技術就能夠達成,面對復雜的ERP系統(tǒng),簡單的錄制/回放并不能達到自動化測試的要求,完全通過編寫腳本的方式,工作量巨大且可維護性極差、不能復用。實現自動化就是為了能夠提升測試效率,不具備可維護性、復用性差將成為導致自動化測試失敗的最致命因素,付出巨大代價但起到的效

2、果甚微?;谝陨弦蛩夭⒔Y合行業(yè)發(fā)展思路,在正式實施自動化之前,必須搭建一套適合的自動化測試框架,將腳本能夠有效的組織、連貫應用起來,提高測試腳本的可維護性和可讀性。1.3. 希望達成的目標搭建符合以下要求的自動化測試框架,使得未來自動化測試正式實施時能夠有序、高效的開展: 高復用性 高可維護性 穩(wěn)定性 快速編寫腳本 自動執(zhí)行 正確輸出結果 能夠不斷提升自動化測試比例1.4. 實現思路分層設計:業(yè)務流程、功能點、操作組件我們在進行測試時,首先會驗證各個頁面、各個字段的正確性,到驗證功能點的正確性,再組合各個功能點進行業(yè)務邏輯、業(yè)務流程的驗證,最終確保系統(tǒng)滿足業(yè)務需求。* 對于自動化腳本,采用分層

3、的思想,先實現最底層的操作組件,通過調用操作組件、及業(yè)務邏輯實現對功能點的驗證,再通過調用業(yè)務邏輯組合功能點實現對業(yè)務流程的驗證。不同的業(yè)務流程,對于底層的操作組件、中間層的功能點函數是完全可以復用的,只是調用的業(yè)務邏輯的差異,或者是測試數據的差異性。* 盡可能做到各腳本之間具備獨立性,不相互依賴,便于進行各種基本場景的組合運行。如銷售系統(tǒng)中的選擇房間操作,在做預約、小訂、認購等操作時,都需要用到選擇房產,因此可以將選擇房產做為一個公共的操作組件,詳細描述選擇房產的操作步驟,在測試新增預約、新增小訂、新增認購等功能點時都需要調用到選擇房產的操作組件,只是業(yè)務的校驗邏輯與所選擇的數據不一致。再看

4、業(yè)務流程,新增一個小訂單后可以作廢,也可以由小訂轉認購,業(yè)務流程就有兩個:新增小訂單作廢訂單,新增小訂單轉認購,這兩個業(yè)務流程中“新增小訂單”這個功能點是一致的,可以通過調用不同的用例數據組合成不同的業(yè)務流程。腳本分離設計:對象、操作、測試數據、業(yè)務邏輯相互剝離、靈活調用對某個功能進行自動化測試,實際上就是對這個功能涉及的對象進行操作,輸入測試數據來驗證其結果的正確性,復雜的驗證點需要編寫業(yè)務邏輯。如果全部用腳本的方式編寫,針對每一條測試數據就需要編寫一份腳本,腳本量相當巨大,同時任何改動(程序、測試用例、GUI對象)都需要調整大量的腳本。為了達到可維護性、可復用性,將對象、操作、測試數據、業(yè)

5、務邏輯剝離、分開管理,通過調用關系去組合實現不同的測試用例。* 對象資源庫* 測試數據資源庫* 操作組件(描述操作步驟)* 腳本:業(yè)務邏輯分離后,如果要增加測試用例,只需要維護測試數據,如果程序修改,增加了對象,那么只需要維護對象庫、操作組件,增加對這個對象的操作。* 封裝基礎函數、基本的業(yè)務邏輯、驗證點通過對基本業(yè)務邏輯、驗證點的封裝、調用,實現快速的腳本開發(fā)如一個數據保存的功能,每一條數據在做了增、刪、改的操作后,都需要驗證保存至后臺數據庫的數據正確性,通過預期結果與數據庫實際產生的數據集進行比較驗證,在獲取數據庫實際產生的數據集的方式是通用的,只是不同的功能所要驗證的數據表、字段及Whe

6、re條件不一致,獲取數據集的方式就可以封裝成一個基礎函數,傳入不同的SQL語句做為參數即可。同時預期結果與實際結果集的比較也可以封裝為基礎函數。再如,系統(tǒng)頁面中在某些操作或條件下,部分字段是只讀不允許編輯的,或者是隱藏不顯示的,編寫腳本時需要對每一個對象寫一條語句驗證其只讀和隱藏屬性的正確性,如果將只讀和隱藏屬性的驗證進行封裝,針對每一個頁面進行驗證,那么只需要傳入這個頁面只讀或隱藏的對象名稱,調用封裝的函數執(zhí)行驗證??梢源蟠鬁p少腳本量,也更易于維護。* 有效的執(zhí)行體系* 批量、定制執(zhí)行、自動運行自動化測試真正達到提升測試效率,需要實現無人值守情況下的批量自動執(zhí)行,并且可以定制執(zhí)行。* 異常處

7、理機制腳本執(zhí)行過程中,因程序錯誤或環(huán)境問題、腳本自身問題經常會出現非預期的錯誤:如意料外的彈出窗口、發(fā)現錯誤的數據、未找到對象、輸入文件打不開或不能讀等,有些情況下當前用例出錯,并不影響后續(xù)用例的執(zhí)行,需要支持異常處理機制,終止執(zhí)行或者終止當前用例,繼續(xù)后續(xù)用例的執(zhí)行,亦或者跳過當前步驟,繼續(xù)執(zhí)行后續(xù)操作,并輸出當前的錯誤報告。* 業(yè)務數據還原初始狀態(tài)自動化測試需要循環(huán)執(zhí)行,執(zhí)行完成后,需要恢復初始狀態(tài)(主要是業(yè)務數據),以使得程序重新提交版本后能夠循環(huán)執(zhí)行,不斷的對新版本進行回歸驗證。* 版本管理隨著待驗證版本的不一致,自動化測試腳本也會不斷的更新、維護,同樣需要進行版本管理。* 結果體系*

8、 針以每條用例,輸出用例執(zhí)行結果* 針對每個檢查點,輸出詳細的檢查點執(zhí)行結果* 輸出執(zhí)行日志結構化管理對象、操作組件、基礎函數、測試數據、功能點腳本、業(yè)務流程組合,如此多的層級、調用關系,必須進行結構化管理,采用高度組織化的目錄結構、分級管理,方便進行正確及快速的調用,方便能夠快速定位、查找問題。軟件自動化測試的引入和應用關鍵字:軟件測試自動化在了解軟件測試自動化的重要意義之后,就要開始啟動軟件測試自動化進程。在進行自動化測試之前,首先要建立一個對軟件測試自動化的認識觀。軟件測試工具能提高測試效率、覆蓋率和可靠性等,軟件測試自動化雖然具有很多優(yōu)點,但它只是測試工作的一部分,是對手工測試的一種補

9、充。軟件測試自動化絕不能代替手工測試,它們各有各自的特點,其測試對象和測試范圍都不一樣:.在系統(tǒng)功能邏輯測試、驗收測試、適用性測試、涉及物理交互性測試時,多采用黑盒測試的手工測試方法。.單元測試、集成測試、系統(tǒng)負載或性能測試、穩(wěn)定性測試、可靠性測試等比較適合采用自動化刪試。.那種不穩(wěn)定軟件的測試、開發(fā)周期很短的軟件、一次性的軟件等不適合自動化測試。.工具本身并沒有想象力和靈活性,根據報道,自動測試只能發(fā)現15%的缺陷,而手工測試可以發(fā)現85%酊J缺陷。.自動化測試工具在進行功能測試時,其準確的含義是回歸測試工具,這時工具不能發(fā)現更多的新問題,但口丁以保證對已經測試過部分的準確性和客觀性。多數情

10、況下,手工測試和自動化測試應該相結合,以攝有效的方法來完成測試任務。1找準測試自動化的切入點管是自己開發(fā)測試工具,還是購買第三方現成的工具產品,當開始啟動測試自動化時,要希望一F子就能做很多事情。必須從蛀基本的測試工作切入,如驗證新構建的軟件包(Bujld)是否有嚴重的或致命的問題,即驗證構建的軟件包所有基本功能是否正常工作,或者可以從某一個模塊開始,如果這個模塊做成功了,再向其他模塊推進。2把測試開發(fā)納入整個軟件開發(fā)體系測試用例設計完成之后,就可以進行手工測試,但要用測試工具,還必須將測試用例轉化成測試腳本或編寫特殊的測試程序,測試腳本也是程序,所以應該要遵守已有的、規(guī)范的編程標準和規(guī)則。用

11、編程語言或腳本語言寫出短小的程序來產生大量的測試輸入(包括輸入數據與操作指令),或同時也按一定的邏輯規(guī)律產牛標準輸出。輸入與輸出的文件名字,同開發(fā)中其他環(huán)節(jié)一樣,進行統(tǒng)一規(guī)劃,按規(guī)定進行配對,以便進行自動化測試的結果對比分析。自動化測試應該是整個開發(fā)過程中的一個有機組成部分。自動測試要依靠配置管理來提供良好的運行環(huán)境,同時它必須要與開發(fā)中的軟件構建緊密配合a只要是程序,就可能存在缺陷,所以測試腳本或測試程序也要進行測試,在實際運杓測試之前,要保證測試工具或測試腳本的正確性。當然,并不是說要一層層的測試下去,而進入程序測試遞歸的死胡同。相對來隨,測試腳本或測試工具簡單些,其測試也容易些。一旦測試

12、中發(fā)現問題,要么是被測試的對象有問題,要么是測試腳本或測試工具有問題,總之,問題容易發(fā)現。為了使測試自動化的腳本能多次重復進行,測試用例和測試腳本要寫入數據庫,進行動態(tài)管理。3測試自動化依賴測試流程和測試用倒不管是手工測試和自動化測試,關鍵是測試流程的建立和測試用例的設計,只有在良好的測試用例基礎上,編寫測試腳本、執(zhí)行測試或運行測試腳本,才能保證測試的執(zhí)行效果。為了適合測試自動化的測試腳本的編程,可以使測試用例轉化為用例矩陣化(CaseMatcix),使測試腳本容易實現結構化。4軟件測試自動化的投入較大對于軟件測試自動化要有一個正確的理解,才能做到事半功倍e由于軟件測試自動化在前期的投入要比手

13、工測試的投入大得多,除了在購買軟件測試工具或成套工具系統(tǒng)所投八的資金(一般這類工具軟件還比較貴)和大量的人員培訓之外,還要花很多時間去寫測試腳本、維護腳本等。5進行赍源的合理調度在開發(fā)中的產品達到一定程度的時候,就應該開始進行每日構造新版本并進行自動化的驗證測試。這種做法能使軟件的開投狀態(tài)得到頻繁的更新,及早發(fā)現設計和集成的缺陷。為了充分利用時間與設備資源,下班之后進行自動的軟件構建,緊接著進行自動測試(這里多數指的是系統(tǒng)測試或回歸測試)是一個非常行之有效的方法。如果安排得好,到第二天上班時,測試結果就已經在各人的電子郵箱里面了。軟件測試框架介紹關鍵字:軟件測試測試框架在軟件測試領域,我們經常

14、會聽到測試框架。什么是軟件測試框架?在軟件測試中它起到怎樣的作用?要認識軟件測試框架,首先要對所謂框架有概念??蚣埽‵ramework)是整個或部分系統(tǒng)的可重用設計,表現為一組抽象構件及構件實例間交互的方法;另一種定義認為,框架是可被應用開發(fā)者定制的應用骨架。前者是從應用方面、而后者是從目的方面給出的定義。測試框架也是如此,測試框架出現的最終目的是花少量的資源來完成盡可能多的測試任務,所以軟件測試框架的建立以及框架的重用性方面是最值得測試人員深入探究的地方。Java測試框架、.Net測試框架、自動化測試框架、單元測試框架、集成測試框架,你是不是已經被這些名稱弄暈了?如何實現測試框架用于特殊場合

15、?本專題將就以上問題對測試框架進行全面詳解,從測試框架入門和類別,到常用框架應用和自己動手實現框架。什么是測試框架:軟件測試框架是一組自動化測試的規(guī)范、測試腳本的基礎代碼,以及測試思想、慣例的集合。可用于減少冗余代碼、提高代碼生產率、提高代碼重用性和可維護性。測試框架的好處在于:提高開發(fā)速度,提升測試代碼的執(zhí)行效率;提高軟件代碼質量,同時引入重構概念,讓代碼更干凈和富有彈性;提升系統(tǒng)的可信賴度,作為回歸測試的一種實現方法支持修復后再測試,確保代碼的正確性。常用的測試框架分類包括自動化測試框架和單元測試框架。根據所用開發(fā)平臺不同,也可使用不同的測試框架展開測試。軟件自動化測試框架的發(fā)展基于界面的

16、軟件自動化測試框架和工具的發(fā)展大致經歷了三個階段(有人也據此將測試工具分為三代):1)簡單的錄制/回放:由工具錄制并記錄操作的過程和數據形成腳本,通過回放來重復人工操作的過程。在這種模式下數據和腳本混在一起,幾乎一個測試用例對應一個腳本,維護成本很高。而且即使界面的簡單變化也需要重新錄制,腳本可重復使用的效率低。2)數據驅動(datadriven)的自動化測試:從數據文件讀取輸入數據,通過變量的參數化,將測試數據傳入測試腳本,不同的數據文件對應不同的測試用例。在這種模式下數據和腳本分離,腳本的利用率、可維護性大大提高,但受界面變化的影響仍然很大。3)關鍵字驅動(keyworddriven)的自

17、動化測試:關鍵字驅動測試是數據驅動測試的一種改進類型,它將測試邏輯按照關鍵字進行分解,形成數據文件,關鍵字對應封裝的業(yè)務邏輯。主要關鍵字包括三類:被操作對象(Item)、操作(Operation)和值(value),用面向對象形式可將其表現為Item.Operation(Value)關鍵字驅動的主要思想是:腳本與數據分離、界面元素名與測試內部對象名分離、測試描述與具體實現細節(jié)分離。相應地,軟件測試自動化腳本的類型,從低到高的發(fā)展層次是:1)線性腳本:通過錄制直接產生的線性執(zhí)行的腳本。2)結構化的腳本:具有順序、循環(huán)、分支等結構的腳本。3)共享的腳本:可以被多個測試用例使用,被其它腳本調用的腳本。4)數據驅動的腳本:數據和流程控制分離的腳本,通過讀入數據文件來驅動流程進行的腳本。5)關鍵字驅動的腳本

溫馨提示

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