A Survey of Compiler Testing

本文概述了编译器测试的各种方法,包括基于语法的测试样例生成,如使用context-free grammar、affix grammar、attribute grammar和W-grammar;程序变异测试,包括语义保留和非语义保留变异;以及差分和蜕变测试。此外,还讨论了测试程序优先级、测试集削减和测试结果后期处理等优化测试过程的策略。
摘要由CSDN通过智能技术生成

Overview

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

一些特点:

  • 11年出现了Csmith以及CReduce等易用有效的工具,11年到18年中50%的工作基于这些软件

测试程序生成

Overview

在这里插入图片描述
在这里插入图片描述

挑战

  • 测试程序的有效性
  • 测试程序的多样性
  • 测试方法施加的具体要求

测试样例生成

以语法为导向的方法

Context-free grammar
  • A sentence generator for testing parsers —— 1972
    目标:测试解析器
    输入:上下无关语法
    期望:尽可能多得覆盖解析器的状态和过度
    缺陷:难以表达语言的上下文敏感特征
    改进:在此基础上,研究者添加上下文敏感属性,形成two-level grammars:W-grammars, attribute grammars, affix grammars.
Affix grammar

提出的原因:通过参数扩充上下无关语法

  • Automatic generation of test cases —— 1970
    形式: < l a b e l    d e c l a r a t i o n > → < d e c l a r a t i o n    i d e n t i f i e r >        < l a b e l > → < < l a m b d a > > <label \; declaration> \to <declaration \; identifier> \;\;\; <label> \to <<lambda>> <labeldeclaration>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值