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