翻譯|行業資訊|編輯:胡濤|2023-09-05 10:21:49.087|閱讀 112 次
概述:本文介紹單元測試中的打樁為何能改進集成測試,歡迎查閱~
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
我們有一個客戶,正在根據IEC 61508 功能安全標準開發一個安全關鍵型項目,他與我們聯系。要求我們提供指導,通過進一步減少單元測試產生的干擾來提高開發人員的生產力,這些干擾就是由于缺乏打樁而產生的。
我們了解到,客戶進行單元測試的方式更接近于集成測試。在他們的過程中,要測試的單元沒有與其依賴組件(項目中的其他文件或功能)隔離開來,單元測試用例是針對大多數已完成的應用程序執行的。
這種方法不是典型的單元測試。它通常被稱為集成級測試。集成測試在證明功能性和非功能性要求的良好測試覆蓋率方面非常有效。如果啟用了結構代碼覆蓋,它還可以提供出色的測試覆蓋率。試中的打樁為何能改進集成測試
單元測試的做法通常是隔離功能、方法或程序。這種隔離是通過剔除依賴性和強制執行特定的執行路徑來完成的。
打樁取代了依賴于本函數外的代碼。它還為開發人員或測試人員提供了操縱打樁響應或結果的能力,以便以各種方式和各種目的運用該單元,例如,確保該單元性能可靠,安全,并且在某些情況下,也沒有安全漏洞。
解釋為什么要使用打樁及其帶來的價值的最佳方法是通過一個用例逐步說明。例如,看看下面的代碼:
在函數的開頭,有一個if語句,用于測試樣本緩沖區是否成功分配。這個函數的大多數測試用例都是在沒有任何打樁的情況下實現的,因為它們關注的是常規的控制流,除了測試用例,它在緩沖區分配失敗時檢查函數的行為。這個測試用例要allocateSampleBuffer 函數的打樁來模擬故障。
一旦添加了打樁,它將被一致地應用到測試代碼中。在處理“分配失敗”測試用例的用戶將有一個簡單的方法將一個特殊的回調函數安裝到打樁中,這將模擬預期的效果:分配失敗或什么都不做,因為在默認情況下打樁返回一個空指針,這是測試用例的預期。但所有其他測試用例現在都需要注意,因為必須為它們添加一個打樁配置,以避免控制流中不必要的更改。
當然,開發人員可以返回并重新配置他們的測試用例來解決打樁,但這意味著要花額外的時間分析失敗的原因,為打樁準備專用的回調函數,并消除測試過程中的干擾,這是客戶聯系我們時的主要關心的問題。
此外,醫療設備軟件開發中的風險管理還需要深入了解醫療軟件缺陷可能造成的危害程度。這可以通過風險索引來完成,風險索引根據風險的嚴重程度對風險進行分類。
在醫療設備軟件方面,建立風險指數有助于確定風險管理指標,例如在軟件發布使用之前應進行的所需測試、驗證和確認級別。它還可以幫助為確保軟件持續安全性和有效性所需的持續測試、監控和維護定下基調。
Parasoft C/C++test讓自動生成樁或手動創建樁變得更加容易。該選項在兩個地方可用:
1.對于自動生成的打樁:
測試配置->執行->符號(tab)
2.對于用戶打樁和自動打樁:
打樁視圖的打樁設置面板
選中“插入對原始函數的調用”選項后,Parasoft C/C++test會更改打樁的默認生成方式。使用新選項生成的打樁將充當代理并調用原始函數定義,除非用戶提供一個特定于測試用例的回調函數來執行替代活動。
在默認情況下,不使用新選項生成的樁(包括遺留打樁)不會嘗試調用原始符號。如果沒有安裝特定于測試用例的回調函數,打樁將什么都不做,只是返回一個默認值,例如空指針或零數值。
為了確保差異是明確的,讓我們將情況與用戶未提供專用回調時啟用和未啟用的“插入對原始函數的調用”選項進行比較。
這是為goo函數打的樁,不啟用“插入對原始函數的調用”選項。它的工作方式如下:
以下是啟用“插入對原始函數的調用”選項后為goo函數生成的相同打樁的查找方式:
正如我們所見,使用新選項添加的打樁對測試代碼是透明的。它們只是對原始定義執行代理調用,除非有人提供需替代操作的回調代碼。
在打樁函數沒有原始定義的情況下,會發生什么呢?如果沒有定義替代行為的回調,打樁會如何出現什么情況?
C/C++test的巧妙之處在于它會自動檢測這種情況。在測試構建期間,打樁好的函數,即用戶樁將重新配置自己。當沒有安裝回調函數時,它不會調用原始定義,并將返回一個安全的默認值。
在這種半集成測試中,同時處理測試用例時,C/C++test極大地減少了不同團隊成員之間的干擾。開發人員A添加的打樁代碼不會改變開發人員B添加的測試用例的測試代碼的行為。
如果開發人員B決定他們需要為其中一個測試用例的打樁函數配置替代操作,他們可以創建一個特定于測試用例的回調函數,為打樁函數實現所需的替代邏輯,并將該回調函數作為測試用例配置的一部分安裝在現有的打樁中。
這就避免了不同人員有著不同測試需求的難題了。如果您對以上內容感興趣,請持續關注我們,
了解更多有關Parasoft產品咨詢,歡迎咨詢
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn