測試自動化與自動化測試:差異很重要
- 2019 年 11 月 11 日
- 筆記
當我們談論持續測試,以及持續交付和DevOps時,「自動化」一詞就泛濫了。從根本上講,我們都了解自動化的含義-使用某種技術來完成一項任務。但是,當我們從連續測試的角度談論自動化時,我們需要考慮一些細微差別。
兩種自動化測試
在一般測試尤其是連續測試的世界中,有兩種自動化類型:
- 自動化測試
- 測試自動化
儘管似乎用兩種不同的方式表達同一件事,但這些術語實際上具有截然不同的含義。
自動化測試是通過自動化(例如一組回歸測試)進行特定測試的行為,而不是手動進行,而測試自動化是指自動化跟蹤和管理不同測試的過程。
無論自動化測試和自動化測試對連續測試都很重要,但是後者的確是更重要的。
為什麼測試自動化對連續測試至關重要
要完全理解為什麼測試自動化對連續測試如此重要,必須弄清楚連續測試到底需要什麼以及為什麼會這樣。
連續測試是一種相對較新的軟件測試方法,旨在始終確保質量。
在傳統環境中,測試會在開發周期結束時完成。但是,隨着越來越多的公司朝着DevOps和連續交付模型發展,在該模型中,軟件一直在不斷開發中,並且必須始終準備就緒,可以進行測試,直到最終無法使用為止。這就是進行連續測試的地方-確保開發的每個階段的質量。
因此,對於連續測試,而不是在周期結束時進行大規模測試,它會在需要時始終以小片段形式進行。
儘管始終確保質量對於此模型至關重要,但這並不是全部。所有開發和測試發生的速度也很重要。這是因為,如果管道中的某些內容停滯或崩潰,它將阻止其他所有事情並減慢新開發的發佈。鑒於需要更快,更定期地發佈新版本,為這種持續交付和測試模型鋪平了道路,這一障礙阻礙了採用這種方法的目的。
該「如何」和「為什麼」讓組織性,一致性和速度必須支持連續的測試模型,而這也正是自動化測試可以提供幫助。在連續測試環境中管理所有測試需求是一項艱巨的任務-需要付出巨大的努力才能跟蹤哪些環境已部署了新代碼,何時需要測試每個代碼以及這些需求如何重新集成到持續不斷的移動過程中提供軟件。
測試自動化通過自動跟蹤和管理所有這些測試需求(包括不同測試覆蓋多少系統以及覆蓋所有活動部件可能需要其他類型的測試)來減輕這種負擔。
為此,測試自動化在幫助確保團隊在流水線的所有點上保持高質量標準方面大有幫助。此外,它使測試人員可以將更多的時間和精力集中在創建有效的測試用例上,以確保軟件的質量,因為他們不再為管理所有測試需求的細節所困擾。
測試自動化通過自動跟蹤和管理所有這些測試需求(包括不同測試覆蓋多少系統以及覆蓋所有活動部件可能需要其他類型的測試)來減輕這種負擔。
使測試自動化成為現實
從理論上講,測試自動化的概念非常適合在連續測試環境中運行的測試人員。但是當現實來襲時會發生什麼?
在典型的實際場景中,當測試人員需要安排和驗證測試用例時,他們:
- 與產品負責人進行溝通以收集產品要求,並提煉產品負責人要解決的問題的實質。
- 將這些產品需求分解為用戶故事,然後增加工作單位來創建功能正常的軟件。這通常需要與開發人員,分析師和操作員團隊合作。
- 編寫測試用例的組合(自動化,探索性,回歸等),以滿足這些要求的約定。
- 跟蹤每個步驟的完成進度,為每個階段運行適當的測試用例:組成功能組件的Developer分支 構成支持該功能所需的部分系統和服務的部署工件 回歸,以便對組件的更改或添加不會影響工作系統的其他方面 功能驗證,以確保產品按照產品所有者的意願進行操作並正確解決問題考慮到這種情況,測試人員真正需要使測試自動化成為現實的解決方案可以幫助自動化為特定工作項創建測試用例並安排測試運行以執行那些測試用例的過程。
理想情況下,此解決方案應允許通過以下方式實現測試自動化:
- 標記需要為其創建測試用例的工作項列表,以自動引起測試人員的注意
- 與ALM集成,以便在ALM中創建特定類型的任務時,也可以在測試自動化工具中創建該任務的副本並呈現給用戶
- 允許用戶通過邏輯容器分離和分類工作項目,如功能,組件或衝刺,以方便用戶,以確保適當的覆蓋每個管道
擁抱連續測試
隨着DevOps和持續交付模型成為常態,持續測試也將如此。而為了讓連續測試工作成功的,測試人員需要現在就開始考慮將採取什麼管理自帶的整個開發流程注入測試的變化。
顯然,測試自動化將成為連續測試人員武器庫中的關鍵武器,因為它能夠跟蹤管道中各個點上需要進行的所有不同測試。
技術類文章精選
- java一行代碼打印心形
- Linux性能監控軟件netdata中文漢化版
- 接口測試代碼覆蓋率(jacoco)方案分享
- 性能測試框架
- 如何在Linux命令行界面愉快進行性能測試
- 圖解HTTP腦圖
- 將swagger文檔自動變成測試代碼
- 五行代碼構建靜態博客
- 基於java的直線型接口測試框架初探
- JUnit中用於Selenium測試的中實踐
非技術文章精選
- 為什麼選擇軟件測試作為職業道路?
- 寫給所有人的編程思維
- 成為優秀自動化測試工程師的7個步驟
- 手動測試存在的重要原因
- 成為自動化測試的7種技能
- 功能測試與非功能測試
- 自動化和手動測試,保持平衡!
- 自動化測試生命周期
- 如何在DevOps引入自動化測試