前面學到的持續集成,有一個基礎技術是自動化測驗,只有測驗通過,才能完成集成;而自動化地進行測驗,則保證了持續的可操作性,這是針對代碼部分,也有針對專案的,比如單元測驗、各種回歸測驗之類,本文說的是專案部分的自動化測驗,
1、什么是自動化測驗?
自動化測驗,顧名思義,自動完成測驗作業,通過一些自動化測驗工具或自己造輪子實作模擬之前人工點點/寫寫的作業并驗證其結果完成整個測驗程序,這樣的測驗程序,便是自動化測驗,
2、如何進行自動化測驗?
自動化測驗覆寫的范圍很廣:單元測驗、集成測驗、介面測驗,GUI測驗等等都可以實作自動化執行;同時,不同的系統情況是不一樣,有的適合或是可以做GUI的自動化測驗,有的可能只適合做介面的自動化測驗,所以需要針對不同的被測專案,考慮具體在哪一個環節作自動化測驗,
比如說針對搜索引擎,前端往往比較簡單,只是一個文本框和提交按鈕,大部分的邏輯處理都是在后端完成的,這種情況做自動化的介面測驗就可以達到事半功倍的效果;如果是被測系統有很多的頁面操作,那么可以考慮GUI的自動化測驗;以上這兩種情況都不是絕對的,如果測驗資源足夠,那么在各個環節都是可以開展自動化測驗的,
此外,還有一點需要考慮的是自動化測驗的可行性,比如說對一個系統而言,做GUI測驗是最合適的,也是最有效,但是有可能通過各種工具或者是腳本很難實作GUI的自動化測驗,那么就需要考慮變通,考慮是否可以將自動化測驗調整到介面測驗或是集成測驗等環節,
實施方式,一般是采用相關工具,
3、為什么要自動化測驗?
1) 自動化測驗節約成本(根據專案)
畢竟自動化測驗確實解放了一批人力(人力成本才是IT公司最大的成本),可以讓機器沒日沒夜的執行一些重復勞動.
2)有些測驗專案手工很難實作(手工成本較高)
比如12306的壓力測驗、負載測驗,同時找那么多人去測驗不現實可以通過機器去模擬.
3)專案質量流程需要 比如版本管理需要build verify,以保證check in的code不會影響版本庫,類似于smoke test
4、自動化測驗的優缺點
1)優點
避免測驗人員因重復勞動產生厭倦
提高測驗效率
保證每次測驗地一致性和可重復性
更好的利用無人值守時間
進行一些手工無法進行的測驗
維護成本相對比較高
2)缺點
系統開發時間不一定能縮短
沒有手工測驗發現缺陷多
UI layout issue 不容易發現
5、什么樣的專案適合應用自動化測驗
有以下幾個特點的專案比較適合自動化測驗(這里說的自動化測驗,是針對專案的單元測驗、各種回歸測驗,至于對代碼的持續集成的自動化測驗,則任何專案都應該有):
1) 專案變動少
2) 周期長
3)專案資源足夠(自動化不是一個人完成的,需要一幫人長期維護)
自動化測驗并非只是做與不做這么簡單,而是需要考慮成本投入與效果產出,不管是做軟體、做系統、還是做網站,最終的目的基本上都是要盈利的,要盈利就必須控制成本,提高利潤,所以在測驗作業中也必須考慮到成本投入,如何確定系統是否適合做自動化測驗呢?有人認為主要考慮當前的被測專案是長期的還是短期?如果被測專案是在今后半年或者幾年間要不斷進行開發維護的,那么就需要重復的進行大量的回歸測驗,這種情況下如果有自動化的回歸測驗體系就可以節省成本投入;如果被測專案是短期的,比如說一個月,或幾個月,同時如果開發自動化測驗又不是很容易,也沒有足夠的時間去做這件事,那么就完全沒有必要作自動化測驗,費盡力氣做出的自動化測驗腳本,可能只會用到一次或兩次,這樣就很不值得,
舉例說明:
互聯網專案,一周內要上線,你不上線別人上線人家就不用你的,專案周期短,變動快,你自動化還沒做好,專案說不定就下線了,比如某寶雙12活動相關專案,一周之內就下線了, 適合做自動化測驗的專案,比如某寶客戶端,每個release,大部分功能都不變,并且3-5年內專案不會下線,這個就比較適合自動化,
1、點贊,防止以后找不到,想看的時候,在自己主頁就能找到了,很方便;
2、關注我,讓我們成為長期關系,下一個視頻會分享更多的硬核干貨;
3、本文章學習資源,均可以免費分享,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/275692.html
標籤:其他
下一篇:有哪些是程式員才懂的梗?
