软件测试之测试数据
测试数据的准备是软件测试过程中非常重要的一个环节 ,功能测试、自动化测试、性能测试都避不开测试数据的准备工作。
想要成长为一名优秀的测试工程师,非常有必要深入理解测试数据的准备方法,以及它们各自的优缺点、适用场景。
测试数据准备的基本方法
从创建测试数据的维度来看,测试数据准备方法主要可以分为四类:
基于GUI操作生成测试数据。
通过API调用生成测试数据。
通过数据库操作生成测试数据。
综合运用API和数据库的方式生成测试数据。
基于 GUI 操作生成测试数据
是最原始的创建测试数据的方法。简单地说,它就是采用 E2E 的方式来执行业务场景,然后生成数据的方法。
这个方法的优点是简单直接,创建的数据完全来自真实的业务流程。但是该方法的缺点也十分明显,主要体现在以下几个方面:
创建测试数据的效率非常低。
基于GUI的测试数据创建方法不适合封装成测试数据工具。
测试数据成功创建的概率不会太高。
会引入不必要的测试依赖。
基于以上几个原因,在实际的测试过程中,很少直接使用基于GUI的操作生成测试数据。
通过API调用生成测试数据
是目前主流的测试数据生成方法。在实际工程实践中,我们往往会把调用 API 生成测试数据的过程封装成测试数据准备函数。
通过API调用生成测试数据的方法,优点主要体现在以下几个方面:
可以保证创建的测试数据的准确性,原因是使用了和GUI操作同样的API调用。
测试数据准备的执行效率更高,因为该方法跳过了耗时的GUI操作。
把创建数据的API调用过程,封装成测试数据函数更方便,因为这个调用过程的代码逻辑非常清晰。
测试数据的创建可以完全依赖于 API 调用,当创建测试数据的内部逻辑有变更时,由于此时 API 内部的实现逻辑也会由开发人员同步更新,所以我们依旧可以通过调用 API 来得到逻辑变更后的测试数据,而这个过程对使用来说是完全透明的。
缺点主要表现在:
并不是所有的测试数据创建都有对应的API支持。
有时,创建一条业务线上的数据,往往需要按一定的顺序依次调用多个API,并且会在多个API调用之间传递数据,这也无形中增加了测试数据准备函数的复杂性。
虽然相比于GUI操作方式,基于API调用的方式在执行速度上已经得到了大幅度提示,并且还可以很方便地实现并发测试,但是对于需要批量创建海量数据的场景,还是会力不从心。
通过数据库操作生成测试数据
这也是目前主流的测试数据生成方法。这个方法的实现原理很简单,就是直接通过数据库操作,将测试数据插入到被测系统的后台数据库中。
常见的做法是,将创建数据需要用到的 SQL 语句封装成一个个的测试数据准备函数,当我们需要创建数据时,直接调用这些封装好的函数即可。
通过数据库操作生成测试数据的方法,主要优点是测试数据的生成效率非常高,可以在较短的时间内创建大批量的测试数据。
缺点也非常明显,主要体现在以下几个方面:
很多时候,一个前端操作引发的数据创建,往往会修改很多张表,因此封装的数据准备函数的维护成本要高得多。
容易出现数据不完整的情况,比如一个业务操作,实际上在一张主表和一张附表中插入了记录,但是基于数据库操作的数据创建可能只在主表中插入了记录,这种错误一般都会比较隐蔽,往往只在一些特定的操作下才会发生异常。
当业务逻辑发生变化时,即 SQL 语句有变化时,需要维护和更新已经封装的数据准备函数。
综合运用API和数据库的方式生成测试数据
典型的应用场景是,先通过 API 调用生成基础的测试数据,然后使用数据库的 CRUD 操作生成符合特殊测试需求的数据。
如需了解更多测试技术信息请关注:深圳多测师软件与技术服务有限公司
相关文章
- Testing - 软件测试知识梳理 - 比较质量保证(QA)与质量控制(QC)
- Testing - 软件测试知识梳理 - 我们所理解的测试
- 软件测试技术之如何编写测试用例(1)
- 2022,软件测试人员的出路在哪里?
- 我,26岁,疯了的软件测试员,每天处于水深火热之中
- 31岁技术不精的软件测试,如何破解职业迷茫?
- 面试记录:99年的应届毕业生,学历985要从事软件测试这种低端岗位技术!
- 2021年,软件测试行业趋势分析和热门招聘方向
- 软件测试专栏——黑盒测试
- 转行软件测试,他收获了爱情和事业
- 象棋机器人夹伤7岁男孩手指,软件测试工程师的锅?我笑了。。。
- 以 27K 成功入职字节跳动,这份《 软件测试面试笔记》让我受益匪浅
- 都2023年了,软件测试工程师的出路在什么地方?
- 软件测试期末大作业 测试用例设计中的一些常见问题
- 软件测试自学三个月,进了一家自研薪资11k,面试总结分享给大家