成功的自动化测试实施的5大支柱(译)
?
摘要:
談到什么是組成一次自動化測試的“恰當實施”經常會關注你需要用的工具,但是那僅僅是等式的一部分。巴斯 迪杰斯特拉詳細說明了你需要考慮的其他四件事,他們如何致力于你的自動化測試的成功,以及關聯到不能適當關注它們中任一件的風險。
為了團隊指望快速傳送質量,執行自動化測試是軟件開發周期中一個重要組成部分。測試自動化,無論如何,當恰當實施時只能成功。論及什么組成測試自動化的“恰當實施”經常關注于任務必須使用的什么工具,或者最好(假如甚至有這樣一個事物)或者最高效的為給予的任務使用特定工具的方法。
依我看來,雖然,使用的工具只是整體自動化測試方程式的一個部分。任何成功的自動化測試的實施是有五個獨特的部分組成的。
在這篇文章,我們看一看這些部分的每一個,他們如何致力于你的測試自動化實施的成功,以及關聯到不能適當關注它們中任一件的風險。
1.測試自動化工具
雖然不是在成功的測試自動化實施中充當角色的唯一因素,工具顯然在你的自動化努力整體結果中起了影響。在測試下選擇一款工具不夠與你的應用相配,或者一個你的自動化團隊不適合的技能組合,將導致少于最優的結果。
甚至比選擇工具更重要的是,無論如何,問你自己到底什么是正確的在你想要覆蓋你的自動化測試里,并且再決定更高效的獲取那個結果的方法。一個需要被問到的問題的極限例子是在什么級別上一個特定的功能模塊或者業務邏輯需要被確認。
你想要確認你的用戶能打開你的網店,搜索一個特定的產品,并且接著放置并注意排序嗎?你可能將想要使用端到端的用戶接口驅動測試去檢查這個。假如你正要確認一塊邏輯的正確性以決定是否一個用戶被允許去購買一個特定的物品(比如,由于在國家或者鄉村的標準),然后你可能將能在低水平測試下寫掛鉤于你的應用程序的測試,比如一個應用程序接口或者甚至簡單的代碼分類。這組成了一個不同的為測試的范圍和方法并且,結果,需要一個不同的工具。
簡而言之,為了確定你能第一時間花時間在如何達到要求結果之前知道你的自動化測試需要驗證什么。記住在使你的工具做它并不被設計的事情里有一個重大風險。
2.測試數據
任何嚴肅的測試自動化解決方案的另一個重要的因素是管理測試數據的方法。測試范圍越廣,越重要,但是也是越要求的,測試數據管理來了。
當在單元測試里你能遠離模擬所有你的測試依賴的數據,當你開始在集成上工作時或者端到端測試,你將需要在測試下呈現你應用程序里特定的數據。并且,為了使事情更加復雜,你將經常在處于試驗階段同時在某一個特定的國家里要其他系統里的數據以與你的連通的應用程序交互。
有一些在這些測試類型中處理測試數據的方法:
- 在測試開始階段創造要求的測試數據
- 在開始測試前為了存在的測試數據去查詢系統
- 開始測試執行前在測試階段初始化你的應用程序數據庫
這些方法每一個有它的潛在危險:
- 在測試的開始階段創建測試數據增加測試執行時間,在測試本身甚至開始啟動前增加失敗的風險,并且導致很多無用的測試數據假如沒有合適的數據清理程序。
- 當你在開始測試前為存在的測試數據去查詢系統時,你啟動了偶然使用非法測試數據的風險,或者沒有有著合適的優先級出現在系統里的測試數據。
- 在測試執行前初始化數據庫讓你以數據庫快照去管理并保持更細——那便是,假如你甚至首先被允許執行一個數據庫恢復程序。
- 注意沒有合適的為集成和端到端測試的測試數據處理方法。無論如何,選擇錯誤的程序,或者根本未能定位測試數據問題,將可能導致自動化測試解決方案變得不可重復利用,不可維護,或者不可測量。
- 整塊材料正快速地重蹈恐龍的覆轍。現代信息技術系統由許多相互連通的組件,服務,和為傳遞業務價值而工作一起的應用程序組成。對測試目的,無論如何,這通常不是好消息:不得不管理和依賴于可用性的獨立性,尤其是那些在你的控制循環外的那些,為了你的集成和端到端測試能引起很多間接費用,挫折,和測試時間的延遲。依然,當你想要創造和使用自動測試作為你的測試方法的一部分時可靠性和易管理的測試環境是關鍵。
- 一個減輕失敗或者不存在的測試環境的風險的辦法是使用仿真技術比如樁,模擬,和服務虛擬化以復制在你的測試環境下關鍵性的而難獲取的獨立性的行為。做模擬真實的獨立性行為的仿真足夠完成你想要執行的測試用例能大大提升你的自動化測試速度——并且,因此,你的開發效果。
- 此外,當虛擬環境被恰當地創建(比如,通過杠桿作用集裝箱化)時,重建一個相同測試環境的新實例,有著相同的測試數據和其他特性完成,使它可能從一個自動化移向確實的持續性測試,假如你正要適應持續性的傳遞時這作為一個越靈活的方法且更好地對市場需求增長的反應繼而成為先決條件。
- 自動化測試執行作為結果生成的報告應該成為任何可靠的測試自動化方法的重要的一部分。創造好的測試結果報告經常被忽略,雖然它是潛在的時代——(和生命——)在任意測試自動化項目里節省了任務。好的報告遠超乎展示測試運行的數量,通過的,和失敗的,雖然只有它也比什么都沒有好。
- 為了使一份測試執行報告變得確實有價值,需要被執行的測試(注意為了任何好的報告清晰的命名你的測試并且不含糊的格式是基礎的)是什么可視化并且不僅是結果是什么(通過或失敗),而且萬一測試失敗一些導致錯誤的東西在哪里,盡可能精確地詳細說明。
- 這不同于由僅僅復制任何和每一個進你的測試報告帶來的提供信息過載——那不必要地延遲到引起測試失敗的根源。一份好的報告展示了錯誤的一些東西,在測試錯誤發生處(在什么步驟上),錯誤信息是什么(依賴于你的匯報觀眾,這就像堆棧跟蹤一樣簡單,但是其他案例里你可能需要提供也可被非技術人員讀的錯誤的信息),以及在測試下應用程序的狀態是在失敗的時候(比如說,為用戶接口驅動測試使用一個截圖)。
- 注意一份好的報告策略可能包含創建每一次執行超過一份報告。假如你的測試是一個可持續集成構建管道的一部分,你可能想要創建能被你的構建引擎解釋的低水平報告去決定是否繼續這個構建。但是你也可能想要以HTML格式創建一個可讀性的報告,按測試目的的原文描述完成,萬一失敗測試同時以人類-可讀信息和截圖。它都取決于觀眾。
3.測試環境
- 整塊材料正快速地重蹈恐龍的覆轍。現代信息技術系統由許多相互連通的組件,服務,和為傳遞業務價值而工作一起的應用程序組成。對測試目的,無論如何,這通常不是好消息:不得不管理和依賴于可用性的獨立性,尤其是那些在你的控制循環外的那些,為了你的集成和端到端測試能引起很多間接費用,挫折,和測試時間的延遲。依然,當你想要創造和使用自動測試作為你的測試方法的一部分時可靠性和易管理的測試環境是關鍵。
- 一個減輕失敗或者不存在的測試環境的風險的辦法是使用仿真技術比如樁,模擬,和服務虛擬化以復制在你的測試環境下關鍵性的而難獲取的獨立性的行為。做模擬真實的獨立性行為的仿真足夠完成你想要執行的測試用例能大大提升你的自動化測試速度——并且,因此,你的開發效果。
- 此外,當虛擬環境被恰當地創建(比如,通過杠桿作用集裝箱化)時,重建一個相同測試環境的新實例,有著相同的測試數據和其他特性完成,使它可能從一個自動化移向確實的持續性測試,假如你正要適應持續性的傳遞時這作為一個越靈活的方法且更好地對市場需求增長的反應繼而成為先決條件。
4.報告
- 自動化測試執行作為結果生成的報告應該成為任何可靠的測試自動化方法的重要的一部分。創造好的測試結果報告經常被忽略,雖然它是潛在的時代——(和生命——)在任意測試自動化項目里節省了任務。好的報告遠超乎展示測試運行的數量,通過的,和失敗的,雖然只有它也比什么都沒有好。
- 為了使一份測試執行報告變得確實有價值,需要被執行的測試(注意為了任何好的報告清晰的命名你的測試并且不含糊的格式是基礎的)是什么可視化并且不僅是結果是什么(通過或失敗),而且萬一測試失敗一些導致錯誤的東西在哪里,盡可能精確地詳細說明。
- 這不同于由僅僅復制任何和每一個進你的測試報告帶來的提供信息過載——那不必要地延遲到引起測試失敗的根源。一份好的報告展示了錯誤的一些東西,在測試錯誤發生處(在什么步驟上),錯誤信息是什么(依賴于你的匯報觀眾,這就像堆棧跟蹤一樣簡單,但是其他案例里你可能需要提供也可被非技術人員讀的錯誤的信息),以及在測試下應用程序的狀態是在失敗的時候(比如說,為用戶接口驅動測試使用一個截圖)。
- 注意一份好的報告策略可能包含創建每一次執行超過一份報告。假如你的測試是一個可持續集成構建管道的一部分,你可能想要創建能被你的構建引擎解釋的低水平報告去決定是否繼續這個構建。但是你也可能想要以HTML格式創建一個可讀性的報告,按測試目的的原文描述完成,萬一失敗測試同時以人類-可讀信息和截圖。它都取決于觀眾。
5.技能
最后,不可議論地最重要的,為創建一個強有力且有效的測試自動化解決方案的迷是負責實施它的人。沒有富有技能的自動化顧問,架構師,工程師,和開發關注所有其他在這篇文章里提及的測試自動化的方面,你將可能立即在任何地方結束。
你的測試自動化團隊理想地必須都是在測試領域有技能的,因此他們能回答為什么測試自動化將首先是一個合適的解決方案,同時什么測試要被自動化;并且有技能于軟件開發,意味著他們知道如何去創建一次測試自動化強有力且可維護的實施。這不意味著你的測試自動化每一個成員需要在每個領域都有技能,但是作為一個整體,你的團隊為了交付需要有一個這兩方面的健康平衡。
把它所有的放在一起
一個好的測試自動化解決方案需要關注更多不僅僅是驅動測試的工具。為了真正成功的自動化,你需要想辦法在你的測試數據策略上,在你如何管理你的測試環境上,并且在你通知你的觀眾關于你自動化的測試執行結果的方式上。最重要的是,無論如何,它是關于創建一個知道如何做所有以上的人的團隊。
轉載于:https://www.cnblogs.com/fengye151/p/11519178.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的成功的自动化测试实施的5大支柱(译)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 测试如何开始像用户那样思考(译)
- 下一篇: 在测试者的易用性测试工具套装中他们需要什