基於頻譜的錯誤定位測試用例優化方法研究

2023-02-14 10:24:02 字數 904 閱讀 8573

隨著軟體規模及複雜度不斷增加,軟體不可避免地會出現一些錯誤。通過除錯技術修正軟體錯誤成為了開發人員處理軟體錯誤的常用手段。

錯誤定位是除錯技術的重要步驟。然而,傳統的錯誤定位一般由手工完成,不僅費時費力,而且難以保證錯誤定位的質量。

自動化錯誤定位技術能夠提高錯誤定位的效率,保證錯誤定位的質量。因此,自動化錯誤定位技術成為軟體工程領域一項重要研究內容。

基於程式譜的錯誤定位方法是錯誤定位方法中具有代表性的方法。現有的基於程式譜的錯誤定位方法沒有充分挖掘失敗測試用例的覆蓋資訊,導致其定位精度不夠理想。

在錯誤定位的過程中,由於需要執行的測試用例數目比較多,導致了需要收集的程式頻譜資訊比較多,從而使得錯誤定位的開銷增大。如何提高錯誤定位的定位精度,並降低錯誤定位的代價成為了亟待解決的問題。

本文為解決上述問題,分別提出了基於啟發式規則的錯誤定位方法和基於向量相似度的測試用例約簡方法。本文主要工作如下:(1)提出了多種啟發式規則,並實驗驗證了所提規則對基於頻譜的錯誤定位方法的影響。

在傳統基於頻譜的錯誤定位基礎上,分別選取最大覆蓋失敗測試用例、最小覆蓋失敗測試用例、最大距離失敗測試用例、最小距離失敗測試用例。基於選取的測試用例覆蓋資訊進一步減少懷疑度列表中所需要檢查的語句數量,以提高錯誤定位的精度。

(2)提出了基於向量相似度的測試用例約簡方法,並實驗驗證了所提方法在測試用例約簡方面的有效性。通過smc相似度、jaccard相似度、dice相似度和hamming相似度,分別計算失敗測試用例與成功測試用例之間的相似度。

基於這四種相似度度量對成功測試用例進行排序,並依次選取測試用例,直到滿足整體覆蓋時,停止測試用例約簡,以降低測試用例集的規模。(3)設計並實現了乙個基於j**a的錯誤定位原型系統。

該原型系統能自動收集測試用例的覆蓋資訊與執行結果,並計算語句的可疑度。在此基礎上,實現了基於啟發式規則的錯誤定位方法及基於向量相似度的測試用例約簡方法。

登入的測試用例

1 乙個好的用例的表述要點,即用例中應當包含的資訊乙個優秀的測試用例,應該包含以下資訊 1 軟體或專案的名稱 2 軟體或專案的版本 內部版本號 3 功能模組名 4 測試用例的簡單描述,即該用例執行的目的或方法5 測試用例的參考資訊 便於跟蹤和參考 6 本測試用例與其他測試用例間的依賴關係7 本用例的...

測試用例的編制

測試用例文件 編寫測試用例文件應有文件模板,須符合內部的規範要求。測試用例文件將受制於測試用例管理軟體的約束。軟體產品或軟體開發專案的測試用例一般以該產品的軟體模組或子系統為單位,形成乙個測試用例文件,但並不是絕對的。測試用例文件由簡介和測試用例兩部分組成。簡介部分編制了測試目的 測試範圍 定義術語...

軟體測試 測試用例的經典例子

一 等價類劃分 問 某程式規定 輸入三個整數 a b c分別作為三邊的邊長構成三角形。通過程式判定所構成的三角形的型別,當此三角形為一般三角形 等腰三角形及等邊三角形時,分別作計算 用等價類劃分方法為該程式進行測試用例設計。三角形問題的複雜之處在於輸入與輸出之間的關係比較複雜。解 分析題目中給出和隱...