原創|使用教程|編輯:鄭恭琳|2020-06-12 13:45:39.887|閱讀 324 次
概述:測試影響分析意味著將測試重點放在每次迭代期間所做的更改上,并自動準確地測試需要測試的內容。利用此技術的團隊可以通過即時反饋有關需要完成的工作來優化開發中的測試工作。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
測試影響分析意味著將測試重點放在每次迭代期間所做的更改上,并自動準確地測試需要測試的內容。利用此技術的團隊可以通過即時反饋有關需要完成的工作來優化開發中的測試工作。
經過行業調查和報告的頻繁確認,即使在實施了敏捷Agile、DevOps和持續集成/部署等現代開發流程之后,軟件測試仍然是瓶頸。在某些情況下,軟件團隊的測試能力不足,并且不得不在開發周期的后期階段處理bug和安全漏洞,這錯誤地假設這些新流程無法兌現其承諾。某些問題的一種解決方案是右移測試,該測試依賴于在生產環境中監視應用程序,但是它需要堅如磐石的基礎架構才能在出現嚴重缺陷時回滾新的更改。
結果,組織仍然無法按時完成任務,質量和安全性也在遭受損失。但是有更好的方法!為了進行更明智的測試,組織正在使用一種稱為“測試影響分析”的技術來準確了解要測試的內容。這種數據驅動的方法支持左右移位測試。
任何迭代過程中的測試都是在有限的循環時間內可以進行多少測試的折衷方案。在大多數項目中,不可能對每個迭代都進行完全回歸。取而代之的是,執行一組有限的測試,而測試的內容正是基于最佳猜測。由于通常沒有足夠完整的新功能來進行測試,因此測試也被循環加載。最終的工作量與時間的關系圖就像鋸齒一樣結束,如圖1所示。在每個循環中,僅執行有限的一組測試,直到執行完整回歸測試的最后一個循環為止。
圖1:敏捷Agile過程導致測試活動“鋸齒”。只有完整的回歸周期才能進行“完整”測試。
不幸的是,沒有一個項目能夠以零錯誤和零安全漏洞到達最后一個周期。由于已修復并重新測試了錯誤,因此在此階段發現缺陷會增加延遲。即使存在所有這些延遲,仍然存在許多錯誤,如下所示。
圖2:集成和全面回歸測試永遠不會出錯。后期缺陷會導致進度計劃和成本超支。
這種情況導致采用了所謂的“右移測試”,即組織繼續在部署階段測試其應用程序。右移測試的目的是擴大和擴展測試工作,在部署階段最適合測試,例如API監視,切換生產中的功能,從實際操作中獲取反饋。
在重現現實的測試環境以及在測試中使用真實的數據和流量的困難導致團隊不得不使用生產環境來監視和測試其應用程序。這樣做有很多好處,例如,能夠使用實時生產流量測試應用程序,從而支持容錯和性能改進。一個常見的用例是所謂的canary版本,其中首先將軟件的新版本發布給一小部分客戶,然后在報告和修復錯誤時將其發布到越來越多的客戶群中。例如,Roku這樣做是為了更新其設備固件。
右移測試依賴于開發基礎架構,該基礎架構可以在發生嚴重缺陷時回滾發布。例如,金絲雀版本中存在嚴重的安全漏洞,這意味著回滾該版本,直到準備好新的更新版本為止,如您在此處的插圖中所見:
圖3:轉移權利測試依賴于可靠的開發運營基礎架構來在面對關鍵缺陷時回滾發布。
但是使用生產環境來監視和測試軟件存在風險,當然,右移測試的目的絕不是在部署之前替換單元、API和UI測試實踐!右移測試是一種補充實踐,將連續測試的理念擴展到生產中。盡管如此,組織可以輕松地濫用該概念來證明在開發期間進行更少的單元和API測試是合理的。為了防止這種情況,我們需要在開發階段進行測試,以使其更容易,更具生產力并生產質量更高的軟件。
大多數軟件尚未經過全面測試,而測試內容的決定基本上是基于開發人員對關鍵功能的最佳猜測。在SCRUM沖刺或其他過程的迭代過程中,很難確定要測試的內容,因為“測試所有內容”當然不是一種選擇。由于時間很短,因此只能測試通過最新功能更新的軟件部分,但是確切地知道受影響的代碼通常是未知的。測試自動化會有所幫助,但是如果不確切了解要在哪里進行測試,則測試覆蓋率是不夠的。
這些缺點可以通過使用測試影響分析來克服,這是對測試覆蓋率,代碼更改和相關性的多變量分析,可準確指出需要測試的代碼。此外,可以將這些確切的測試安排為自動執行。
測試影響分析在IDE中的開發人員級別上進行,收集有關哪些測試執行哪些代碼的信息,并在開發人員更改代碼時在開發人員的IDE中應用該信息,從而使開發人員能夠輕松地識別和執行特定的測試,需要運行以驗證更改后的代碼不會破壞任何測試。同樣,跟蹤哪些受影響的測試已經運行,通過了哪些以及失敗了,這使開發人員可以輕松地確定哪些測試仍然需要運行,或者哪些測試失敗了并且需要解決。一旦所有測試運行并通過,開發人員就會知道提交代碼并繼續進行是安全的。
通過無縫集成到項目的構建系統(例如Maven或Gradle)中,測試影響分析可在CI/CD流程中進行,以獲取有關更改的即時反饋。測試影響分析可確定自基線構建以來(即最近的夜間構建)更改了哪些代碼,確定需要運行哪些測試以執行該代碼,然后僅運行該測試的子集。通過此工作流程,團隊可以設置僅基于最新代碼更改運行測試的CI作業,從而將運行CI作業所需的時間從數小時縮短至數分鐘。
測試影響分析具有以下主要優點:
為了大大減少開發中的測試瓶頸,并提高測試人員在每次迭代中投入的“鋸齒”工作效率,開發團隊可以從測試影響分析技術中受益。具有測試影響分析的測試自動化意味著將測試重點放在每次迭代期間所做的更改上,并自動準確地測試需要測試的內容。這些團隊通過對需要完成的工作,哪些代碼無法通過測試以及哪些其他代碼受到新更改的影響的即時反饋,來優化其開發中的測試工作。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn