软件测试这一环节在软件开发周期中不可或缺。然而软件测试却花费软件开发超过一半的成本。因此利用软件测试用例自动生成技术来降低软件开发成本并提高软件开发效率就变得至关重要。目前软件测试用例自动生成技术可大体分为五类:
1. 符号执行及程序结构覆盖测试(symbolic execution and program structural coverage testing)
2. 基于模型的测试用例生成技术(model-based test case generation)
3. 混合型测试(combinatorial testing)
4. 自适应型随机测试–随机测试的一个变种(adaptive random testing as a variant of random testing)
5. 基于搜索的测试(search-based testing)
本博文分多博客逐次介绍这些技术。
1. 符号执行(Symbolic Execution)
符号执行是一种程序分析技术。其可以通过分析程序来得到特定代码域执行的输入。使用符号执行分析一个程序时,该程序会使用符号值作为输入,而非一般执行程序时使用的具体值。在达到目标代码时,分析器可以得到相应的路径约束(PC:Path Constraint),然后通过约束求解器来得到触发目标代码的具体值。
From: https://zh.wikipedia.org/wiki/%E7%AC%A6%E5%8F%B7%E6%89%A7%E8%A1%8C
1.1 测试案例
</