# 编译器的测试
# 目录
[TOC]
# 1.回归测试
- 识别出软件中被修改的部分
- 从原基线 (opens new window)测试用例库“T”中,排除所有不再适用的测试用例,确定对新版本依然有效的测试用例,创建新的基线测试用例库“TN”
- 依据一定的策略从TN中选择测试用例测试被修改的软件
- 如果必要,生成新的测试用例集“T1”,用于测试TN无法充分测试的软件部分
- 用T1执行修改后的软件
- 第2和第3步测试验证修改是否破坏了现有的功能,第4和第5步测试验证修改工作本身
# 2.super-test
- 原理和csmith类似,但是公司有的会将他集成到CD/CI
# 3.csmith压力测试
Csmith是一个测试用例生成工具。它可以生成静态和动态符合 C99 标准的随机 C 程序。
它用于对编译器、静态分析器和其他处理 C 代码的工具进行压力测试。
它是由犹他大学的研究人员开发的免费、开源、许可的 C 编译器模糊测试程序。以前称为Randprog
- GitHub中该仓库的传送门:https://github.com/csmith-project/csmith (opens new window)
# 3.1.csmith(2011年paper出现)
- 仅仅只能生成随机的C语言程序
- CSmith vs YARPGen
关于csmith的读音
- 我拆分为c何smith
- smith,n.史密斯,铁匠,金属工匠
- 我的谐音读作:思miss
# 3.2.YARPGen(2020年)
- YARPGen,随机生成C++和C程序
- 参考资料:CSmith vs YARPGen - 陈小欧 - 20210113 - PLCT实验 (opens new window)
# 3.3.Randprog
- Csmith (2011) only for C compiler • YarpGen (2020) for C and C++ compiler. • Predecessor: Randprog (1600 lines long, 2007)