• 0
  • 0
分享
  • 验收标准不是测试用例——软件测试圈
  • 恬恬圈 2022-12-16 11:04:05 字数 2709 阅读 1113 收藏 0

敏捷质量实践中提倡测试左移,测试人员要尽早介入需求阶段,越早越好。测试人员需要关注需求的有效性,以及在需求产生和传递的过程中,交付价值是否被准确的描述、理解和对齐。在这个过程中很容易遇到一个常见问题:验收标准是验收测试要测的吗?验收标准到底是不是测试用例?这两者之间有什么区别和联系?本文主要想解决的就是这个具体的困惑。

验收标准是确保需求实现的最小集合

验收标准是什么

回顾一下需求由厚厚的《软件需求规格说明书》演化为一张用户故事卡片的过程,在这个过程中我们舍弃了大量的细节描述,突出了需求需要交付的客户/用户价值。在需求交付的过程中,我们会一直关注价值,在保证价值的前提下,实现方式和技术细节都是可以讨论的。

那么问题来了,既然很多内容都是可以讨论的,我们怎样确定一个用户故事被实现完成了呢?验收标准就是用户故事实现完成的试金石。可以这样说,一个用户故事能否被标记为开发完成并进入测试阶段,很大程度上取决于验收标准是否全部通过。

通常来说,验收标准就是一系列可以接受的条件或者业务规则,且与功能或特性相互匹配和满足,同时也能被产品负责人和相关干系人接受。

敏捷实践中,推荐使用行为驱动开发(Behavior-driven development,缩写BDD)的方式来写验收标准,即使用GWT格式。

  • Given (在什么样的情景或条件下)

  • When (采取了什么行动)

  • Then (得到什么结果)

举个例子:

  • Given (假设) 我在搜索界面

  • When (当) 我填写入住城市,选择住宿时间

  • Then (于是) 我可以浏览该城市和该时间段内空闲酒店的名字和价格

在编写验收标准时,应重点关注可以验证需求实现的用户场景上,更多的是正向验证用户需求实现完成,切忌将验收标准写成测试用例或者测试点。

验收标准在什么时候用

故事启动(Story Kickoff)

在故事启动时,需求涉及的全部角色:需求分析师、开发、测试、体验设计师,大家需要坐在一起进行需求澄清,确保所有人对需求的理解一致,并约定好故事验收时的验收标准都有哪些。在这个过程中,任何人都可以针对验收标准进行提问,或者补充更多的验收场景。

故事验收(Desk Check)

当开发人员完成代码实现后,做一些基本的自测工作,并准备好验收场景和数据,就可以约大家进行故事验收了。验收时,也需要需求设计的全部角色,大家坐在一起,听开发讲解实现细节,并逐一演示验收场景。如果验收标准全部验证通过,大家也没有其他问题,这个用户故事就可以被标记为开发完成,准备进入测试阶段了。

用户验收测试(User Acceptance Test)

除了研发团队的测试外,迭代的交付还需要一定的用户验收测试。用户验收测试的设计和执行者有时是PO、或是提出需求的客户及相关干系人,有时是小范围内测或公测的真实用户。在用户验收测试时,执行者也会在一定程度上参考验收标准,检验验收标准是否完备,是否都能满足用户预期的验证通过。

验收标准不是验收测试

从上文的讨论中,可以得出结论:验收标准是定义用户故事完成的标准。而验收测试分为两部分,一部分发生在用户故事开发完成后,是研发团队内部的验收,另一部分是在测试完成后上线前,由客户或真实用户进行验收。由此可见,验收标准并不等于验收测试,验收标准是验收的最小集,而验收测试的范围要更广。

测试用例验证了软件功能的有效性

测试用例是什么

测试用例是指为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。简单来说,测试用例就是用文字来描述以怎样的步骤测试一个测试点,以及期望的测试结果是什么。

测试用例通常会包括:描述、优先级、前提条件、执行步骤、期望结果、实际结果和备注等信息。根据项目各自的特点,测试用例包含的信息不尽相同。

1.png

测试用例在什么时候使用

用例设计和评审

在测试设计阶段,测试人员根据需求,采用多种设计思路来编写测试用例,并提交至测试组或项目组进行用例评审。此时,测试用例承载了业务需求的测试点,以及测试人员基于专业经验识别出的非业务需求类的验证点。

测试执行

在测试执行阶段,测试人员(有时也是用例编写者)按照用例的详细描述执行测试用例,并根据实际执行结果与预期结果是否一致,来判定该测试用例是否通过测试。不通过的用例需要分析原因,报缺陷或以其他方式进行跟进。

回归测试

开发对用例相关的功能进行改进,或者修复了相关缺陷,就需要对指定用例进行回归,确保功能没有被改坏,或者缺陷确实被修复了。另外,有时在重大上线前,也需要按优先级选取一定量的测试用例来进行回归测试,以确定主线业务流程功能正常。

沟通测试点

测试用例还有个很重要的作用,记录具体的实现细节以及框定需求的测试范围。多个迭代过去,大家在需要翻看历史需求时,可能故事卡不足以还原全部的实现细节,测试用例集在这个时候就能够完整的告诉大家:软件是怎么实现的,当执行某些操作时,程序有什么表现,以及当时这个需求的测试范围是什么。尤其在团队成员上下文不足时,良好设计并编写的用例集可以完美补齐这些知识。

验收标准不是测试用例

以上我们讨论了验收标准和测试用例分别是什么,以及在什么阶段使用。容易得出,验收标准与测试用例是完全不同的两件事,两者的相同点在于它们都是可判定的用户使用场景,可以根据预期来判断是否通过,而两者的区别体现在下表中的各个维度上。

2.png

本文我们还讨论了验收标准不是验收测试。仅从覆盖范围来看,验收标准、验收测试、测试用例的关系可以参考下图:

  • 测试用例:覆盖范围最大,应该是确保软件功能正常、满足用户预期的测试全集

  • 验收测试:覆盖范围比测试用例小,只覆盖验收需要的测试用例

  • 验收标准:覆盖范围比验收测试小,只覆盖验证需求实现完成的测试用例

3.png

当然,验收标准和测试用例除了使用时机外,两者的区别也体现在不同的责任人和使用范围。验收标准的责任人是需求分析师,在团队协作过程中使用,是多角色合作的基础;而测试用例的责任人是测试人员,属于测试专业上下文的内容。但在不同的组织结构下,对角色的定义会存在一定模糊的界限,因此,“全团队为需求的验收和质量负责”是比较推荐的理念。

相信经过本文的澄清,我们已经搞懂了验收标准和测试用例到底是怎么回事。随着行业的发展,为了测试左移,将有越来越多的测试人员需要懂需求;相应的,为了高效产出高质量的需求,也有越来越多的需求分析人员需要懂测试。需求分析人员与测试人员一起打造高质量的需求,将为交付高质量高价值的软件奠定坚实的基础。


作者:于晓南 

原文链接:https://insights.thoughtworks.cn/acceptance-criteria-testcases/

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   微信发红包测试用例  功能  1、在红包钱数和红包个数的输入框中只能输入数字;  2、红包最多最少的输入钱数200、0.01;  3、拼手气红包最多可以发多少个红包  4、超过最大拼手气红包是否有提醒;  5、当红包钱数超过最大范围是否有提醒;  6、余额不足时,红包发送失败,或者会不会匹配切换支付方式;  7、红包描述里是否可以输入表情汉字英文数字等;  8、红包描述里最多有多少个字符;  9、发送的红包别人是否能正常领取;  10、发送的红包自己可不可以领取;  11、24小时后别人没有领取的红包是否可以退回原来账户,或者是否还可以领取;  12、用户是否可以多次抢一个红包;  13、...
            11 12 3646
            分享
          • 性能测试,是结合被测系统应用架构、业务场景和实现细节、逻辑,对软件响应时间、处理速率、容错能力等进行分析测试,找到系统的性能瓶颈,并确认问题得到解决的过程。由于工作需要,对性能测试缺陷分类进行了整理,这篇博客,聊聊常见的性能缺陷以及表现方式。。。性能测试缺陷分类缺陷类型缺陷描述硬件磁盘空间CPUIO读写速率内存网络带宽网络波动CDN延时丢包应用JVM代码逻辑配置JDK版本底层配置参数配置数据库索引锁表空间慢SQL数据量中间件超时线程池缓存策略最大连接数通信实现方式负载均衡一、硬件磁盘空间:磁盘空间不足导致系统运行变慢,文件、日志等无法生成存放导致的性能瓶颈;CPU:CPU的核心功能是解释计算机...
            13 13 1476
            分享
          •   6 月 3 日,深圳市南山区低空经济投资推介会暨行业发展论坛在深圳人才公园求贤阁举行。在此次活动中,一架由深圳幽浮飞碟科技有限公司研发的电动垂直载人飞碟吸引了众多市民的目光。这也是全球第一架电动垂直载人飞碟,可以实现在水面起降,具有水陆两栖功能,目前主要用于观光旅游和广告表演。  据悉,这架飞碟的核心研发团队来自北京航空航天大学和西北工业大学,经过三年多的努力,打造出了这一创新产品。飞碟采用六孔涵道 12 个桨叶电机结构,从电源、动力电机、飞行控制等多方面实现三重安全冗余。飞碟的飞行时间可达 15 分钟,飞行高度达 200 米,最大水平飞行速度可达 50 千米每小时,还能从自动驾驶、手动驾...
            0 0 1145
            分享
          •   一.背景介绍  继自动提交bug到jira文章之后,这时候就会有人有疑问了,我每天都在跑自动化测试(美其名曰每日构建),也每天都在自动提交bug,可能昨天提交的bug尚未解决,今天又重新提了一遍,一周下来累计的bug好几千了,怎么办?一个个去手动过滤,有木有感觉直接崩溃了?那么为了解决这个问题,今天我们就来介绍一个自动化过滤的方案及其实践。  二.测试需求分析  此方案也主要使用python/pytest实现,主要针对于jira上bug的处理,当然也可以使用过滤重复需求,重复任务等等均可以。  准备工作:  1.在处理之前,你首先需要了解部门的jira流转图(不同公司或部门都可能不一样),...
            0 0 847
            分享
          •   自动驾驶已然成为汽车行业热词。在大家殷切的期盼下,近几年上市的车型,多少都要有和“自动驾驶”功能相关才能赢得消费者青睐。  ▍自动驾驶汽车测试的必要性  自动驾驶汽车测试是自动驾驶研发中的重要环节,也是自动驾驶技术发展的重要支撑,随着智能网联汽车高等级的自动化和网联化系统不断产业化落地,对测试的依赖越来越深入,尤其是面对即将量产落地的L3级以上自动驾驶产品,对现有的测试技术、标准和法规,都提出了新的挑战,需要新的技术突破。  自动驾驶汽车本身结合了车辆技术,人工智能,模式识别,5G通讯,传感器融合等多领域,跨学科知识。跟传统的汽车测试有很大不相同,为了应对千变万化的交通场景,需要海量的数据...
            0 0 460
            分享
      • 51testing软件测试圈微信