作為一個Android開發(fā),前一段時間在做一些自動化測試的事兄朋,也算是研究了一個階段掐禁,大概記錄下我的想法。
自動化測試颅和,字面意思就是無人值守傅事,能自動完美的完成測試并發(fā)現(xiàn)問題的一種解決方案。對于領(lǐng)導(dǎo)峡扩、公司來說蹭越,搞一套這個貌似很爽,解放勞動力教届,節(jié)約成本响鹃。但是真是這樣嗎?至少在我看來案训,自動化測試很美好的买置,但是其也伴隨著很多不美好。
因為主要專注在客戶端萤衰,我也就描述下客戶端的例子。
容易被干擾
自動化的過程猜旬,手動執(zhí)行的流程都被一行一行可執(zhí)行代碼給替代了脆栋,代碼一條接著一條,一條道走到黑洒擦。不像人工一樣椿争,中途來個電話,還能掛掉繼續(xù)測熟嫩。當然代碼也可以繞過這些秦踪,每執(zhí)行一行代碼,判斷是否來電話了掸茅。但是還有很多情況椅邓,電量提醒,短信來了等等昧狮,不是不能做景馁,只是完美的自動化腳本不得不考慮而為此增加工作量。
業(yè)務(wù)多變
上個版本還在用的腳本逗鸣,這個版本又不能用了合住,因為頁面調(diào)整绰精,路徑變化,所以會不停的改透葛,腳本越多笨使,改起來就越麻煩。
技術(shù)問題
Android現(xiàn)在最好的方式就是通過控件ID來定位控件進行處理僚害,但是Release包硫椰,一般使用了資源ID混淆的方案,每次編譯ID都會被混淆贡珊,ID就會變化最爬。這也不是沒解,大不了保存每次編譯的mapping文件门岔,執(zhí)行腳本前對ID提前映射一下爱致。
測試腳本價值
某個腳本的價值可能抵不上你花在它身上的時間。比如一條成功率100%的用例是無用的寒随】访酰或者像以下這種情況,驗證APP是否正常啟動的用例妻往,正在被開發(fā)的APP往往每天都會被人為啟動很多次互艾,這用例顯得就沒那么重要了。
人工監(jiān)視
自動化測試雖然能自動讯泣,但是想要無人值守還是比較難纫普,需要時常有人去檢查一下是否運行正常。做得好一些的可能會有通知好渠,但是將通知功能完成也是個成本昨稼。
所以,我想說的就是自動化測試確實能節(jié)省人力拳锚,但是其前期投入假栓,編寫穩(wěn)定容錯性高的腳本,和腳本維護都是其減分項霍掺,這些都是不容忽視的匾荆。