翻譯|行業(yè)資訊|編輯:胡濤|2023-03-21 09:58:53.690|閱讀 122 次
概述:這篇文章闡述了Parasoft C/C++test如何通過覆蓋率指導助手等自動化生產(chǎn)力功能更好地幫助測試團隊。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Parasoft是一家專門提供軟件測試解決方案的公司,Parasoft通過其經(jīng)過市場驗證的自動化軟件測試工具集成套件,幫助企業(yè)持續(xù)交付高質(zhì)量的軟件。Parasoft的技術(shù)支持嵌入式、企業(yè)和物聯(lián)網(wǎng)市場,通過將靜態(tài)代碼分析和單元測試、Web UI和API測試等所有內(nèi)容集成到交付管道中,再加上服務虛擬化和完整的代碼覆蓋率,減少了交付安全、可靠和合規(guī)軟件所需的時間、精力和成本。
在構(gòu)建關(guān)鍵系統(tǒng)時,將代碼覆蓋率結(jié)構(gòu)化是必須的,也是非常重要的。這篇文章闡述了Parasoft C/C++test如何通過覆蓋率指導助手等自動化生產(chǎn)力功能更好地幫助測試團隊。
軟件測試是軟件開發(fā)不可分割的一部分。每個開發(fā)和執(zhí)行代碼的行業(yè)都可以從使用結(jié)構(gòu)代碼覆蓋率測試工具中受益。這些工具在安全關(guān)鍵型應用的嵌入式開發(fā)行業(yè)中特別有用,在這些行業(yè)中,軟件系統(tǒng)不能出現(xiàn)故障,否則就會涉及生命危險。Parasoft C/C++test的覆蓋率指導助手能夠幫助用戶對難以捉摸又耗時的代碼創(chuàng)建測試用例。
代碼覆蓋率是一個重要且必要的條件:
我們在嵌入式安全和安全關(guān)鍵系統(tǒng)中將代碼提升到100%覆蓋率有多種目的。其中最主要的目是符合DO-178C、IEC 62304等流程標準中定義的驗證和確認(Verification & Validation)要求。
代碼覆蓋率提供的價值是對V&V(Verification & Validation)過程的提升,它可以幫助我們清除代碼中的缺陷,確保每行代碼都已執(zhí)行,從而滿足團隊或者認證的要求。這可以大大提高團隊代碼質(zhì)量的安全性和可靠性。
同樣,如果我們執(zhí)行了所有的測試用例,而只獲得了60%的覆蓋率,那么很明顯我們沒有創(chuàng)建足夠的測試用例。因此,隱藏的缺陷可能潛伏在這些未測試的部分。
另一個問題是“死代碼”。這意味著這些代碼永遠不會被執(zhí)行,因為沒有條件能夠支持這些代碼被執(zhí)行。這種情況可能發(fā)生在實現(xiàn)了某個特性/功能,但在某種條件下,這個功能需求被刪除了。如果不完全刪除這些相關(guān)的代碼,就可能會導致死代碼這種情況。在函數(shù)或方法中查找死代碼的同時,還可以突出必須解決的壞代碼。
您可以通過下面的測試方法或它們的組合方法來實現(xiàn)代碼的高覆蓋率:
單元測試
集成測試
系統(tǒng)測試
下面是Parasoft支持度較高的兩種方法:
1. 系統(tǒng)測試和單元測試的組合。首先,檢測代碼并執(zhí)行所有的系統(tǒng)測試用例,這將會產(chǎn)生比較高的覆蓋率指標。最后,使用單元測試方法來提升剩余未覆蓋代碼的覆蓋率。
2. 利用單元測試實現(xiàn)100%代碼覆蓋率。這種方法很直接。用戶創(chuàng)建單元級的測試用例,以確保對每個功能/方法被覆蓋。
覆蓋率指標有非常多種類。具體應用哪種覆蓋率指標取決于IEC 61508中定義的安全完整性等級(SIL)。另一種情況是DO-178B/C的設計保證級別(DAL)對覆蓋率指標的不同要求。對于嵌入式系統(tǒng),我們可能常用到的覆蓋率指標是語句、分支、修改條件/判定(MC/DC)覆蓋率。其中,對于那些最嚴格的要求,會包括匯編代碼的覆蓋率。Parasoft支持收集所有這些覆蓋率指標,包括其他行業(yè)名稱不同的覆蓋率指標種類,比如塊、調(diào)用、函數(shù)、路徑、判定覆蓋率等。
Parasoft C/C++test的“一鍵獲取覆蓋率”功能在對減輕團隊工作任務和減少成本方面,有著巨大作用。首先是自動生成測試用例,我們只需要單擊一下測試配置,C/C++test即可分析代碼并且自動生成智能的單元測試用例。然后我們可以執(zhí)行這些單元測試用例。根據(jù)不同代碼的大小和復雜性,團隊基本上可以達到80%左右的覆蓋率。
對于復雜的代碼,總是有一些結(jié)構(gòu)復雜的代碼語句,要覆蓋這些語句并且獲取覆蓋率是非常困難的。對于這些結(jié)構(gòu)復雜的代碼,我們可能需要根據(jù)不同的路徑或條件情況排列,設計很多組測試用例,才有可能覆蓋這些代碼,這需要花費我們大量的時間和精力。但是我們現(xiàn)在就有一個完美的解決方案,那就是Parasoft C/C++test Coverage Advisor。Parasoft C/C++test覆蓋率指導助手,可以幫我們分析結(jié)構(gòu)或條件復雜的代碼,提供給我們多組測試用例,使這些代碼更容易被覆蓋。
在編輯器中,右鍵單擊您想要覆蓋的代碼行,然后選擇Parasoft->Show in Coverage Advisor。
下圖展示了為用戶提供的多種測試用例,前置條件字段表示:
mainSensorSignal和coSensorSignal的范圍和輸入值
外部調(diào)用的預期輸出
在使用這些設置的參數(shù)值和外部調(diào)用的樁函數(shù)創(chuàng)建單元測試用例時,用戶將獲得所選行的覆蓋率。
在構(gòu)建嵌入式安全和安全關(guān)鍵型軟件系統(tǒng)時,代碼結(jié)構(gòu)覆蓋率是必須的。同時,我們可以將對應的測試用例和需求關(guān)聯(lián)上,這樣可以確保:
創(chuàng)建了足夠的測試用例來測試軟件
沒有任何死代碼
每一行代碼都經(jīng)過合規(guī)性和認證需求的檢查
Parasoft C/C++test是一個完整的軟件測試解決方案,它為團隊提供了測試方法功能和自動化生產(chǎn)能力,比如覆蓋率覆蓋率指導助手。利用這個功能,開發(fā)人員可以快速實現(xiàn)他們的代碼覆蓋率目標。相應地,管理者可以加快產(chǎn)品上市時間、保障審計和簡化產(chǎn)品認證。在向市場輸出高質(zhì)量軟件的同時,能夠降低成本投入。
了解更多有關(guān)Parasoft產(chǎn)品咨詢,歡迎咨詢
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn