2019年11月,,Google Cloud研究人員和戰(zhàn)略思想家Nicole Forsgren博士與Applitools的測試自動化顧問和自動化架構師Angie Jones進行了一次網(wǎng)絡研討會,,主要一起討論了DevOps,,持續(xù)集成和CI自動化測試策略。 一致認為,,自動化測試是產(chǎn)品交付不可或缺的一部分,。 作為DevOps基礎的CI自動化測試關于DevOps狀態(tài)報告,安吉(Angie)說: “在今年的DevOps狀態(tài)報告中返現(xiàn),,只有成熟的團隊,,才會考慮到要將自動化測試列為團隊的基礎。那么進行自動化測試意味著什么,,團隊如何才能更早地開始使用它呢,?” 軟件交付和性能 研究表明,有效的單元測試自動化是DevOps的基礎,,而版本控制則是發(fā)布管理的基礎,。 團隊經(jīng)常犯的一個錯誤是將測試推遲到了最后。成熟的團隊盡早添加了CI測試自動化-而不是完整的開發(fā)數(shù)據(jù)庫測試,,這可以在不到10分鐘的時間內運行并驗證已編寫代碼的簡單的單元測試,。 運行這些小的增量測試,可以很快為我們提供良好的快速[通過/失敗]信號,。 測試驅動開發(fā)(TDD)討論開發(fā)人員關于測試的心態(tài),引出了對測試驅動開發(fā)(TDD)的討論,。 TDD Forsgren博士指出,,一個普通的開發(fā)人員會說:“我是開發(fā)人員,而不是測試人員,?!?但是,她指出,,代碼的可測試性有助于推動開發(fā)流程,。考慮到測試而設計的代碼有助于提高下游流程(例如系統(tǒng)和功能測試)的效率,。她觀察到,,可測試的代碼更容易分解,并且可以更有效地集成到團隊流程中,。 當涉及到TDD時,,大多數(shù)開發(fā)人員會發(fā)現(xiàn)它很痛苦, Angie說,?!霸S多開發(fā)人員很清晰要開發(fā)什么,但卻認為代碼的可測試性只會減慢它們的速度,。有些人甚至覺得這很浪費時間,?!?/p> 對此,F(xiàn)orsgren博士指出:“這樣做的真正的價值-只會有利于開發(fā)人員盡快交付代碼……”,,但代碼的可測試性才是應用健壯性的保障,,也是開發(fā)人員需要接口的標準之一。 測試人員的價值通過在開發(fā)過程中擁有以測試為中心的思維方式,,測試團隊可以將重點放在未來的問題上,。 團隊與集中測試一些組織在整個團隊中推廣測試策略,試圖將測試方法標準化,。但是集成測試降低了CI的速度,,測試運行時間太長,這在某些場景下是不能容忍的 如果你有一種方法可以運行較小的小型測試,,那么你將獲得很好的快速反饋,。” CI自動化測試四個關鍵要求:CI自動化測試有四個關鍵要求:
測試用例維護當初在編寫該測試用例時,,也許該測試用例非常重要,。但是現(xiàn)在數(shù)據(jù)向我們表明,這已不再那么重要,。也許它被其他東西覆蓋了,。因此,也許我們不需要這個測試用例,。 當你不確定目前測試用例的重要性時,,這就需要進行維護了法,。如果它沒有什么價值,你可以刪除測試,?;蛘撸绻闳匀幌胍A?,請將其移至另一個版本,。 將重要的測試作為主要版本的一部分運行。 產(chǎn)品設計需要考慮可測試產(chǎn)品設計注意事項應包括測試,,因為很多團隊通常在功能開發(fā)之后才想到測試,。允許可測試的設計可以幫助團隊實現(xiàn)更高的性能。 要使產(chǎn)品可測試,,必須對其進行設計以促進產(chǎn)品各個級別的測試和自動化,。而且該過程應有助于團隊將工作分解為可測試的小塊。 Forsgren博士說:“好的架構有助于性能,。我們定義性能的方式是速度和穩(wěn)定性,。松散耦合的架構以及團隊之間的溝通和協(xié)調,使這些團隊可以進行測試,?!?/p> 為自動化騰出時間開發(fā)人員常說,我們的時間只分配給功能開發(fā),。我們沒有精力進行自動化測試,,因此它不被視為一項功能。 因此組織需要改變,,需要為自動化測試分配時間。 HP LaserJet測試用例HP LaserJet的團隊在固件方面遇到了很大的挑戰(zhàn) ,,因為每臺打印機可能有多個代碼版本,。盡管HP LaserJet的團隊僅花費其開發(fā)時間的5%來編寫新功能,花了15%到20%的時間就將代碼重新集成到了主干中,。但由于要檢查的版本數(shù)量眾多,,對于每個構建,要花一周的時間才能確定該構建是否真正成功集成,?!?/p> 如何解決呢? HP LaserJet團隊的解決方案是測試自動化,。今天,,他們在自動測試上花費了大約40%的時間,因為他們看到了自動化測試的巨大好處,。為什么,?因為之前他們經(jīng)常有質量問題,,而這需要耗費25%的時間用于產(chǎn)品支持。 HP LaserJet團隊使用自動化來提高了整個產(chǎn)品的質量,。他們幾乎消除了由于質量問題而引起的所有產(chǎn)品支持工作,。而且,他們能夠有時間進行創(chuàng)新,。 譯者:王延飛 原文鏈接:https:///articles/ci-test-automation-strategy |
|