不斷髮掘自動化測試對各個團隊的附加價值,這樣才能得到來自四面八方的支持
沒有將自動化加入項目過程的自動化都達不到預期的效果
UI自動化框架
把UI自動化框架設計成一個拼圖性質的架構。把每個特性都設計成一個獨立的部分,然後組裝成UI自動化框架:
(appium/webdriver)底層操作封裝特性
Page Object特性
測試用例管理特性
測試執行引擎特性
測試報告管理特性
測試數據管理特性
keyword特性
自動化原則:
1.選擇重點業務
2.選擇較穩定的版本業務
3.目標是保證主要功能業務完整正常,而不是爲了發現更多的bug
4.並不能減少人力成本,主要作用是加快測試反饋,提高測試質量
5.錄製回放,關鍵字驅動,可視化等一般不是好的選擇,因爲他們會增加6.腳本維護的難度,增加維護成本
7.任何增加維護成本的自動化工作都是在耍流氓
如何減少自動化維護成本?
1、清晰、方便的日誌查看
2、清晰整潔的測試報告
3、快速的腳本調試
4、快速的錯誤定位方式:如截圖、錯誤日誌、錄屏
5、嚴格的腳本規範
6、在策略上,腳本慢慢上,要非常穩定了才能上線到正式環境
7、定時開展培訓分享工作,提升大家的能力。寫UI自動化不只是工作任務,更是自我提升的過程
8、要有穩定的環境、穩定網絡,可以進行網絡監控、定時重啓等等
UI自動化框架優化方案:(在不增加維護成本前提下)
1.UI自動化框架加入錄屏模塊
2.UI自動化框架加入接口請求報錯模塊
3.UI自動化框架加入接口流程對比模塊
4.UI自動化框架加入用例成功率、用例增長率等圖表展示度量模塊
5.UI自動化框架加入web平臺支持,如用例集管理,異步執行
6.UI自動化框架加入監控核心場景的性能,如網絡、啓動速度、內存消耗等
7.UI自動化框架加入報錯時取內存快照、報錯堆棧等信息
8.自動化測試環境一鍵搭建部署
UI自動化腳本可分爲3種:
1、監控腳本,監控服務器是否正常,監控每個頁面是否能正常顯示
2、主流程腳本,監控主流程是否能正常運行
3、模塊腳本,優先級較低,一般也是重點業務模塊先做
已經實現自動化的模塊可以不做手工測試了嗎?
爲了不做手工測試,就要多加很多驗證點,特別是UI的驗證點。驗證點越多,就會導致自動化越不穩定,自動化的維護成本就會越高,
你對自動化的信心就會越低,自動化的成效也會越低。所以已經實現自動化的模塊還是可能需要做手工測試。
那麼自動化測試的意義何在呢?
- 自動化用執行次數來增加價值,執行次數越多,自動化價值越大。比如執行5次剛好成本和價值等價,那麼每多執行一次,自動化的價值就越多。
- 特別是那些需要重複進行UI操作,比如適配測試,需要適配幾十個機型,是自動化去執行好呢還是一個個的手工執行好呢。
- 我們不使用自動化去保證UI的準確性,而是去進行邏輯功能的測試。比如QQ的登錄功能,我們只要驗證點擊登錄後打開了好友列表,就說明登錄成功了。就是要怎麼穩定怎麼弄。
- UI自動化主要作用是保證業務流程的貫通
- UI自動化能夠幫助我們確保不會出現一些死人的問題,比如登錄不成功,頁面打不開等等。
UI自動化公式:
自動化收益 = 有效迭代次數 x 手工測試成本
自動化成本 = 腳本創建成本 + 維護次數 x 維護調試成本 + 腳本失敗次數 x 腳本排錯成本
其他
1.測試工具、框架和自動化測試腳本本身的質量是最需要保證的,需要對測試工具、框架做單元測試
2.自動化可以模擬用戶真實的場景,如讓用戶在一個頁面等待10分鐘或鎖屏、解鎖,該app是否還生存
3.把手工用例與腳本生成的用例文檔進行對比,提示當前有哪些用例需要維護
4.在代碼集成到主幹之前或之後先執行自動化,只要用例失敗(可以設閾值),則不能集成或回滾
5.持續集成並不能消除bug,而是讓它們非常容易被發現和修復
6.自動化要集成到持續集成過程中,目的是加快測試反饋,降低測試引入、發現到修復之間的時間間隔
7.速度是評估測試價值的最重要考慮因素之一