-
什麼是自動化測試?
- 概念:自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了測試用例并通過評審之後,由測試人員根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。在此過程中,為了節省人力、時間或硬體資源,提高測試效率。
- 本質:程式設計測試,即編寫一個程式測試另一個程式。
- 過程:錄制腳本——修改錄制腳本——回放腳本——檢視報告
-
手工測試和自動化測試的差別?
- 手工測試:測試人員手工測試用例,執行測試用例并進行結果校驗。
- 自動化測試:通過程式編寫測試用例,執行測試用例并進行結果校驗。
-
為什麼要自動化測試?
假如能夠有一個成熟的解決方案來代替我們傳統人工的測試過程,那麼這将能夠節省大量的人力成本和時間成本。
-
自動化包括三個方面:
單元自動化測試(資料處理層):指對軟體中最小的可測試單元進行檢查和驗證,一般需要借助單元測試架構,如java的 Junit、TestNG,python的unittest,常見的手段是code review等;
接口自動化測試(業務邏輯層):主要檢查驗證子產品間的調用傳回以及不同系統、服務間的資料交換,常見的接口測試工具 有 postman、jmeter、loadrunner等;
UI自動化測試(GUI界面層):UI層是使用者使用産品的入口,所有功能通過這一層提供給使用者,測試工作大多集中在這一 層,常見的測試工具有UFT、Robot Framework、Selenium、Appium等;
小測試(Unit):占比70%;
中測試(Service):占比20%;
大測試(UI):占比10%;
-
自動化測試分類
功能自動化測試、性能自動化測試、 接口自動化
-
什麼樣的項目适合自動化測試
如上圖所示,真正工作中無法全部滿足以上條件,是以需要作出權衡,一般來說,隻需要滿足以下幾點,就可以對項目開展自動化測試(圖中紅色框标注的選項):
①需求穩定,不會頻繁變更
自動化測試最大的挑戰就是需求的變化,而自動化腳本本身就需要修改、擴充、debug,去适應新的功能,如果投入産出比太低,那麼自動化測試也失去了其價值和意義;
折中的做法是選擇相對穩定的子產品和功能進行自動化測試,變動較大、需求變更較頻繁的部分用手工測試;
②多平台運作,組合周遊型、大量的重複任務
測試資料、測試用例、自動化腳本的重用性和移植性較強,降低成本,提高效率和價值;
③軟體維護周期長,有生命力
自動化測試的需求穩定性要求、自動化架構的設計、腳本開發與調試均需要時間,這其實也是一個軟體開發過程,如果項目周期較短,沒有足夠的時間去支援這一過程,那自動化測試也就不需要了;
④被測系統開發較為規範,可測試性強
主要出于這幾點考慮:被測試系統的架構差異、測試技術和工具的适應性、測試人員的能力能否設計開發出适應差異的自動化測試架構
-
自動化測試适合的場所分析-産品的開發周期?
-
環境準備:
-
常用到的自動化測試工具簡介
- ---SDKTool
- ---Monkey
- ---MonkeyRunner
- ---Instrumentation
- ----Robotium
- ---UIAutomator
- ---Appium