用例生成备用知识
实际问题:
1、系统升级验证已有接口逻辑,对接口做回归
2、业务逻辑复杂,每个迭代版本在自动化回归的基础上需要手工回归测试
3、编写场景用例复杂,自动化维护成本高
4、性能测试时造数麻烦等
1、流量回放
线上环境拥有场景丰富、数据真实、覆盖全面的条件,将线上环境的请求数据获取验证性能、回归等测试过程,实施流程是从流量录制 - 数据持久化 - 回放计划 - 环境维护 - 流量回放 到结果比对。利用ngx_http_mirror_module、tcpCopy等工具直接监听网络端口,复制数据包方式录制,实现成本较高。
2、基于符号执行
业务逻辑覆盖
本方法可以对待测程序通过静态分析,自动生成测试脚本,如下:
1、获取待测程序,遍历待测函数中的函数语句,获取待测函数中的测试条件
具体的,遍历待测函数的函数语句,通过设定关键词获取测试条件,关键词,例如:if,else ;select, from,where等
2、拆分测试条件,将测试条件拆分成树状结构,例如:测试条件为:x>0;x<=0,则将该测试条件拆分为:x<0;x=0;x>0三个分支
测试条件为y=0;y!=0,时,则拆分为:y=0;y!=0
3、记录由各个分支的测试条件构成的集合,其每个分支都是一个测试用例,包括:操作步骤以及预期结果等。
4、根据集合生成用于测试待测程序的测试用例集合。
这样就可以实现测试用例自动化生成,避免了人工的代码走读造成测试用例覆盖不全的情况。
3、基于模型
4、基于目标优化的搜索算法
5、其他
混合型、自适应(随机测试的变种)