10x 程序员工作法
郑晔
开源项目 Moco 作者
53432 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 63 讲
思考框架 (1讲)
10x 程序员工作法
15
15
1.0x
00:00/00:00
登录|注册

33 | 如何做好验收测试?

其他验收测试方法和框架
编写BDD测试用例的最佳实践
BDD为核心的自动化验收测试方式
自动化验收测试是逐步发展的过程
考虑业务测试模型
关键点在用业务视角描述
例子描述交易场景的测试用例
提供一套语言体系,描述应用的行为
使用业务语言进行描述
促进业务人员与开发团队之间的协作
自动化验收测试是重点考虑对象
通常由测试人员负责
由技术团队完成
确认应用是否满足设计规范的测试
总结时刻
写好验收测试用例
行为驱动开发(BDD)
验收测试
如何做好验收测试?

该思维导图由 AI 生成,仅供参考

你好,我是郑晔。
经过前面三讲的讲解,相信你对一个项目自动化应该是什么样子有了一个相对完整的认识:程序员写好程序,用构建脚本执行检查,提交代码,在服务器上打出一个发布镜像,部署到各个环境进行检查,检查好了,随时可以发布上线。
我们在前面的内容中只说了该检查,但怎么检查呢?这就轮到测试发挥作用了。
在“任务分解”的模块,我给你完整地介绍了一下开发者测试的概念,但在那个部分讲解的测试基本上还停留在单元测试和集成测试的范畴。对于整个应用该怎么测,我们并没有仔细讨论。
今天我们就来说说应用测试的话题:验收测试。

验收测试

验收测试(Acceptance Testing),是确认应用是否满足设计规范的测试。这种测试往往是站在用户的角度,看整个应用能否满足业务需求。
从名字上来看,验收应该是业务人员的事,但业务人员能做的最多只是验收,测试是他们无论如何也不太可能做仔细的。
所以,验收测试这件事,往往还是由技术团队自己完成,而且在很多公司,这就是测试人员的事。
时至今日,很多测试团队都拥有自动化的能力。所以,自动化验收测试自然是重点考虑对象。今天,我们的重点就是怎么做好自动化的验收测试。
其实,验收测试应该是人们最早想到的自动化测试,早在单元测试还不流行的年代,人们就开始了对自动化验收测试的探索。有不少团队甚至还构建了自己的框架,只不过,这种框架不是我们今天理解的测试框架,而是针对着一个应用的测试框架。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

自动化验收测试是确认应用是否满足设计规范的重要环节。本文以行为驱动开发(BDD)为核心,介绍了一种自动化验收测试的方式。BDD通过使用业务语言描述测试用例,促进了业务人员与开发团队之间的协作。文章重点讨论了Cucumber作为BDD框架的应用,以及编写BDD测试用例的最佳实践。此外,还提到了其他验收测试方法和框架的存在,如Specification by Example和Concordion。总的来说,无论采用何种方法和框架,自动化验收测试的目的都是缩短业务人员与开发团队之间的距离,提高开发效率。读者可以从本文中快速了解到自动化验收测试的重要性和实际操作,对于想要深入了解如何做好验收测试的人具有一定的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《10x 程序员工作法》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(18)

  • 最新
  • 精选
  • 西西弗与卡夫卡
    之前团队就有人自己开发了一套DSL用来描述验收测试用例,自己跑各种测试,从构建依赖环境,启动虚拟机,到运行测试,不亦乐乎。我发现真有一类人迷恋这种做法,愿意把代码和测试代码以及验收测试代码写得很好,即便开始的时候要花比较多时间,他们非常享受测试通过后的绿色bar。虽然过于迷恋未必有利于项目,但据我观察大多有这样工作习惯的技术人员都很出色

    作者回复: 我很喜欢一个说法,软件工匠,把写代码这件事当做手艺活来不断打磨。

    2019-03-27
    31
  • helloworld
    类似BDD这种行为驱动开发相关的内容,包括其已有的框架Concordion是第一次了解到,长见识了。不过在我的了解中,能够践行这种验收测试的公司应该很少吧?

    作者回复: 做测试的程序员不多,做BDD的人就更少,所以,只要学会这些东西,就比业界大部分程序员水平高了。

    2019-05-05
    12
  • 行与修
    如果在理想状态下,单元测试、持续集成和系统测试等都做的很好,那么验收测试一把过是不是就顺理成章了甚至不需要了?它们几个在软件生命周期里侧重些什么?验收测试作为一个主题单独讲解是不是说明前几个还不能保证足够完善或者需要从别的视角对它们做出修正呢?

    作者回复: 你都说了“理想状态”下,现实情况是,理想状态不存在。验收测试就是站在业务的视角看待系统的一个过程,而其它几个都是站在软件本身的角度在看。 以我对开发做测试这件事的理解来看,开发人员在测试用例设计上,与测试人员还是有很大差距的,测试人员总是可以探索出不同的角度打败你。

    2019-03-31
    8
  • 苦行僧
    验收测试和常规的集成测试 有什么区别?

    作者回复: 一般说集成测试,还是站在内部的角度,也就是技术的角度在说,而验收测试应该是站在业务的角度,没做好的另当别论。

    2019-03-27
    7
  • 0xABC
    自动化验收测试确实是很好的东西,比如在回归测试,省去了很多的重复工作。但我理解BDD的初衷是驱动产品、业务、开发、测试等去深入讨论沟通需求,在还没有真的写代码的时候去实例化story,并一起定义验收用例,让每个人对需求的理解都很透彻,当然特别注意的是要从统一的业务角度去描述,可见,真的做好BDD是需要不断的尝试和总结的。

    作者回复: 你的理解很对,BDD 不太可能一蹴而就,需要各方不断磨合。

    2019-03-27
    6
  • Geek_fe0336
    请教老师,有真实项目中的一些验收测试的例子吗?有github上的项目可借鉴的吗?

    作者回复: 我还真不知道哪个开源项目这么做,我都是在内部项目上这么做的。

    2019-03-27
    2
  • enjoylearning
    作者给出的参考链接和一些参考书名都很好,国内项目实施BDD的很少吧,可能客户觉得这很浪费时间,或者他们觉得开发做这个他们要承受一些成本

    作者回复: 不做的理由有一万个,做的理由有一个就够了!

    2019-03-27
    2
  • 冰激凌的眼泪
    验收测试是不是针对业务需求的测试?

    作者回复: 对,应该是这样的。

    2019-03-27
    2
  • 宝宝太喜欢极客时间了
    老师,selenium跟Cucumber,端到端测试跟验收测试,有区别吗?

    作者回复: 对比这里的例子,Selenium是用来实现这里的步骤定义的。

    2019-03-27
    2
  • Jxin
    公司老项目,没有测试代码,更别说bdd自动化验收代码了。不过我在尝试为核心的一些业务补充测试代码。刚好可以研究下。有价值的活动不仅仅是写需求,如果只是验收需求,整成自动化验收成本是比较高的,业务不见个愿意买单。但如果说成减少测试队友重复工作,提高需求开发速度和项目可扩展性与健壮性(利于重构,而重构能产生以上价值),并给出大概的量化指标,大部分业务都会再斟酌下的。

    作者回复: 关于遗留系统的讨论正在不远处等着你。

    2019-03-27
    1
收起评论
显示
设置
留言
18
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部