翻譯|行業(yè)資訊|編輯:胡濤|2024-01-17 11:15:54.167|閱讀 72 次
概述:測試影響分析使開發(fā)人員可以輕松地進行更智能的測試,而不是更困難。這里全面介紹了測試影響分析的好處以及為什么開發(fā)人員應(yīng)該將其納入他們的軟件測試?yán)讨?。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
測試影響分析使開發(fā)人員可以輕松地進行更智能的測試,而不是更困難。這里全面介紹了測試影響分析的好處以及為什么開發(fā)人員應(yīng)該將其納入他們的軟件測試?yán)讨小?
測試影響分析意味著將測試專門集中在每次迭代期間所做的更改,并自動準(zhǔn)確地測試需要測試的內(nèi)容。利用這項技術(shù)的團隊可以通過有關(guān)需要做什么的即時反饋來優(yōu)化他們的開發(fā)測試工作。
行業(yè)調(diào)查和報告經(jīng)常證實,即使在實施敏捷、DevOps 和持續(xù)集成/部署等現(xiàn)代開發(fā)流程之后,軟件測試仍然是一個瓶頸。在某些情況下,軟件團隊的測試不夠充分,必須在開發(fā)周期的后期階段處理錯誤和安全漏洞,這會產(chǎn)生一個錯誤的假設(shè),即這些新流程無法兌現(xiàn)其承諾。解決某些類別問題的一種解決方案是右移測試,它依賴于在生產(chǎn)環(huán)境中監(jiān)視應(yīng)用程序,但它需要堅如磐石的基礎(chǔ)設(shè)施,以便在出現(xiàn)嚴(yán)重缺陷時回滾新的更改。
結(jié)果,組織仍然錯過了最后期限,并且質(zhì)量和安全性受到影響。但還有更好的方法!為了更智能地進行測試,組織正在使用稱為 測試影響分析的 技術(shù)來準(zhǔn)確了解要測試的內(nèi)容。這種數(shù)據(jù)驅(qū)動的方法支持左移測試和右移測試。
任何迭代過程中的測試都是在有限的周期時間內(nèi)可以完成多少測試的折衷。在大多數(shù)項目中,不可能在每次迭代中進行完全回歸。相反,執(zhí)行一組有限的測試,并且確切地測試什么是基于最佳猜測。由于通常沒有足夠的已完成新功能可供測試,因此測試也會在周期中進行回載。生成的工作量與時間圖最終像鋸齒一樣,如圖 1 所示。在每個周期中,僅執(zhí)行一組有限的測試,直到執(zhí)行完整回歸測試的最后一個周期。
不幸的是,沒有一個項目在達到最終周期時具有零錯誤和零安全漏洞。在此階段發(fā)現(xiàn)缺陷會增加延遲,因為錯誤會被修復(fù)并重新測試。即使 存在 這些延遲,許多錯誤仍然會進入已部署的產(chǎn)品中,如下所示。
這種情況導(dǎo)致了所謂的“右移測試”的采用,即組織在部署階段繼續(xù)測試其應(yīng)用程序。右移測試的目的是增強和擴展測試工作,測試最適合部署階段,例如 API 監(jiān)控、切換生產(chǎn)中的功能以及從現(xiàn)實操作中檢索反饋。
重現(xiàn)真實測試環(huán)境以及在測試中使用真實數(shù)據(jù)和流量的困難導(dǎo)致團隊使用生產(chǎn)環(huán)境來監(jiān)視和測試其應(yīng)用程序。這樣做有很多 好處 ,例如,能夠使用支持容錯和性能改進的實時生產(chǎn)流量來測試應(yīng)用程序。一個常見的用例是所謂的 金絲雀發(fā)布,其中軟件的新版本首先發(fā)布給一小部分客戶,然后隨著錯誤的報告和修復(fù)而推廣到越來越大的群體。例如,Roku 就是這樣做來更新其設(shè)備固件的。
右移測試依賴于開發(fā)基礎(chǔ)設(shè)施,該基礎(chǔ)設(shè)施可以在出現(xiàn)嚴(yán)重缺陷時回滾版本。例如,金絲雀版本中的嚴(yán)重安全漏洞意味著回滾該版本,直到新的更新版本準(zhǔn)備就緒,如下圖所示:
但使用生產(chǎn)環(huán)境來監(jiān)控和測試軟件是有風(fēng)險的,當(dāng)然, 右移測試的目的從來不是取代部署前的單元、API 和 UI 測試實踐! 右移測試是一種 補充 實踐,它將持續(xù)測試的理念擴展到生產(chǎn)中。盡管如此,組織很容易濫用這個概念來證明在開發(fā)過程中進行更少的單元和 API 測試是合理的。為了防止這種情況發(fā)生,我們需要使開發(fā)階段的測試變得更容易、更高效,并生產(chǎn)出質(zhì)量更高的軟件。
大多數(shù)軟件都沒有經(jīng)過充分測試,測試內(nèi)容的決定基本上基于開發(fā)人員對關(guān)鍵功能的最佳猜測。在 SCRUM 沖刺或其他流程的迭代期間,很難確定要測試什么,因為“測試所有內(nèi)容”當(dāng)然不是一種選擇。由于時間很短,只能測試由最新功能更新的軟件部分,但具體哪些代碼受到影響通常是未知的。測試自動化有所幫助,但如果不準(zhǔn)確了解測試地點和測試內(nèi)容,測試覆蓋率就會不足。
這些缺點可以通過使用測試影響分析來克服 ,測試影響分析是對測試覆蓋率、代碼更改和依賴關(guān)系的多變量分析,可以準(zhǔn)確指出需要測試的代碼。此外,這些精確的測試可以安排并自動執(zhí)行。
測試影響分析在 IDE 內(nèi)的開發(fā)人員級別進行,收集有關(guān)哪些測試執(zhí)行哪些代碼的信息,并在開發(fā)人員更改代碼時在開發(fā)人員的 IDE 中應(yīng)用該信息,使開發(fā)人員能夠輕松識別和執(zhí)行需要執(zhí)行的特定測試。需要運行以驗證更改的代碼不會破壞任何測試。此外,跟蹤哪些受影響的測試已運行、哪些已通過、哪些已失敗,可以使開發(fā)人員輕松確定哪些測試仍需要運行,或者哪些測試已失敗并需要解決。一旦所有測試都已運行并通過,開發(fā)人員就知道可以安全地提交代碼并繼續(xù)前進。
測試影響分析在 CI/CD 流程中工作,通過無縫集成到項目的構(gòu)建系統(tǒng)(例如 Maven 或 Gradle)中,以獲得有關(guān)更改的即時反饋。測試影響分析確定自基線構(gòu)建(即最后一次夜間構(gòu)建)以來哪些代碼發(fā)生了更改,確定需要運行哪些測試來執(zhí)行該代碼,然后僅運行該測試子集。此工作流程使團隊能夠設(shè)置僅根據(jù)最近的代碼更改運行測試的 CI 作業(yè),將運行 CI 作業(yè)所需的時間從幾小時縮短到幾分鐘。
測試影響分析具有以下主要優(yōu)點:
為了大大減少開發(fā)中的測試瓶頸,并提高測試人員在每次迭代中投入的“鋸齒”工作的效率,開發(fā)團隊可以受益于測試影響分析技術(shù)。具有測試影響分析的測試自動化意味著將測試專門集中在每次迭代期間所做的更改,并自動準(zhǔn)確地測試需要測試的內(nèi)容。這些團隊通過即時反饋來優(yōu)化他們的開發(fā)中測試工作,包括需要做什么、哪些代碼未通過測試以及哪些其他代碼受到新更改的影響。
如果您目前不是Parasoft C/C++test用戶,但希望通過C/C++test 2023.2,為C、C++開發(fā)人員賦能,歡迎聯(lián)系我們。了解更多有關(guān)Parasoft產(chǎn)品咨詢,歡迎咨詢
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn