【刷題】麪筋-測開-自動化測試原理與框架

目錄

自動化測試

  • 概述

    • 自動化測試,就是把以人爲驅動的測試行爲轉化爲機器執行的過程。
    • 自動化測試每每經過一些測試工具或框架,編寫自動化測試用例,來模擬手工測試過程。
    • 階段:通常落後於新功能的手工測試階段,能夠在手工用例執行完成或功能上線後,再補充。
  • 分類

    • 自動化測試廣義說法包括,白盒自動化測試,GUI自動化測試,性能自動化測試
    • GUI自動化測試的原理:經過軟件模擬用戶實際的鼠標和鍵盤操做,實現自動化執行和操做的過程。
    • 性能自動化測試的原理:經過客戶端模擬多個虛擬用戶併發請求,來檢驗服務器的性能行爲是否知足系統要求。
  • 自動化測試的優勢:

    • 一、經過錄制,編寫腳本執行測試,減小回歸測試
    • 二、執行手工測試困難,或不可能作得測試,(模擬多個用戶併發測試)
    • 三、更好的利用資源,(將繁瑣的任務自動化,利用晚上或週末的時間進行執行自動化測試)
    • 四、測試具備一致性和可重複性,(重複屢次相同的測試,在不一樣配置下執行,能夠在不一樣的操做系統測試)
    • 五、測試的複用性
    • 六、縮短測試的時間和週期
  • 自動化測試侷限:

    • 一、不能取代手工測試:手工測試比自動化測試發現的bug要多;
    • 二、自動化測試對測試人員的要求相對更高;
    • 三、測試用例須要根據版本迭代進行更新,有必定維護成本;
    • 四、工具自己不具備想象力
    • 五、對測試質量的依賴性極大
  • 但願藉助自動化流程解決的問題

    • 一、測試時間緊張,手工測試可能覆蓋不全,容易錯過某些邊界狀況;
    • 二、模塊間強耦合時,單純從頁面進行測試時,比較難深刻發現問題;
    • 三、迴歸測試時,須要投入較大的人力和工時;
    • 四、實現手工測試沒法達成的測試任務,如併發;
    • 五、經過編寫測試用例,加深對業務/數據的認知,有助於下階段迭代中發現隱藏的問題。
  • 引入自動化測試的前提條件

    • 項目週期長,需求變更不頻繁;
    • 自動化測試腳本可重複使用;
    • 測試任務手工測試難以實現;
  • 作自動化測試須要具有的能力

    • 編碼能力;
    • 熟悉被測系統;
    • 掌握一個自動化測試框架/工具;
    • 不斷學習;
  • 自動化測試用例設計原則

    • 保持case的獨立性;
    • 保持case的可遷移性;
    • 提高case的執行效率;

自動化框架

  • 概述

    • 定義:爲解決某些特定問題而約束邊界,支撐整個問題解決方案,配套了一些解決問題的組件而構成的工具。
    • 特定問題:什麼問題?——自動化測試
    • 約束邊界:爲何約束?——明確測試範圍和目的
    • 解決方案:用什麼方案解決問題?——編程語言+工具+其餘
    • 構成工具的組件:哪些組件?—— 用例、腳本、數據、日誌、報告、通知
    • 工具:特色是什麼?—— 靈活性、可擴展性、高內聚低耦合
  • 圖示

  • 組件

    • Log:日誌記錄和管理功能,針對不一樣的狀況,設置不一樣的日誌級別,方便定位問題;
    • Report:測試報告生成和管理以及即時通知,測試結果快速響應;
    • Source:配置文件、靜態資源的管理,遵循高內聚低耦合原則;
    • Common:公共函數、方法以及通用操做的管理,遵循高內聚低耦合原則;
    • TestCase:測試用例管理功能,一個功能點對應一個或者多個case,儘量的提升覆蓋率;
    • TestData:測試數據管理功能,數據與腳本分離,下降維護成本,提升可移植性;
    • TestSuite:測試組件管理功能,針對不一樣場景不一樣需求,組裝構建不一樣的測試框架,遵循框架的靈活性和擴展性;
    • Statistics:測試結果統計管理功能,每次執行測試的結果統計、分析、對比以及反饋,數據驅動,爲軟件優化和流程改進,提供參考;
    • Continuous:持續集成環境,即CI環境,包括測試文件提交、掃描編譯、執行測試、生成報告及時通知等功能,持續集成是自動化測試的核心!

常見的自動化測試框架

  • 一、接口自動化框架:

    • ①、java+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine
    • ②、python+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
    • ③、python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
    • ④、jmeter+Maven/Ant+Jenkins+MySQL+testlink/redmine
  • 二、UI自動化測試框架

    • ①、java+selenium/appium+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine
    • ②、python+selenium/appium+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
    • ③、python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
  • 總結

    • 它們都擁有共同特性:編程語言+單元測試框架+掃描編譯工具+持續集成工具+數據庫+項目管理工具。
    • 編程語言:編寫測試腳本、日誌記錄和輸出;
    • 單元測試框架:提供測試腳本運行、異常校驗等一些列的配置;
    • 掃描編譯工具:測試文件掃描編譯,通常配合持續集成工具使用效果更佳;
    • 持續集成工具:Jenkins,經典的持續集成工具;
    • 數據庫:測試數據管理;
    • 項目管理工具:測試結果統計管理;
  • 面試總結

    • 框架:6項 -- 編程語言+單元測試框架+掃描編譯工具+持續集成工具+數據庫+項目管理工具。
    • 具體:10項
      • 日誌記錄和管理功能;測試報告;配置文件、靜態資源;公共函數、方法以及通用操做;測試用例;測試數據;測試組件;測試結果統計;持續集成環境。

自動化測試的流程

  • 分析自動化測試需求,通常在手工測試以後開始;
  • 根據項目的特色、選擇合適的自動化測試工具,並搭建測試環境
  • 測試用例設計和開發:設計測試用例;或提取手工測試的測試用例,轉化爲自動化測試用例
  • 開發自動化軟件測試框架和測試腳本
  • 執行:經過工具、代碼實現自動化的構造輸入、自動檢測輸出結果是否知足預期
  • 生成自動測試報告
  • 持續改進、腳本優化

遊戲自動化測試的思考

自動化測試工具腦圖






參考連接

END

相關文章
相關標籤/搜索