人工測試

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

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

自動化測試

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

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

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

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

自動化測試金字塔

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

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

2.API Tests:接口測試。當(dāng)下提供的大都是HTTP API,相對穩(wěn)定,適合自動化測試;

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

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

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

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

持續(xù)集成的做法

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

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

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

持續(xù)交付

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

采用敏捷測試模式

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

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

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

測試策略

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

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

3.WEB/APP的性能,安全性測試以工具測試為主;要不斷發(fā)現(xiàn)、開發(fā)和學(xué)習(xí)使用各類工具,以幫助我們更有效率地完成任務(wù);

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

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

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

7.盡早測試,經(jīng)常測試,充分測試。