【技术实现步骤摘要】
本专利技术涉及软件测试、编译器测试领域,主要涉及编译器前端警告缺陷测试。
技术介绍
1、在软件开发的过程中,编译器不仅能够对代码进行优化,提高目标代码的质量,还能够提高软件的开发效率,帮助开发人员在程序运行前就发现并修复问题,从而提高软件可靠性。在程序编译过程中,如果程序中存在编程语言的未定义行为,例如数组访问越界和使用未初始化变量等,编译器会触发警告诊断机制并输出相应的警告信息帮助开发者检查代码。因此,编译器不仅能够通过代码优化提升软件的跨平台兼容性,而且还对程序进行了错误检测与调试工作。
2、当前,编译器的质量已经因其重要作用而获得了各界的广泛关注。编译器能否准确指明程序中出现的错误,更是其是否可靠、有效的标准。为了保证编译器的质量,进行编译器测试是重要的方法之一,它通过生成各式各样复杂的测试程序,来检测编译器是否存在潜在的缺陷。因此,如何生成有效又多样的测试程序也就成为了其中的关键问题之一。对于许多开发者而言,编译器前端的警告信息对于解决潜在隐患具有重要意义。
3、尽管开发人员已经尽全力维护编译器质量以确保
...【技术保护点】
1.一种基于深度强化学习变异的编译器警告缺陷检测方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种基于深度强化学习变异的编译器警告缺陷检测方法,其特征在于,步骤(1)中所述变异算子包括插入变异算子、删除变异算子和替换变异算子中的一种;所述插入变异算子,包括插入算术表达式、插入逻辑运算语句、插入赋值语句、插入分支语句、插入循环语句、插入函数体及其调用函数中的一种;所述删除变异算子,包括删除表达式语句、删除赋值语句、删除变量数据类型、删除变量修饰符、删除函数声明、删除函数体、删除循环结构、删除分支控制结构中的一种;所述替换变异算子,包括替换变量数据
...【技术特征摘要】
1.一种基于深度强化学习变异的编译器警告缺陷检测方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种基于深度强化学习变异的编译器警告缺陷检测方法,其特征在于,步骤(1)中所述变异算子包括插入变异算子、删除变异算子和替换变异算子中的一种;所述插入变异算子,包括插入算术表达式、插入逻辑运算语句、插入赋值语句、插入分支语句、插入循环语句、插入函数体及其调用函数中的一种;所述删除变异算子,包括删除表达式语句、删除赋值语句、删除变量数据类型、删除变量修饰符、删除函数声明、删除函数体、删除循环结构、删除分支控制结构中的一种;所述替换变异算子,包括替换变量数据类型、替换变量修饰符、替换算术运算符、替换逻辑运算符、替换关系运算符、替换变量名、替换函数名中的一种。
3.根据权利要求1所述的一种基于深度强化学习变异的编译器警告缺陷检测方法,其特征在于,步骤(2)中所述程序状态集合表示为:
4.根据权利要求3所述的一种基于深度强化学习变异的编译器警告缺陷检测方法,其特征在于,语句类型特征是指变异程序中存在的不同类型程序语句的个数,包括for循环语句、while循环语句、if-else语句等;表达式类型特征是指变异程序中存在的不同类型表示式语句的个数,包括算术表达式、关系表达式、逻辑表达式等;变量类型特征是指当前程序中存在的具有不同数据类型变量的个数,包括struct、int、char、const、static等;操作类型特征是变异程序中存在的不...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。