• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 自動化測試(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

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>