翻譯|使用教程|編輯:況魚杰|2020-11-20 11:16:47.757|閱讀 417 次
概述:開發團隊進行回歸測試,以驗證軟件應用程序中的代碼變化(修復錯誤或添加新功能)不會導致引入另一個錯誤或破壞現有系統的任何功能。本文將會告訴大家什么是回歸測試,以及為什么它在軟件開發實踐中占有如此重要的地位。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
開發團隊進行回歸測試,以驗證軟件應用程序中的代碼變化(修復錯誤或添加新功能)不會導致引入另一個錯誤或破壞現有系統的任何功能。
對于許多嵌入式系統,團隊在生命周期結束時進行回歸測試,以確定每個軟件版本發布的穩定性。這是一個反復的過程,一直持續到項目達到開發結束或維護結束。在其他工作流程中,回歸測試是開發人員日常的現實活動。事實上,可以說在迭代和敏捷過程中,大部分測試都是回歸測試。在進一步探討之前,我們先來看看什么是回歸測試,以及為什么它在軟件開發實踐中占有如此重要的地位。
回歸是指 "向較低或不完美狀態的趨勢或轉變"--這也是在開發軟件時都在努力避免的。回歸測試有助于發現在添加新功能、修復錯誤時,以及在對測試用例本身進行更改時,潛入軟件中的缺陷。作為大多數軟件開發過程的一部分,開發人員在對軟件進行更改后要進行回歸測試。這些測試確定新的更改是否對軟件的現有運行產生了影響。
當然,回歸測試是必要的,但它們只是表明最近的代碼變化沒有導致測試失敗。并不能保證這些變化本身是有效的。此外,促使需要做回歸測試的變化的性質可能會超出當前應用程序的范圍,包括硬件、操作系統和運行環境的變化。
由于嵌入式系統往往有對安全和安保至關重要的限制,開發團隊要對系統或子系統進行回歸測試,測試可以說是在系統或子系統的每個迭代生命周期結束時進行。這意味著必須執行所有為前一個軟件系統或子系統版本定義的單元測試用例,加上為驗證新功能而增加的新單元測試用例,以暴露軟件中的回歸。
如果以前的單元測試用例通過了,現在卻失敗了,那么可能已經發現了一個潛在的回歸。新功能可能會導致失敗。如果是這種情況,那么測試用例可能需要考慮輸入和輸出值的變化而進行更新。同樣至關重要的是,要明白回歸測試不僅僅意味著單元測試用例。嵌入式系統的回歸測試還包括集成測試用例、系統測試用例、性能測試用例、壓力測試用例等的執行。事實上,開發人員應該執行所有之前創建的測試用例,以確保:
這兩點都很關鍵,因為每一個新的軟件系統或子系統的發布都是建立在前一個版本的基礎上或開發的。如果你沒有一個堅實的基礎,整個系統就會崩潰。
Parasoft C/C++test 可以自動生成測試用例。將它們與手動創建的測試用例結合起來,就會形成一個集合:測試套件。開發人員和測試人員執行測試套件來識別應用程序的缺陷。Parasoft C/C++test 捕獲測試結果,并識別出故障,進行分析和修復。在這個初始周期之后,團隊可以重復使用現有的測試用例或測試套件進行回歸測試。
可能很明顯的是,軟件的更新和更改需要進行測試。從這個意義上說,回歸測試是開發過程中一個明顯的步驟。在具有敏捷流程和持續集成和部署的現代軟件開發中,回歸測試成為每個周期的關鍵步驟。隨著軟件的增長,回歸測試的套件也在增長。隨著套件的增長,執行和調試時間也在增長,往往是管道的瓶頸。如果沒有專注和精簡的回歸測試,很難擁有敏捷開發和精簡的DevOps管道。
在嵌入式系統上工作會給測試增加另一個維度,因為在目標硬件上執行測試往往是可取的,或者是必須的。由于在嵌入式目標上啟動和觀察測試的復雜性,回歸測試可能更具挑戰性。再加上由于這些目標系統的高成本,軟件團隊獲得目標硬件的機會有限。因此,建立一個可重用和可配置的測試自動化解決方案,可以從主機和/或虛擬系統上的執行--以及目標系統上的驗證和確認--以連續的方式無縫過渡,可以大大節省資源、時間和成本。
開發團隊可以使用Parasoft C/C++test 在主機平臺、目標處理器模擬器或嵌入式目標上執行單元測試。Parasoft C/C++test 經過優化,以最小的二進制足跡或進程周期的額外開銷,Parasoft C/C++test 的測試線束以源代碼的形式出現。這意味著團隊可以針對所需的平臺特定修改進行定制。這一點很有必要,因為從目標系統中收集測試結果和代碼覆蓋率數據對安全和安全關鍵型系統至關重要,并且是DO-178B/C、ISO 26262、IEC 62304等流程標準所要求的。
此外,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 技術規范。
回歸測試的關鍵挑戰是確定測試應用程序的哪些部分。當對最近的代碼更改的影響有疑問時,默認運行所有回歸測試并不罕見。這就是那種 "全有或全無 "的方法。然而,對于大型軟件項目來說,這就成了一項巨大的工程,拖累了團隊的生產力。這種無法集中測試的情況阻礙了迭代和持續流程的許多好處--在測試目標是有限資源的嵌入式軟件中可能會更加嚴重。
我們需要的是一種方法來確定哪些測試需要重新執行,并將測試工作(單元測試、自動功能測試和手動測試)集中在驗證受最新變化影響的功能和相關代碼上。利用Parasoft專有的覆蓋率分析引擎(C/C++test for C & C++、Jtest for Java和dotTEST for C#)和Parasoft DTP內的過程智能引擎(PIE)的組合,開發人員和測試人員可以了解代碼庫在兩次構建之間的變化,通過這種效率的提高,實現敏捷的承諾。這種形式的智能測試執行被稱為測試影響分析(有時也被稱為基于變化的測試)。
測試影響分析使用測試運行期間收集的數據和兩次構建之間的代碼變化來確定哪些文件發生了變化,哪些特定的測試觸及了這些文件。Parasoft的分析引擎可以分析兩次構建之間的delta,并確定要執行的回歸測試子集。它還能理解修改后的單元的依賴性,以確定對其他單元的改動會產生什么波及。
Parasoft C/C++test、Jtest 和 dotTest 可以深入了解軟件變更的影響,并提供建議,以確定在哪些地方增加測試,在哪些地方運行更多的回歸測試。請看下面基于變更的測試報告示例。
通過測試影響分析簡化回歸測試,大大降低了測試的整體負擔。它使開發人員和測試人員能夠只關注受影響的代碼和測試。結果是什么?
回歸測試不再是一種負擔,而是提高產品質量和安全性的關鍵步驟。它產生的指標有助于衡量質量、安全性和整體進度。
通過最先進的工具支持和基于目標的測試,還可以在開發人員創建代碼時就開始回歸測試。隨著時間的推移,每個新的單元測試都會成為回歸測試,開發人員可以立即利用基于變化的測試。盡早進行回歸測試(將其轉移到開發時間線的左側)意味著更早地發現缺陷。向左移動可以立即節省時間和金錢。在軟件生命周期的后期,它的回報率甚至更高。不要小看這種回報。它可以節省大量的下游成本。在SDLC中更早地發現缺陷,可以削減修復成本,減少對下游活動的影響。請看下圖。
回歸測試是嵌入式軟件測試的核心活動。每一個新增加的功能、錯誤修復或配置變更都需要進行測試,以確認哪些功能已經在工作并繼續工作。然而,隨著項目的增長和軟件復雜性的增加,回歸測試的數量也在增加。最終,測試自動化成為幫助處理測試負擔的必要手段。智能測試執行等新技術讓回歸測試變得更容易。它促使開發人員和測試人員專注于專門測試更改和受影響代碼的測試。
將敏捷、CI/CD和DevOps等流程改進與軟件測試自動化相結合,使得幾乎在代碼寫好后就開始回歸測試成為可能。它有效地將測試轉移到左邊,并在成本更低、更容易修復的情況下更早地發現錯誤。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: