软件学报
軟件學報
연건학보
JOURNAL OF SOFTWARE
2014年
3期
472-488
,共17页
衷璐洁%霍玮%李龙%李丰%冯晓兵%张兆庆
衷璐潔%霍瑋%李龍%李豐%馮曉兵%張兆慶
충로길%곽위%리룡%리봉%풍효병%장조경
定值-引用错误%路径敏感错误检测%错误目标触发场景%场景敏感%程序分析
定值-引用錯誤%路徑敏感錯誤檢測%錯誤目標觸髮場景%場景敏感%程序分析
정치-인용착오%로경민감착오검측%착오목표촉발장경%장경민감%정서분석
def-use fault%fault detection%sink triggering scene%scene-sensitive%program analysis
定值-引用类错误是一类非常重要且常见的错误.当前,对这类错误的检测很难同时达到高精度和高可扩展性.通过合理组合敏感和不敏感的检测方法并控制两类方法的实施范围,可以同时达到高检测精度和高可扩展性.提出一种新颖的场景敏感的检测方法,该方法根据触发状态对潜在错误语句分类,识别不同类别语句的触发场景并实施不同开销的检测,在不降低精度的同时最小化检测开销.设计了一个多项式时间复杂度的流敏感、域敏感和上下文敏感的场景分析以进行分类,并基于程序依赖信息识别触发场景,仅对必要的触发场景实施路径敏感的检测.为上述方法实现了一种原型系统——Minerva.通过使用空指针引用错误检测为实例研究以及总代码规模超过290万行,最大单个应用超过200万行的应用验证,用例实验结果表明,Minerva的平均检测时间比当前先进水平的路径敏感检测工具Clang-sa和Saturn分别快3倍和46倍.而Minerva的误报率仅为24%,是Clang-sa和Saturn误报率的1/3左右,并且Minerva未发现漏报已知错误.上述数据表明,所提出的场景敏感的错误检测方法可同时获得高可扩展性和高检测精度.
定值-引用類錯誤是一類非常重要且常見的錯誤.噹前,對這類錯誤的檢測很難同時達到高精度和高可擴展性.通過閤理組閤敏感和不敏感的檢測方法併控製兩類方法的實施範圍,可以同時達到高檢測精度和高可擴展性.提齣一種新穎的場景敏感的檢測方法,該方法根據觸髮狀態對潛在錯誤語句分類,識彆不同類彆語句的觸髮場景併實施不同開銷的檢測,在不降低精度的同時最小化檢測開銷.設計瞭一箇多項式時間複雜度的流敏感、域敏感和上下文敏感的場景分析以進行分類,併基于程序依賴信息識彆觸髮場景,僅對必要的觸髮場景實施路徑敏感的檢測.為上述方法實現瞭一種原型繫統——Minerva.通過使用空指針引用錯誤檢測為實例研究以及總代碼規模超過290萬行,最大單箇應用超過200萬行的應用驗證,用例實驗結果錶明,Minerva的平均檢測時間比噹前先進水平的路徑敏感檢測工具Clang-sa和Saturn分彆快3倍和46倍.而Minerva的誤報率僅為24%,是Clang-sa和Saturn誤報率的1/3左右,併且Minerva未髮現漏報已知錯誤.上述數據錶明,所提齣的場景敏感的錯誤檢測方法可同時穫得高可擴展性和高檢測精度.
정치-인용류착오시일류비상중요차상견적착오.당전,대저류착오적검측흔난동시체도고정도화고가확전성.통과합리조합민감화불민감적검측방법병공제량류방법적실시범위,가이동시체도고검측정도화고가확전성.제출일충신영적장경민감적검측방법,해방법근거촉발상태대잠재착오어구분류,식별불동유별어구적촉발장경병실시불동개소적검측,재불강저정도적동시최소화검측개소.설계료일개다항식시간복잡도적류민감、역민감화상하문민감적장경분석이진행분류,병기우정서의뢰신식식별촉발장경,부대필요적촉발장경실시로경민감적검측.위상술방법실현료일충원형계통——Minerva.통과사용공지침인용착오검측위실례연구이급총대마규모초과290만행,최대단개응용초과200만행적응용험증,용례실험결과표명,Minerva적평균검측시간비당전선진수평적로경민감검측공구Clang-sa화Saturn분별쾌3배화46배.이Minerva적오보솔부위24%,시Clang-sa화Saturn오보솔적1/3좌우,병차Minerva미발현루보이지착오.상술수거표명,소제출적장경민감적착오검측방법가동시획득고가확전성화고검측정도.