如何编写高质量的测试用例?这些方法论一定得知道...(代码片段)

程序员二黑. 程序员二黑.     2023-03-10     707

关键词:

单元测试用例

单元测试用例有人总结出来了编写用例的3A原则,分别是

  • Arrange: 初始化测试对象或者准备测试数据

  • Act : 调用被测方法

  • Assert: 断言

给一个例子

[TestMethod]  
public void Withdraw_ValidAmount_ChangesBalance()  
  
    // arrange  
    double currentBalance = 10.0;  
    double withdrawal = 1.0;  
    double expected = 9.0;  
    var account = new CheckingAccount("JohnDoe", currentBalance);  
    // act  
    account.Withdraw(withdrawal);  
    double actual = account.Balance;  
    // assert  
    Assert.AreEqual(expected, actual);  
  

服务间的接口测试用例

服务间的接口测试实际上是黑盒测试,3A原则也适用于这种测试用例的编写

  • Arrange: 准备测试数据,这里的方案会有很多

  • Act : 使用各种参数调用被测接口

  • Assert: 断言

举个例子

def test_get_task_by_id(self):
        # arrange
        create_task_res = self.create_task('test', 'desc')
        new_id = create_task_res['id']

        # act
        url_for_get_by_id = self.ip + '/api/tasks/' + str(new_id)
        res = requests.request("GET", url_for_get_by_id).json()
        
        # assert
        self.assertEqual(res['id'], new_id)

手工测试用例

手工的功能测试用例也可以用3A原则来编写。

  • Arrange: 准备被测功能相关的测试数据,比如往系统里录入一批工单以便测试工单的分页功能

  • Act : 调用被测的功能,实际上这就是我们一直讲的测试步骤

  • Assert: 断言

举个例子

# arrange and act
打开chrome浏览器并跳转至http://localhost/wordpress/wp-login.php
在用户名文本框中输入admin
在密码文本框中输入admin
点击登陆按钮
# assert
浏览器跳转到http://localhost/wordpress/wp-admin/
右上角出现“你好,amdin”字样

在一些测试团队中,手工测试用例会在测试人员之间进行传播,比如李雷写了手工测试用例,韩梅梅则是用例的执行者。如果李雷的测试用例写的比较抽象派和印象派,韩梅梅是很难去直接执行的,所以会有一些测试团队强调尽量编写可以让人理解,也就是不用脑补的手工测试用例。但是写的越精确花费的时间就越长,如果项目周期紧张的话,是没有充足的时间去写完备的测试用例的。

在这种情况下,一些有经验的测试人员会写一些测试大纲,相当于是测试备忘录,提醒自己该测哪些情况,不要有遗漏,比如

登录成功的情况
登录失败:用户名密码为空
登录失败:密码不对
登录失败:只输用户名不输密码

用例的维护

用例的维护成本往往是很高的

  • 单元测试用例: 被测代码发生变化时单元测试用例需要相应更新
  • 服务间接口用例:被测服务的接口或逻辑发生变化时需要相应更新
  • 手工测试用例:需求变化了用例就要跟着改

保证用例跟需求的一致性一直是很大的挑战。这也是TDD测试驱动开发所希望解决的问题——如果需求文档直接是可以执行的测试用例,需求跟用例合二为一自然就不存在同步的困难了。

最后:下方这份完整的【软件测试】视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取 【保证100%免费】

如何编写测试用例

...件的质量,上线之后可能就会出现各种各样的问题。那么如何在软件发布前进一步保证软件的质量呢?常用的方法就是编写测试用例,在发布之前按照测试用例进行测试。那么什么是测试用例?应该如何编写测试用例?1.什么是... 查看详情

浅谈如何提高产品质量?

...质量的意识,提高产品质量也就显得日益迫切。那么到底如何做才能提高产品质量?就我个人而言,我是一名软件测试工程师,那么我应该在日常的工作中做出怎样的努力,才能为提高产品质量做出一份贡献?首先我们就以软件... 查看详情

测试从零开始-no.8-在工作中是如何编写测试用例的?

在前面的一系列文章中,我们学会了一些用例设计的常用用法,比如等价类、边界值,以及场景法和错误推测法,这些是在日常工作中使用的比较多的方法。那么,学了用例设计方法之后,测试用例到底是... 查看详情

测试用例的编写

在这里和大家聊聊测试用例编写的问题。做一名测试人员,最基本的就是测试用例的编写。文档功底一定要有。我们来说说用例的编写需要的东西。首先,用例的模板网上有很多。这些都是根据个人习惯的,但是再变,其核心内... 查看详情

一份高质量的测试用例如何养成?

测试一个新功能时,最重要的一个步骤就是编写测试用例,测试用例写好了,那么后面的测试工作基本就非常顺利了,那么怎样提高测试用例的质量呢?充分理解需求拿到测试需求后,不应该拿到什么就是... 查看详情

测试用例库的积累

  测试用例的积累主要涉及如何编写测试用例,测试用例的重点以及测试方式的划分以及测试用例如何积累三个问题,下面我主要从这三个方式进行说明:  一、如何编写测试用例   许多测试类书籍中都... 查看详情

自动化测试用例编写

测试用例名同测试用例的编号,例如用例名统一以case+编号的形式开头; 每个测试用例粒度必须尽可能小,短小简单的测试用例易于调试。如果测试用例不得不长而复杂,则把它分成两个或更多的私有方法,并单独调用这些... 查看详情

如何使用 Junit 5 编写具有 System.exit() 的测试用例方法?

】如何使用Junit5编写具有System.exit()的测试用例方法?【英文标题】:HowtowriteatestcasemethodhavingSystem.exit()usingJunit5?【发布时间】:2022-01-0500:03:04【问题描述】:场景:在集成测试期间要测试的负面场景之下。当前测试用例因退出而... 查看详情

软件测试系列三《测试用例编写原则与设计方法》

...连贯性a) 对于系统业务流程来说,各个子系统之间是如何连接在一起,如果需要接口ÿ 查看详情

如何编写优秀的测试用例,建议收藏和转发(代码片段)

1、测试点与测试用例测试点不等于测试用例,这是我们首先需要认识到的。问题1:这些测试点在内容上有重复,存在冗余。问题2:一些测试点的测试输入不明确,不知道测试时要测试哪些。问题3:总是... 查看详情

如何编写具有可测试性的代码

...法,而不是目的。人们的真正的目的,是编写出优秀的,高质量的具有可维护性的,能够很好扩展的代码。  问题来了。  什么是具有可测试的代码?  所谓具有可测试的代码,是指能够很轻松的执行各种测试的代码。 ... 查看详情

如何测试接口?首先你得知道如何开发接口。(代码片段)

接口测试:接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等... 查看详情

面试官最常问的10道测试用例和5道思维面试题及答案,每1题都很经典

...道面试题1、什么是测试用例答:测试用例的设计就是如何覆盖所有软件表现出来的状态,即在满足输入/输出的一组条件下,软件运行是一系列有次序的、受控制的状态变化过程。2、设计用例的好处?答:设... 查看详情

如何使用junit和mockito为私有void方法编写测试用例[重复]

】如何使用junit和mockito为私有void方法编写测试用例[重复]【英文标题】:Howtowritetestcasesforprivatevoidmethodsusingjunitandmockito[duplicate]【发布时间】:2017-09-0213:26:29【问题描述】:我们可以为setAddr()方法编写测试用例,因为它是私有的v... 查看详情

编写测试用例的方法

1、等价类划分法适用场景:有数据输入的地方,就可以使用等价类划分法。如:输入框测试思想:从大量数据中划分范围(等价类),然后从每个范围中挑选代表数据,这些代表数据要能反应这个范围内数据的测试结果。概念... 查看详情

质量如何衡量测试用例质量

测试用例的标准不能局限于一个层次,因为测试用例设计类似于软件设计,软件设计有架构设计(结构设计/概要设计)和详细设计,所以对于测试用例的质量标准,也应分为两个层次来考虑:高层次——满足某... 查看详情

质量如何衡量测试用例质量

测试用例的标准不能局限于一个层次,因为测试用例设计类似于软件设计,软件设计有架构设计(结构设计/概要设计)和详细设计,所以对于测试用例的质量标准,也应分为两个层次来考虑:高层次——满足某... 查看详情

质量如何衡量测试用例质量

测试用例的标准不能局限于一个层次,因为测试用例设计类似于软件设计,软件设计有架构设计(结构设计/概要设计)和详细设计,所以对于测试用例的质量标准,也应分为两个层次来考虑:高层次——满足某... 查看详情