原創|行業資訊|編輯:鄭恭琳|2020-11-26 13:51:54.387|閱讀 165 次
概述:開發團隊執行回歸測試,以驗證軟件應用程序中的代碼更改(修復錯誤或添加新功能)不會導致引入其他錯誤或破壞現有系統的任何功能。 對于許多(如果不是大多數)嵌入式系統,團隊將在生命周期結束時執行回歸測試,以確定每個軟件版本的穩定性。這是一個反復的過程,一直持續到項目達到開發結束或維護結束為止。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
開發團隊執行回歸測試,以驗證軟件應用程序中的代碼更改(修復錯誤或添加新功能)不會導致引入其他錯誤或破壞現有系統的任何功能。
對于許多(如果不是大多數)嵌入式系統,團隊將在生命周期結束時執行回歸測試,以確定每個軟件版本的穩定性。這是一個反復的過程,一直持續到項目達到開發結束或維護結束為止。
在其他工作流程中,回歸測試是開發人員日常工作。實際上,可以說在迭代和敏捷過程中,大多數測試是回歸測試。在繼續進行之前,讓我們看一下什么是回歸測試以及為什么它在軟件開發實踐中占如此重要的地位。
回歸是“趨勢或向低于或低于完美狀態的轉變”,這是我們在開發軟件時都力求避免的事情。回歸測試有助于發現缺陷,這些缺陷在我們添加新功能、修復錯誤以及對測試用例本身進行更改時會滲入我們的軟件中。
作為大多數軟件開發過程的一部分,開發人員在對軟件進行更改后執行回歸測試。這些測試確定新的更改是否對軟件的現有操作有影響。
當然,回歸測試是必要的,但是它們僅表明最近的代碼更改并未導致測試失敗。無法保證所做的更改會自動生效。此外,激發進行回歸測試需求的變更的性質可能會超出當前應用程序的范圍,包括硬件、操作系統和操作環境的變更。
由于嵌入式系統往往具有對安全性至關重要的約束,因此開發團隊對系統或子系統進行回歸測試。測試可以說在系統或子系統的每個迭代生命周期的結尾進行。這意味著必須執行為先前軟件系統或子系統版本定義的所有單元測試用例,以及為驗證新功能而添加的新單元測試用例,以便在軟件中顯示回歸。
如果先前的單元測試用例通過但現在失敗了,則可能已經確定了潛在的回歸。新功能可能會導致故障。如果是這種情況,則可能需要考慮輸入和輸出值的更改來更新測試用例。
了解回歸測試不僅僅意味著單元測試用例,這一點也至關重要。嵌入式系統的回歸測試還包括執行集成測試用例、系統測試用例、性能測試用例、壓力測試用例等。實際上,開發人員應執行所有先前創建的測試用例,以確保:
兩者都是至關重要的,因為每個新的軟件系統或子系統版本都是在其先前版本的基礎上構建或開發的。如果您沒有堅實的基礎,那么整個事情都會崩潰。
Parasoft C/C++test可以自動生成測試用例。將它們與手動創建的測試用例結合在一起將產生一個集合集:一個測試套件。開發人員和測試人員執行測試套件以識別應用程序缺陷。
Parasoft C/C++test捕獲測試結果并確定分析和修復失敗的原因。在此初始周期之后,團隊可以將現有的測試用例或測試套件重新用于回歸測試。
該圖表顯示了新的單元測試如何在驗證后成為回歸測試,而回歸測試是隨著時間的推移累積的測試。
每個新的單元測試一旦通過驗證,便會成為將來的回歸測試。回歸測試是一段時間內的累積測試。
敏捷開發中的回歸測試
很明顯,需要對軟件的更新和更改進行測試。從這個意義上講,回歸測試是開發過程中顯而易見的一步。在具有敏捷流程以及持續集成和部署的現代軟件開發中,回歸測試成為每個周期中的關鍵步驟。
隨著軟件的發展,回歸測試套件也在發展。隨著套件的增長,執行和調試時間也會增加,并且通常會成為管道的瓶頸。如果沒有重點和簡化的回歸測試,就很難進行敏捷開發和簡化的DevOps流程。
嵌入式設備的回歸測試
在嵌入式系統上工作會增加測試的另一個維度,因為通常更傾向于或要求在目標硬件上執行測試。由于在嵌入式目標上啟動和觀察測試的復雜性,回歸測試可能更具挑戰性。此外,由于這些目標系統的高昂成本,軟件團隊對目標硬件的訪問受到限制。
因此,部署一個可重用和可配置的測試自動化解決方案,該解決方案可以從主機和/或虛擬系統上的執行連續無縫過渡,并可以在目標系統上進行驗證和確認,從而節省了大量的資源、時間和資源成本。
開發團隊可以使用Parasoft C/C++test在主機平臺,目標處理器模擬器或嵌入式目標上執行單元測試。經過優化,Parasoft C/C++test的測試工具以二進制代碼或處理周期的形式花費最少的額外開銷,以源代碼的形式出現。這意味著團隊可以針對所需的特定于平臺的修改進行自定義。這是必需的,因為從目標系統收集測試結果和代碼覆蓋率數據對于安全性和安全性至關重要的系統至關重要,并且是DO-178B/C,ISO 26262,IEC 62304等過程標準所要求的。
在Parasoft C/C++test中從主機到目標部署、執行和觀察測試的高級視圖。
此外,Parasoft C/C++test提供了與嵌入式IDE和調試器的專用集成,從而使測試用例的執行過程變得流暢且自動化。受支持的IDE環境包括Eclipse,VS Code,Green Hills Multi,Wind River Workbench,IAR EW,ARM MDK,ARM DS-5,TI CCS,Visual Studio等。請參閱所有Parasoft C/C++test技術規范。
回歸測試的關鍵挑戰是確定要測試的應用程序的哪些部分。如果對最近的代碼更改的影響存有疑問,默認情況下默認運行所有回歸測試并不罕見。就是“全有或全無”的方法。但是,對于大型軟件項目,這將成為一項艱巨的任務,并拖累了團隊的生產力。這種無法集中測試的特性阻礙了迭代和連續過程的許多好處——在測試目標有限的嵌入式軟件中可能會加劇這種情況。
需要一種方法來確定需要重新執行哪些測試,并將測試工作(單元測試、自動功能測試和手動測試)集中在驗證受最新更改影響的功能和相關代碼上。通過結合使用專有的覆蓋范圍分析引擎(C和C++的C/C++test,Java的Jtest和C#的dotTEST)和Parasoft DTP中的過程智能引擎(PIE),開發人員和測試人員可以了解其中的變化。兩次構建之間的代碼庫以及更高的效率,實現了敏捷的承諾。這種智能測試執行的形式稱為測試影響分析(有時稱為基于變更的測試)。
通過測試影響分析了解代碼更改對測試的影響
測試影響分析使用在測試運行期間收集的數據以及內部版本之間的代碼更改來確定哪些文件已更改以及哪些特定測試涉及這些文件。的分析引擎可以分析兩次構建之間的差異,并確定要執行的回歸測試的子集。它還了解對修改后的單元的依賴性,以確定對其他單元進行的更改會受到何種波紋影響。
Parasoft C/C++test,Jtest和dotTest可以洞悉軟件更改的影響,并提供有關在何處添加測試以及在何處運行更多回歸測試的建議。請參閱下面的示例基于更改的測試報告。
Parasoft DTP的基于更改的測試報告的示例。它顯示了已測試和未測試的代碼區域。
回歸測試更早或更頻繁
通過測試影響分析簡化回歸測試,可大大降低測試的總體負擔。它使開發人員和測試人員可以僅專注于受影響的代碼和測試。結果?
回歸測試不再是負擔,而是提高產品質量和安全性的關鍵步驟。它生成度量標準以幫助度量質量,安全性和總體進度。
借助最新的工具支持和基于目標的測試,開發人員在創建代碼后也可以立即開始進行回歸測試。隨著時間的推移,每個新的單元測試都將成為回歸測試,開發人員可以立即利用基于變更的測試。
盡早進行回歸測試(將其移至開發時間表的左側)意味著可以更早地發現缺陷。向左移動可立即節省時間和金錢。在軟件生命周期的后期,它會帶來更多回報。
不要小看這個收益。這樣可以節省大量下游成本。在SDLC中盡早發現缺陷可以降低修復成本,并減少對下游活動的影響。查看下圖。
回歸測試是嵌入式軟件測試的核心活動。每個新添加的功能,錯誤修復或配置更改都需要進行測試,以確認已經起作用并繼續起作用。但是,隨著項目的增長和軟件復雜性的增長,回歸測試的數量也隨之增長。
最終,測試自動化對于幫助處理測試負擔變得必要。智能測試執行等新技術使回歸測試更加容易。它促使開發人員和測試人員專注于專門測試已更改和受影響的代碼的測試。
將敏捷,CI/CD和DevOps等流程改進與軟件測試自動化相結合,幾乎可以在編寫代碼后就開始進行回歸測試。它可以有效地將測試向左移動,并在更便宜且更易于修復時發現錯誤。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn