原創|使用教程|編輯:鄭恭琳|2021-01-20 14:27:44.153|閱讀 224 次
概述:敏捷和DevOps通常是作為一種以更少的資源來更快地完成軟件的方式而出售的。但是質量呢?在本文中,學習如何通過連續測試快速實現質量。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
敏捷和DevOps通常是作為一種以更少的資源來更快地完成軟件的方式而出售的。但是質量呢?在本文中,學習如何通過連續測試快速實現質量。
每個人都想要質量更高,速度更快的軟件。從競爭加劇和市場壓力,功能和復雜性增加到對產品質量、安全性和可靠性的更高期望,對現代軟件開發團隊的需求是巨大的。敏捷開發方法之所以經常被人們追捧,是因為它有望對變化做出更好的響應,并更好地滿足客戶需求。
但是,敏捷和DevOps經常被作為一種用更少的資源來更快地完成軟件的方式而出售,盡管這并不是故意的。實際上,隨著多達70%的IT項目失敗或未達到目標,精明的開發團隊正在尋求改善其開發實踐,以便他們不僅可以成功完成項目,而且可以為未來的迭代和產品創建可重復的流程。在本文中,我們將討論如何實現敏捷和迭代方法所需的敏捷性,而不僅要獲得最終產品,還要達到和超過質量和安全性目標的產品。
事實證明,測試既是問題所在,也是更快地獲得更好質量的解決方案。在敏捷過程中,可以縮減許多開發步驟,以便創建合理的功能來進行設計和實現;但是,集成新功能存在風險,測試范圍尚不清楚。正如我在上一篇文章中談到的那樣,測試是軟件團隊在采用敏捷方法時費勁的關鍵原因之一。團隊失去了他們追求的敏捷性,因為他們陷入了過多或不足的測試困境。
持續測試被視為解決采用DevOps和敏捷開發的軟件團隊所面臨問題的解決方案。 Wikipedia將持續測試定義為“……作為軟件交付管道的一部分執行自動測試的過程,以獲取與候選軟件版本相關的業務風險的即時反饋。”盡管定義簡單明了,但隨著時間的推移進行連續測試并對其進行優化是完全另一回事,而這就是我今天將重點介紹的內容。
理想的測試金字塔定義了在項目上投入時間和精力的最佳位置。在理想的金字塔中,您將寶貴的時間和精力投入到金字塔基礎上的全面的單元測試套件中,該單元測試由API和服務測試支持,而在金字塔的頂部,數量較少的系統和基于GUI的測試。
但是,這個金字塔經常被倒置為所謂的冰淇淋蛋筒。團隊在易碎和復雜的系統級GUI測試上花費了很多時間和精力,這些測試需要實現和集成完整的功能-導致在SDLC的早期階段無法連續執行測試。成功進行連續測試的關鍵是融化冰激凌,并專注于創建可在開發人員實施新功能時連續執行的自動化單元和API測試。
1.建立單元測試的基礎
通過自動化創建,執行和維護測試的過程,為單元測試奠定基礎。只有使單元測試的工作更易于創建和維護,開發團隊才能對所有組件采用項目范圍內的單元測試。
在測試創建、執行和管理中均采用測試自動化,從而擴展了當前的單元測試套件,以包含盡可能多的產品代碼。
2.避免依賴后期UI中心測試
避免依賴于后期的、脆弱的、以用戶界面為中心的測試,這只會導致診斷和修復最耗時,最昂貴。與其專注于自動化所有手動測試場景,不如為單元和API測試打下堅實的基礎,以確保與UI進行通信的體系結構首先是牢固的。
盡管系統級測試仍然很重要并且是必需的,但它不應該是第一位的。現在也不是時候發現關鍵的體系結構、性能和安全性問題。軟件團隊可以通過建立單元和API測試的堅實基礎來減少對這些UI和系統測試的依賴。通過遵循此處的其他建議,應在系統級測試開始之前對許多系統進行充分的驗證。
確保還使用靜態分析來分析整個代碼庫,包括舊代碼和第三方代碼,以幫助檢測測試可能遺漏的錯誤和安全漏洞。靜態分析對于執行項目編碼標準也很重要。
3.了解整個測試金字塔的代碼覆蓋率
了解整個金字塔的上下代碼覆蓋范圍以及對需求/用戶故事的可追溯性,因為沒有它,開發團隊就不會真正知道測試過什么和沒有測試過什么。另外,不了解測試范圍意味著不知道要在金字塔的每個級別上測試什么,這意味著即使是很小的更改也需要進行大量測試,這會使整個過程陷入困境。請參閱我以前的有關基于變更的測試的文章。
4.通過服務虛擬化向左移動
利用應用程序依賴項的服務虛擬化,可以在開發生命周期的更早階段進行自動化API測試。自動化程度的提高和漏洞的早期發現對于成功至關重要。提早進行API測試有助于發現系統的關鍵方面,例如性能和體系結構健全性。這也是安全測試的重要階段。
5.利用變化影響分析來加速敏捷
通過基于每個構建的變更影響分析來加速敏捷開發,以了解每次新迭代引入的風險的詳細信息。變更影響分析提供的分析對于使測試僅集中于絕對需要測試的內容而不是其他方面使用的shot彈槍方法至關重要。
只有通過基于數據的明智決策,才能進行真正的連續測試。使開發團隊專注于最少的測試集,以確保每次迭代都覆蓋適當的范圍,這是使敏捷性回歸敏捷開發方法的關鍵。
毫不奇怪,最好的入門方法是檢查測試金字塔,然后評估項目當前的位置。是否有基于每個構建運行的自動化單元測試的堅實基礎?是否有盡可能多的產品API經過自動化測試?是否使用虛擬化?測試是否依賴于一套復雜的手動UI測試套件,這些套件要等到系統即將完成后才能運行?改進之路基于構建適當的測試金字塔,自動化以及數據收集和分析。
現代軟件開發團隊承受的巨大壓力使按時按規范構建產品變得困難。諸如敏捷開發之類的新開發方法已幫助團隊專注于為客戶構建正確的東西,但是項目仍為時已晚且容易出錯,而測試是繼續困擾現代開發方法的開發的關鍵方面。要獲得重大改進,請采用自動化單元測試的堅實基礎,并盡早(通常通過服務虛擬化)執行API測試。而且不要忘記,通過使用來自高級軟件測試分析的數據來驅動測試管理,測試結果會大大改善。
將您的冰淇淋蛋筒變成金字塔
通過連續測試快速實現質量的五個步驟
改善之路
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn