翻譯|行業(yè)資訊|編輯:胡濤|2023-12-28 13:25:15.393|閱讀 74 次
概述:軟件開發(fā)團隊有時會遇到各種挑戰(zhàn),導致他們難以按時生產高質量的項目。在這里,我們討論了通過持續(xù)測試快速保證質量的五種策略。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
軟件開發(fā)團隊有時會遇到各種挑戰(zhàn),導致他們難以按時生產高質量的項目。在這里,我們討論了通過持續(xù)測試快速保證質量的五種策略。
每個人都想要更高質量、更快的軟件。對現(xiàn)代軟件開發(fā)團隊的要求是巨大的——從日益激烈的競爭和市場壓力、不斷增加的功能和復雜性,到對產品質量、安全性和可靠性的更高期望。敏捷開發(fā)方法經(jīng)常受到追捧,因為它有望更快地響應變化并更好地實現(xiàn)客戶需求。
但敏捷和 DevOps 經(jīng)常被作為一種用更少的資源更快地完成軟件的方式來銷售,盡管這并不是其本意。實際上,多達 70% 的 IT 項目失敗或未達到目標,聰明的開發(fā)團隊正在尋求改進他們的開發(fā)實踐,以便他們不僅可以成功完成項目,還可以為未來的迭代和產品創(chuàng)建可重復的流程。在這篇文章中,我們將討論如何實現(xiàn)敏捷和迭代方法所需的敏捷性,同時不僅實現(xiàn)最終產品,而且實現(xiàn)滿足并超越質量和安全目標的產品。
事實證明,測試既是問題也是更快地實現(xiàn)更好的代碼質量的解決方案。在敏捷過程中,可以縮小許多開發(fā)步驟,以創(chuàng)建合理的功能來設計和實現(xiàn)。然而,集成新功能存在風險,并且測試范圍尚不清楚。測試是軟件團隊在采用敏捷方法時遇到困難的關鍵原因之一。團隊會失去他們所追求的敏捷性,因為他們陷入測試過多或不足的困境。
持續(xù)測試被視為采用 DevOps 和敏捷開發(fā)的軟件團隊所面臨問題的解決方案。維基百科將持續(xù)測試定義為“……作為軟件交付管道的一部分執(zhí)行自動化測試的過程,以獲得與候選軟件發(fā)布相關的業(yè)務風險的即時反饋。” 盡管定義很簡單,但實施持續(xù)測試并隨著時間的推移對其進行優(yōu)化完全是另一回事,這就是我今天要重點討論的內容。
理想的 測試金字塔 定義了在項目中最好投入時間和精力的地方。在理想的金字塔中,您將寶貴的時間和精力投入到金字塔基礎上的一套全面的單元測試中,該測試由 API 和服務測試支持,而在金字塔的頂部,則有數(shù)量少得多的系統(tǒng)以及基于 GUI 的測試。
然而,這個金字塔經(jīng)常倒轉成我們所說的蛋卷冰淇淋。團隊在脆弱且復雜的系統(tǒng)級 GUI 測試上花費了太多的時間和精力,這些測試需要實現(xiàn)和集成完整的功能 - 導致測試在 SDLC 的早期階段無法連續(xù)執(zhí)行。實現(xiàn)成功的持續(xù)測試的關鍵是融化蛋卷并專注于創(chuàng)建自動化單元和 API 測試,這些測試可以在開發(fā)人員實現(xiàn)新功能時持續(xù)執(zhí)行。
1. 建立單元測試的基礎
通過自動創(chuàng)建、執(zhí)行和維護測試來構建單元測試的基礎。只有使單元測試工作更容易創(chuàng)建和維護,開發(fā)團隊才會對所有組件采用項目范圍的單元測試。
采用測試自動化來進行測試創(chuàng)建、執(zhí)行和管理,擴展當前的單元測試套件以包含盡可能多的產品代碼。
2. 避免依賴后期以 UI 為中心的測試
避免依賴后期、脆弱、以 UI 為中心的測試,這最終只會導致診斷和修復最耗時且成本最高。與其專注于自動化所有手動測試場景,不如投資于堅實的單元和 API 測試基礎,以確保與 UI 通信的架構首先是可靠的。
盡管系統(tǒng)級測試仍然很重要并且是必需的,但它不應該是第一位的。現(xiàn)在也不是發(fā)現(xiàn)關鍵架構、性能和安全問題的時候。軟件團隊可以通過構建堅實的單元和 API 測試基礎來減少對這些 UI 和系統(tǒng)測試的依賴。通過遵循此處的其他建議,大部分系統(tǒng)應該在系統(tǒng)級測試開始之前得到充分驗證。
確保還使用靜態(tài)分析 來分析整個代碼庫,包括遺留代碼和第三方代碼,以幫助檢測測試可能遺漏的錯誤和安全漏洞。靜態(tài)分析對于執(zhí)行項目編碼標準也很重要。
3.了解整個測試金字塔的代碼覆蓋率
了解整個金字塔上下的代碼覆蓋率,以及對需求/用戶故事的可追溯性,因為沒有它,開發(fā)團隊就不知道哪些內容已經(jīng)過測試,哪些內容尚未測試。此外,不了解測試覆蓋率意味著不知道在金字塔的每個級別要測試什么,這意味著即使很小的更改也需要大量測試,從而使整個過程陷入困境。請參閱我之前關于基于變更的測試的文章。
4. 通過服務虛擬化向左移動
利用應用程序依賴項的服務虛擬化,以便在開發(fā)生命周期的早期進行自動化 API 測試。提高自動化程度和及早發(fā)現(xiàn)錯誤對于成功至關重要。盡早推動 API 測試有助于發(fā)現(xiàn)系統(tǒng)的關鍵方面,例如性能和架構的健全性。這也是安全測試的一個重要階段。
5. 利用變革影響分析來加速敏捷
通過基于每個構建的變更影響分析來加速敏捷開發(fā),以了解每個新迭代引入的風險。變更影響分析提供的分析是使測試僅關注需要測試的內容而不是其他情況下使用的霰彈槍方法的關鍵。
只有通過基于數(shù)據(jù)的智能決策才能真正實現(xiàn)持續(xù)測試。讓開發(fā)團隊專注于最少的測試集,以確保每次迭代的正確覆蓋率,是將敏捷性帶回敏捷開發(fā)方法的關鍵。
毫不奇怪,最好的開始方法是審查測試金字塔,然后評估項目當前的狀況。
改進之路基于構建適當?shù)臏y試金字塔、自動化以及數(shù)據(jù)收集和分析。
現(xiàn)代軟件開發(fā)團隊面臨的巨大壓力使得按時、按規(guī)格構建產品變得困難。像敏捷這樣的開發(fā)方法可以幫助團隊專注于為客戶構建正確的東西,但項目仍然遲到并且容易出錯,而測試是開發(fā)的一個關鍵方面,它繼續(xù)困擾著現(xiàn)代開發(fā)方法。為了獲得顯著的改進,請采用自動化單元測試的堅實基礎,并盡早并經(jīng)常通過。不要忘記,通過使用數(shù)據(jù) 來驅動測試管理,測試結果會大大改善。
了解更多有關Parasoft產品咨詢,歡迎咨詢
本站文章除注明轉載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn