自動化測試(2)

發表于:2014-02-25來源:豆瓣作者:@行知-追尋技術之美點擊數: 標簽:自動化測試
2.4 單元 測試工具 junit 、testng 2.5 控制點和檢查點 控制點:直接輸入(參數); 間接輸入(控制返回值和狀態); 檢查點: 直接輸出(值和狀態); 間接輸出(行為

  2.4 單元測試工具

  junit 、testng

  2.5 控制點和檢查點

  控制點:直接輸入(參數); 間接輸入(控制返回值和狀態);

  檢查點: 直接輸出(值和狀態); 間接輸出(行為);

  2.6 測試替身(Test Double)

  類型: Dummy Objects、Test Stubs; Test Spies、 Mock Objects 、Fake Objects

  Dummy Objects : 測試時用于填充且不做任何事情的對象。

  Test Stubs: 替換被測代碼內部依賴的方法;

  Test Spies: 記錄測試運行的日志,比如記錄次數;

  Mock Objects : 充當Stub;和充當spies;

  Fake Objects : 生成一個專用于測試的類,實現測試中需要的方法; 應用場合: 對象所依賴的對象還未實現; 對象所依賴的對象過于復雜;

  2.7 Mock使用場合

  控制點: 被測對象依賴的某個類和方法需要實現;

  檢查點: 生成的結果依賴的某個類和方法需要實現;

  3.可測試性設計:

  依賴注入(Dependency Inject):將內部依賴改為外部傳入(參數注入、構造注入、設置函數注入),設置缺省值;

  依賴查找(Dependency Look): 在不改動原代碼的情況實現注入, 使用factory模式,使用服務定位器(service locator),使用Factory生成測試替身;

  Humble Object:在被測對象之上再封裝一層,將所有被測對象的依賴全部放入封裝對象里,即Humble Object,

  測試鉤子(test hood) :在被測對象中寫一段利于測試的代碼,如條件判斷是否走生產代碼還是測試代碼;

  4.如何讓代碼可測試:

  感知: 感知某些方法調用產生的效果和影響,主要工具:fake object 和 mock object;

  分離: 將應用其它部分分離并單獨運行,解依賴技術(代碼重構):參數適配、提取并重寫工廠方法、封裝全局應用、接口提取、實現提取;

  5.數據庫單元測試:

  測試存儲過程: 使用SQLUnit、utPLSQL;

  數據庫存取測試:僅針對存和取進行測試,用Fake Object模擬數據庫;

  6.組織和管理單元測試:

  6.1 幾種可行的單元測試管理方式:

  一個生產類一個測試類;

  一個功能一個測試類;

  一個fixture一個測試類;

  6.2 測試類命名方式:

  test+方法名+期望值

  6.3 測試執行分組:

  使用Test Suite: 分組: 基于功能分組、基于類型分組;

  使用Annotation分組(junit4或testng);

  6.4 測試文件組織:

  測試代碼和生產代碼放在一起;

  使用測試包;

  測試依賴的數據文件:使用相對路徑;

  7.單元測試質量:

  7.1 度量緯度:

  對業務的代碼行覆蓋率;

  測試執行的穩定性;

  測試運行速度(不超過30秒);

  7.2 帶來的產品質量提升:

  縮短產品發布周期;

  和系統測試階段對比發現缺陷的數量;

  04 接口測試

  1.API測試

  1.1 方法分類:

  黑盒測試方法: 驗證每個API的功能正確性;

  白盒測試方法: 考慮各個API之間的關聯性;

  場景測試: 場景是應用運行的剖面; API組合方式的測試;

  1.2 API接口的解依賴

  stub、mock、fake

  2.Http接口的web測試

  使用WebDriver的htmlDriver、htmlUnit;

  3.基礎項目(支撐其它應用,不直接面向用戶)的接口測試

  建立接口級別的測試集;

  設立可被其它應用訪問的最新版本的測試環境;

  建立測試環境的持續集成環境;

  4.持續集成與構建

  對測試進行持續集成和持續構建,監控應用的變化,確定測試范圍;

  完成系統測試和集成測試后,才進行持續集成。

原文轉自:http://www.wangyuxiong.com/archives/52292

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97