1.分層
分層是自動(dòng)化測試最最基礎(chǔ)的一面,小到框架的模塊分離,數(shù)據(jù)分離,大到業(yè)務(wù)形態(tài)分離,端分離.從大的方向劃分為前端,客戶端,服務(wù)端,大數(shù)據(jù)等等.從層次上又劃分為
ui-接口-單元測試
就是經(jīng)典的金字塔模型.
2.代碼復(fù)用
減少重復(fù)代碼,是代碼編寫的很基礎(chǔ)的能力,減少代碼的重復(fù)度,也成為了自動(dòng)化測試很重要的一個(gè)方面.
3.原子性
模塊與模塊之間的解耦和原子性是自動(dòng)化腳本是否健壯很重要的方面,比如Page Object Model就是自動(dòng)化測試很經(jīng)典的模型.
4.可裝飾,可適配
數(shù)據(jù)分離和可配置性是自動(dòng)化腳本維護(hù)和執(zhí)行是否快速很重要的方面常用的有json,yaml等.
5.失敗重試
任何自動(dòng)化腳本,都不可避免會(huì)出現(xiàn)由于數(shù)據(jù)錯(cuò)誤或者環(huán)境因素等運(yùn)行失敗的情況,失敗重試是需要設(shè)計(jì)的一個(gè)方面.
6.報(bào)告輸出
可視化的報(bào)告輸出,會(huì)為自動(dòng)化測試結(jié)果提供良好的閱讀和展示效果.
7.日志監(jiān)控
好的自動(dòng)化測試框架應(yīng)該可以長期穩(wěn)定的運(yùn)行,但是出了問題,如何排查,這就需要日志輸出和監(jiān)控了.
8.及時(shí)通知和預(yù)警
無論是報(bào)告輸出還是日志監(jiān)控,及時(shí)的通知和預(yù)警都是很重要的事情.那么常用的有郵件,短信,或者公司內(nèi)部的通信app.
9.aop編程
aop編程是java代碼編寫的很重要的設(shè)計(jì)思想,可以減少代碼侵入和實(shí)現(xiàn)動(dòng)態(tài)注入,像我們常用的覆蓋率就是典型的aop編程.
10.驅(qū)動(dòng)模式
關(guān)鍵字驅(qū)動(dòng)--比如各種平臺級的工具,如早期的selenium IDE,Robot Framework
數(shù)據(jù)驅(qū)動(dòng)--測試數(shù)據(jù)分離,存入單獨(dú)的文件或者數(shù)據(jù)庫中管理,如IBM的RFT
混合驅(qū)動(dòng)--關(guān)鍵字和數(shù)據(jù)雙層封裝
行為驅(qū)動(dòng)--支持自然語言作為用例驅(qū)動(dòng)
風(fēng)險(xiǎn)驅(qū)動(dòng)--無論是測試還是自動(dòng)化測試,最終交付到用戶手中,都需要保證最小化風(fēng)險(xiǎn).而大量的自動(dòng)化測試用例和敏捷測試,如何篩查失敗用例,對應(yīng)用的影響程度,需要前期根據(jù)風(fēng)險(xiǎn)級別定義用例優(yōu)先級和重要性.
11.代碼管理
git,svn是目前主流的代碼管理工具.
12.用例管理
文檔,excel,json/yaml,數(shù)據(jù)庫等都可以用來做用例管理.
13.腳本管理
json/yaml,java/python文件.
14.環(huán)境管理/設(shè)備管理
服務(wù)端的環(huán)境部署和環(huán)境治理是自動(dòng)化測試的前提.而客戶端的不同設(shè)備的管理如云測平臺,是客戶端用例執(zhí)行穩(wěn)定性的保障.
15.全自動(dòng)
加入持續(xù)化集成jenkins pipeline,實(shí)現(xiàn)全自動(dòng)和長期穩(wěn)定性是自動(dòng)化測試不懈的追求.