如何做好測試自動化

經過一個月的努力,實現一個不熟悉的項目的自動化終於快接近尾聲了。之前知道什麼樣的產品或項目適合做自動化,什麼樣的產品或項目不適合做自動化;而且由於自己設計過一個給人感覺很高大上的工具,自認爲對自動化比較瞭解。可這一年來經歷過兩個設計不算成功的工具,最近不斷反思,對如何更好的做自動化測試有了點新的感悟:

1. 能用現有的開源工具不要自己從頭開發一套工具。因爲開源的工具是經過很多人反覆推敲,反覆調整過的,無論從穩定性、易用性、還是設計理念上,都會比自己從零開始要優勢得多。

2. 對於不是特別緊急的項目或產品,要對其有一定的瞭解之後再做自動化,需求不瞭解是做不出好的自動化工具的。這一年,有兩個自動化測試工具的任務,兩個任務都有一個相同的特點:我Business不瞭解。這種情況下做自動化就會有以下幾個問題:

    首先,要了解Business,會花費很多時間;

    其次,列出功能點,需要做多少功能,擔心做出來的不全,所以把能列出來的都列出來。但是,如果全做了,那這個工具就註定是個失敗的工具。軟件測試中一直遵循着80-20原則,個人認爲這個理論也同樣適用於自動化測試,即20%的功能會有80%的人使用的,所以自動化設計時,首先要考慮的是這20%的功能如何先做出來,以及如何讓這20%的功能易用。

    第三,即使做出來了,易用性不好。因爲使用者的習慣與設計者的習慣往往不同,尤其在設計者對業務和使用者的習慣都不熟的情況下。

3.對於時間要求緊的項目,切記大而全,尤其對項目不瞭解的情況下。Design會隨着對產品的瞭解而逐漸改變,逐漸優化的,如果剛開始就大而全,一是無法按時完成;二是後期維護的cost比較高

舉例:這一年來我設計的第一個自動化工具就是UI測試,因爲之前的工作經驗,所以我想設計一個比較全面的,一次到位的工具,但其實對於不熟悉的產品,這種想法本身就是錯的;而且自認爲當時把驗證結果都整合在一起挺有成就感的,但現在又想做到case,工具與verifyresult分離,之前花了很多時間整合驗證結果做的工作就白做了。

4. 要做到數據,case(尤其case模板化),測試工具、結果驗證的分離,便於後期維護。現在想想,之前的公司其實也是這麼做的,但當時只知道效率比較高,還沒理解到這個高度。

5.整合成一個工具雖然重要,但是投入產出比也不容小覷。如果整合的工作量很大,那麼不整合也許是最好的選擇,凡事有度,中庸之道值得推薦。

6.個人認爲自動化測試最重要的核心是:設計一個高效的自動化框架的能力;開發能力;設計case的能力



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章