首页 > 其他分享 > 软件测试之测试数据

软件测试之测试数据

时间:2023-02-09 10:32:15浏览次数:50  
标签:调用 创建 GUI 测试数据 生成 API 软件测试

  测试数据的准备是软件测试过程中非常重要的一个环节 ,功能测试、自动化测试、性能测试都避不开测试数据的准备工作。

  想要成长为一名优秀的测试工程师,非常有必要深入理解测试数据的准备方法,以及它们各自的优缺点、适用场景。

  测试数据准备的基本方法

  从创建测试数据的维度来看,测试数据准备方法主要可以分为四类:

  基于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 操作生成符合特殊测试需求的数据。

  如需了解更多测试技术信息请关注:深圳多测师软件与技术服务有限公司

标签:调用,创建,GUI,测试数据,生成,API,软件测试
From: https://blog.51cto.com/u_15239049/6045968

相关文章

  • 第三方软件测试机构进行性能测试有哪些流程?
    软件性能是衡量一款软件产品质量的重要指标之一,检测软件产品的性能可以通过性能测试来进行。性能测试在软件的质量保证中起着十分重要的作用,它包括的测试内容也丰富多样......
  • 软件测试|手把手教你用Python来模拟绘制自由落体运动过程中的抛物线
    学过高中物理的我们都知道,当我们在一定高度上以一定速度水平抛出一个物体时,物体的运动轨迹实际上就是一条抛物线,那么,我们如何用Python将这个抛物线绘制出来呢。思路其实解决......
  • 软件测试|Python实用炫酷技能——推导式
    Python推导式判断一个程序员水平的高低,不能光看他的发量,也不能光看他的代码量,还要看他代码蕴含的思想,代码的质量。代码蕴含的思想主要体现在各种设计模式的运用上,而代码的质......
  • 软件测试|一步到位教会你Python字典操作(一)
    字典(dict)是python中的基础数据类型之一,字典的设计并不复杂,我们经常会用到这种数据类型。同时,字典也有一些比较实用的情景。学习任何一种编程语言,基础数据类型都是必备的......
  • 软件测试|手把手教你使用Python获取B站视频选集内容
    背景B站是我们年轻人最喜欢的学习网站,这句话没有任何问题!只有我们想不到的,没有B站上没有的,我们可以在B站上学做饭,学音乐,学数学,学历史......总之,B站就是如此包罗万象。言归正......
  • 软件测试人员如何制定合格的测试策略?
    对于测试人员来说,测试策略分解为“按时”和“保质”。“按时”可以理解为测试过程的把控,即怎么进行测试,测试活动应该怎么分解,中途的问题应该怎么协商处理,只有这些过程......
  • 软件测试工作的心得体会或总结
    很久没更新博客了,,稍微总结下,还有很多心得感觉没啥好说的。多做,多思考,多总结!测试心得:1.保持FAQ文档的更新,不仅方便自己还方便新人,甚至开发、运维、产品也可以参考2.一定要......
  • 软件测试|MySQL安装最全教程
    MySQL的下载与安装、基本使用、系统服务制作MySQL简介MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速......
  • 软件测试|一篇文章教你SQL与NoSQL、数据库重要概念、SQL的基本语句
    SQL与NoSQL、数据库重要概念、SQL的基本语句SQL与NoSQL数据库服务端可以服务多种类型的客户端客户端可以是自己开发的,也可以是python代码编写的,也可以是其他编程语言编写的S......
  • 软件测试|什么是Python函数及名称空间?
    Python函数及名称空间函数什么是函数?函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。作用:函数能提高应用的模块性,和代码的重复利用率函数的语法结构def函......