什么是自動化測試?顧名思義就是以程序測試程序,自動執行指定動作,實現測試目的。以代碼實現測試思維,以腳本替代手工執行。從簡單的獨立功能腳本到依托自動化框架運行的腳本集合都屬于自動化測試范疇。本文旨在通過討論以下幾個方面,總結自動化測試價值最大化的經驗。
一、 什么項目適合自動化測試?
實施自動化測試之前需要對軟件開發過程進行分析,以觀察其是否適合使用自動化測試。
通常需要同時滿足以下條件
1) 需求變動不頻繁
測試腳本的穩定性決定了自動化測試的維護成本。如果軟件需求變動過于頻繁,測試人員需要根據變動的需求來更新測試用例以及相關的測試腳本,而腳本的維護本身就是一個代碼開發的過程,需要修改、調試,必要的時候還要修改自動化測試的框架,如果所花費的成本不低于利用其節省的測試成本,那么自動化測試便是失敗的。
項目中的某些模塊相對穩定,而某些模塊需求變動性很大。我們便可對相對穩定的模塊進行自動化測試,而變動較大的仍是用手工測試。
2) 項目周期足夠長
自動化測試需求的確定、自動化測試框架的設計、測試腳本的編寫與調試均需要相當長的時間來完成,這樣的過程本身就是一個測試軟件的開發過程,需要較長的時間來完成。如果項目的周期比較短,沒有足夠的時間去支持這樣一個過程,那么自動化測試便成為笑談。
3) 自動化測試腳本可重復使用
如果費盡心思開發了一套近乎完美的自動化測試腳本,但是腳本的重復使用率很低,致使其間所耗費的成本大于所創造的經濟價值,自動化測試價值就無法體現,所以要求測試腳本人員在開發自動化框架和自動化腳本時需要注意到兼容性和可擴展性,盡量生成可通用的測試AW集合,測試腳本集合。
另外,在手工測試無法完成,需要投入大量時間與人力時也需要考慮引入自動化測試。
比如復雜場景構建、大壓力下測試、大量重復性測試等。
二、 自動化測試的基本流程以及注意事項
如圖1所示,自動化測試的基本流程主要包含需求分析,自動化測試計劃設計,用例設計,自動化測試框架設計與開發,腳本開發,環境搭建,整體聯調運行等。
1) 需求分析:分析哪些點需要進行自動化,在需求分析階段參與進來,在被測代碼開發階段輸出依賴點,保證自動化開發時效率更高,代碼改動更小;
2) 用例設計:建議先根據測試點設計所有用例,然后分別查看是否可以實現自動化,最后正向補充可能遺漏的自動化場景;
3) 自動化測試框架設計與開發:
自動化測試框架與軟件架構類似,定義了在使用該套腳本時需要調用哪些文件、結構,調用的過程,以及文件結構如何劃分。
而根據自動化測試用例,我們很容易能夠定位出自動化測試框架的典型要素:
a. 公用的對象。
不同的測試用例會有一些相同的對象被重復使用。這些公用的對象可被抽取出來,在編寫腳本時隨時調用。當這些對象的屬性因為需求的變更而改變時,只需要修改該對象屬性即可,而無需修改所有相關的測試腳本。
b. 公用的環境。
各測試用例也會用到相同的測試環境,將該測試環境獨立封裝,在各個測試用例中靈活調用,也能增強腳本的可維護性。
c. 公用的方法。
當測試工具沒有需要的方法時,而該方法又會被經常使用,我們便需要自己編寫該方法,以方便腳本的調用。
d. 測試數據。
一個測試用例需要執行很多個測試數據,我們便可將測試數據放在一個獨立的文件中,由測試腳本執行到該用例時讀取數據文件,從而達到數據覆蓋的目的。
在該框架中需要將這些典型要素考慮進去,在測試用例中抽取出公用的元素放入已定義的文件,設定好調用的過程。

圖1 自動化測試流程
4) 測試腳本的開發:需要注意腳本兼容性和可擴展性,盡量保證測試腳本在不同的測試環境上均可執行,在不同版本中均可達到測試效果。可擴展性即為在本腳本基礎上方便地增加測試步驟或者增加執行的循環次數等。
三、 過往自動化測試過程中的一些經驗
1) 自動化測試的資源和技術儲備
根據項目情況合理安排資源,包括物料設備和人力技術,保證能夠持續推動工作。
2) 自動化測試依賴于開發,運維,測試的配合
a. 運行測試腳本的必要條件,需要特別注明
b. 接口有變更需要開發提前需知會測試,測試進而調整接口測試腳本
c. 測試腳本需要隨時review,確認腳本實現了用例的測試意圖
3) 用例質量
用例應該能夠保證預期結果的確定性和準確性,避免出現因用例導致的腳本失敗,影響自動化測試結果的可信度,浪費大量資源去定位問題。
4) 測試腳本質量
腳本務必完全實現用例的測試意圖,腳本要方便兼容和擴展,數據集中存放,腳本內不出現寫死的輸入參數,如果腳本存在問題,但測試結果為PASS,則可能會長期掩蓋一個真實的BUG。
四、 DapuStor的自動化測試
DapuStor自驗盤片HaiShen系列,在研發過程中進行了大量的自動化測試工作,包括CI測試、開發自驗測試、性能測試、掉電測試、冒煙測試、長穩測試等,目前采用TestLink+Jenkins+RobotFrame模式實現自動化框架的設計,用例的管理,以及任務的構建和執行,通過持續的自動化構建,比較有效地保證了產品的質量,支撐了產品的研發進度。
參考資料
1. https://zhuanlan.zhihu.com/p/58470137
2. https://zhinan.sogou.com/guide/detail/?id=316513501653
3. https://baike.sogou.com/v5803755.htm?ch=zhihu.topic
|
高端微信群介紹 |
|
|
創業投資群 |
AI、IOT、芯片創始人、投資人、分析師、券商 |
|
閃存群 |
覆蓋5000多位全球華人閃存、存儲芯片精英 |
|
云計算群 |
全閃存、軟件定義存儲SDS、超融合等公有云和私有云討論 |
|
AI芯片群 |
討論AI芯片和GPU、FPGA、CPU異構計算 |
|
5G群 |
物聯網、5G芯片討論 |
|
第三代半導體群 |
氮化鎵、碳化硅等化合物半導體討論 |
|
存儲芯片群 |
DRAM、NAND、3D XPoint等各類存儲介質和主控討論 |
|
汽車電子群 |
MCU、電源、傳感器等汽車電子討論 |
|
光電器件群 |
光通信、激光器、ToF、AR、VCSEL等光電器件討論 |
|
渠道群 |
存儲和芯片產品報價、行情、渠道、供應鏈 |

< 長按識別二維碼添加好友 >
加入上述群聊
帶你走進萬物存儲、萬物智能、
萬物互聯信息革命新時代
