人工測試

1.人工測試的重要性仍是第一位的,盡管現在自動化測試如火如荼的發展著,但很多重大缺陷依然需要通過人工測試的方式才能發現,因為測試策略才是根本,人工測試在這里充分體現出了其靈活多樣的特性,尤其是有意識的進行探索式測試;

2.一個經驗豐富,能力較強的只會人工測試的測試工程師的價值肯定大于一個一般的自動化測試工程師;

自動化測試

1. 如同業務功能測試是測試的基本能力一樣,自動化測試也正在成為測試人員的基本能力;

2.在深刻理解需求的基礎上,自動化測試用例要能體現如同文本測試用例的基本編制要求:“精煉表達、主次分明、漸進可用”;

3.自動化測試的最大用途在于執行回歸測試;

4.對一個產品/項目能做到80%的自動化測試覆蓋就很不錯了;

自動化測試金字塔

Test Automation Pyramid(測試自動化金字塔)

1.UI Tests:也稱 GUI 測試,穩定度最低,只有長期且比較穩定的產品/項目適合開展自動化UI測試;否則很可能會導致成本大于產出,甚至完全成為花瓶;

2.API Tests:接口測試。當下提供的大都是HTTP API,相對穩定,適合自動化測試;

3.UNIT Tests:穩定度最高,開發人員應該采用TDD(Test Driven Development,測試驅動開發),實在不適應也應該有相應的單元測試;

4.在這里糾正一個觀點:單元測試是測試人員來寫的。正確的應該是開發人員來編寫,對自己的行為負責!    

5. 從上圖中可以看出,單元測試應該占有最大的比例,其次是接口測試,最后才是基于圖形界面的功能測試,可是很多測試團隊都搞反了,所以結果很不理想。

6.個人建議自動化的單元測試也在短期和變化較大的產品/項目中開展;自動化的接口測試在中長期和較穩定的產品/項目中開展。

持續集成的做法

1.采用TDD或者開發人員編寫單元測試代碼;

2.采用自動化測試,尤其是自動化的全回歸測試,包括單元測試,接口測試和UI測試;

3.開發提交代碼到版本服務器后觸發條件自動取得最新代碼并自動編譯,編譯通過后自動執行其他腳本(如數據庫),接下來自動執行單元測試和接口測試,測試通過后最后自動打成安裝部署包。部署到測試環境后再開始自動化的UI回歸測試。

持續交付

1.有了自動化測試和持續集成這兩個作為前提,經過自動化部署,就可以達到持續交付。

采用敏捷測試模式

1.堅持實施Scrum,雖然會議會占用一定的時間,但這點時間對于團隊成員間的溝通和協調是必不可少的;

2.這世界變化快,編寫敏捷測用例,重點是寫出測試用例的測試點而無需詳細的操作步驟;

3.敏捷測試需要測試人員能夠隨時啟動自動化的回歸測試對馬上發布的迭代代碼進行快速驗證。

測試策略

1.APP功能以手工測試為主;當前針對APP的自動化功能測試還不夠成熟,穩定性不夠,可以繼續實施以敏捷測試用例為核心的策略,結合探索式測試;

2.WEB功能以自動化UI測試為主(短期,變化很大的產品/項目除外),結合探索式測試;

3.WEB/APP的性能,安全性測試以工具測試為主;要不斷發現、開發和學習使用各類工具,以幫助我們更有效率地完成任務;

4.WEB的兼容性測試還是人工方式,采用每個迭代內測試不同瀏覽器的方式即可;

5.APP的兼容性測試要采用第三方公司的云測試的方式;

6.開展單元測試和接口測試且最好全部實現自動化測試;

7.盡早測試,經常測試,充分測試。