- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
大语言模型时代的变异分析
王博北京交通大学
演讲嘉宾
王博
北京交通大学计算机与信息技术学院讲师、硕士生导师,CCF专业会员、CCF系统软件专委执行委员、CCF开源发展委员会执行委员。分别于北京大学、中国科学技术大学和中南大学获得博士、硕士和学士学位。研究兴趣为软件测试与调试,已在ASE、ISSTA、TOSEM、软件学报等发表多篇
论文。担任ASE、FSE、ICST、Internetware等软件工程重要会议PC,担任TSE、TOSEM、TDSC、EMSE、JSS、ASEJ、IETSoftware、JSME、软件学报等多个期刊审稿人。获得ISSTA2017杰出论文奖,全国大学生系统能力大赛优秀指导教师和北京市高校优质教案。
1.背景
目录CONTENTS2.
目录
CONTENTS
3.解决思路
4.具体实现
5.总结与展望
PART01
背景
软件正确性至关重要
欧空局Ariane5波音737Max坠机
海湾战争中爱国者飞弹
7.23事故
?软件缺陷已经导致很多灾难性后果
?保障软件的正确性十分重要
?当我们说软件是正确的:程序的行为符合正确性规约(specification)
保障正确性的方法
1.形式化方法
形式化方法成本很高
2.软件测试
→correct×
→correct
××
输入域
intfoo(inta,intb){returna+b;
}
FormalMethod:
(a=0b=0)||
(a=0b=0)||
(a=0b=0a+b=0)||
(a=0b=0a+b=0)
Testing:
foo(0,1)=1;
foo(INT_MAX,1)=ERROR;
foo(INT_MAX-1,1)=INT_MAX;foo(INT_MAX,INT_MIN)=-1;
输入域
输入域→correct
测试质量直接影响到软件质量
?核心问题是:我们如何度量测试的好坏?
?测试质量达标的系统才有一定的可信度
?测试集约减
?测试排序
?我们朴素的愿望:希望测试能发现真实缺陷
?但是在发现之前,真实的缺陷对于我们是未知的
?“测试可以非常有效地显示bug存在,但却无法证明bug的不存在”
?我们可以使用一些指标,间接地度量测试质量
?测试覆盖
?变异测试:用人造缺陷发现率估计真实缺陷发现率
变异测试概览
程序
生成变异体(mutant):
变异算子(mutationoperator)
变异体
每个变异体是原始程序的小型文法改动
变异测试概览
测试集程序
测试集
生成变异体(mutant):
变异算子(mutationoperator)
被测试集杀死的变异
的比例:
执行测试变异体变异分数(Mutation
执行测试
变异体
score)
变异测试在软件测试中的发展
?变异测试自1971年被DeMillo和Hamlet提出以来,是软件测试中的重要方法
?修改位置:从一阶变异(firstorder)到高阶(higher-order),支持修改多处
?在单元测试中:
?面向高级语言源码:C、Java、Python、JS…
?面向中间表示:Javabytecode,LLVM-IR
?从桌面应用到Android、MPI、智能合约程序等
?从单元测试扩展到其他测试阶段:
?集成测试
?设计阶段(例如在基于模型的软件开发过程中针对设计FSM的变异)
从变异测试到变异分析
?基于变异的缺陷自动定位(mutation-basedfaultlocalization)是变异测试的衍生技术
?缺陷自动定位:给定测试集(至少有一个未通过测试)和程序,返回程序中的语句出错可疑度分数。
?传统定位方法:基于测试覆盖信息对语句排序(spectrum-basedfaultlocalization)
?基于变异的方法:通过观察变异对测试结果的改变计算可疑度
?若一个变异使失败测试通过了,那更可能是变异了出错语句
从变异测试到变异分析
变异测试
基于变异的缺陷定位
程序自动修复
软件产品线测试
变异分析
工具和标准程序集
?变异测试
?C语言:
?Proteum(108mutationoperators)
?Milu(High
文档评论(0)