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