软件测试工作中如何构造测试数据?

在日常的软件测试工作中,大家是否会遇到类似的问题呢?

1、比如页面数据不够,翻页功能无法测试;

2、页面某些功能暂时没有找到满足要求的数据;

3、做数据分析的时候,需要用到大量的数据,而现有环境中数据量满足不了;

......

怎么去解决数据的问题呢?

软件测试工作中如何构造测试数据?

1、基于GUI构造测试数据

好处:

①不光是在造数据,本质上还是一次端到端的测试;

②没有过多技能要求,熟悉页面,能在页面进行操作就行;

缺点:

①创建数据的效率很低;

②创建数据依赖太多(依赖后台接口、测试环境和开发的支持);

③基于 GUI 的测试数据创建方法不适合封装成测试数据工具;

④造数据的成本高,稳定性差,依赖性太强;

2、通过api调用(python的faker库,jmeter等方式)

优点:

①生成的数据可靠;

②效率高;

③构造数据的脚本可以改成接口case;

④能跳过前台,不依赖于前端;

缺点:

①需要学习成本;

②需要整理接口;

③有个别的业务,需要用到接口之外的一些其他参数(可能有部分数据是前端处理之后传给接口的),处理起来非常麻烦;

3、通过数据库(sql)生成测试数据  

优点:

①效率比较高;

缺点

①整理数据库的关系非常困难,整理一个业务对应的所有sql很不容易;

4、基于线上现有业务数据脱敏后导入测试环境

在涉及到大数据测试时,往往需要大量的数据用于验证逻辑,这个时候可以考虑将线上数据脱敏后,同步到测试环境的数据库中,同时也可以避免自己构造的数据数据考虑的场景不全面,导致漏测。

5、综合运用 API 和数据库的方式生成测试数据

基于 GUI 操作生成测试数据是最原始的方法,但是效率很低,而且会引入不必要的依赖;通过 API 调用以及数据库操作的方式生成测试数据是目前主流的做法,通过 API 调用的方式具有数据准确度高但是创建效率较低的特点,而通过数据库的方式具有创建效率高但是维护复杂度也高的特点。



留言