什么是用户故事(User Story)和验收标准(Acceptance Criteria)

一个非常完美的基于现实场景的用户故事验收标准指南:

在软件开发行业中,“需求”一词决定了我们的目标是什么,客户真正的需求是什么,以及是什么可以使公司业务快速增长。

无论是作为开发软件产品的产品型公司还是以提供各种领域服务为主的服务型公司,最基本的、最主要的是需求,对于成功的定义就是如何更好满足需求。

在不同的项目方法论中,“需求”一词都有不同的名字。

在瀑布模式,它指的是“需求和spec文档”,在敏捷、SCRUM中它被定义为“Epic”,"用户故事"。

在瀑布模式下,需求文档是很多的,在一个产品阶段都有200页甚至更多。但是敏捷是不同的,因为需求都是小的功能或者模块(feature)的,产品都是循序渐进一步一步的方式去准备的(sprint)。

在这边文章中,我将以一种相对简单且容易理解的方式分享有关用户故事和他们验收标准的一些经验。

那么什么是用户故事呢?

一个用户故事就是一个功能或者feature的需求(requirement),被写出了也就一两行字,最多5行。一个用户故事通常是最简单的可能性需求,有且只能是一个功能或feature。

最常见使用的标准格式的用户故事如下:

作为一个用户/客户角色,我想要达到的目标是什么,以及达到目标的原因

e.g:

作为社交工具微信的用户,我想要在聊天对话框中有一个拍照图标去自拍和发照片,那么我就可以和朋友一起相互发照片。

什么是验收标准?

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

这是用户故事完成很重要的一部分,它需要被产品负责人和业务分析人员认真的学习,因为错失一个很小的标准都会损失惨重。这是简单的编号或者编号列表。

格式如下:

在我做某些动作(action)之前请赐给一些先决条件,然后期望结果发生。

举个栗子:

1. 假设我正在和朋友聊天,我应该能够拍照

2. 当我点击照片时,我应该可以在照片上添加一些文字,然后发给朋友

3. 如果我的手机照相机有问题,一条错误信息,如“摄像头无法打开”...,相应的也应该出现

因此,用户故事为任何功能或feature定义了需求,另一方面,验收标准为用户故事或需求定义了“完成标准的定义”。

作为QA,理解用户故事非常重要,同时深刻理解验收标准,并且在测试开始前没有一点的疑惑。

深度挖掘的用户故事:

开始之前,让我们理解对一个基本的事情“深度”学习的重要性,比如用户故事

案例#1:

三年前,我当时在为一个手机app项目工作,这个app是一个快递系统的应用。

你当然会想到有人来寄快递,然后会要求在他们手机app上签名。这些签名会反映在快递服务商的网站上,比如顺丰。

问题:在某个冲刺(sprint)里,产品负责人对这个app有个用户故事是:“作为网站管理员,我应该能够在网站上看到用户寄快递的签名”。而这个网站相应做出变化和更新的以反映这些签名。

作为一名QA,你不得不去验证手机app的签名是否如期望的反映到网站上。

如果你看到这个用户故事,觉得很简单但是,这里有个隐藏的需求“对应历史的快递签名,没有签名反映功能,因此如果网站管理人员看到历史快递记录会发生什么呢?” 历史数据被清除吗?还是遇到这些数据报错?

当然不是,这些都应该被和谐的处理。

解决方案:当相应的数据表格被更新而为签名的位置增加一列,那些旧的数据应该变成NULL或者0值,而这些值需要被检查,一条信息“没有签名存在”被显示出来。

这个就被叫做来自产品负责人或者商业分析师的失误,但是必须做。成功完成一个功能但打破了一些东西就会令客户不满意。这些都是需要在一个相同的用户故事和冲刺中完成。

案例#2

6年前,我当时工作是关于“退休计划的金融软件”,这是个国际化的软件,金融顾问可以用它为不同的货币去做投资计划、储蓄等,服务很多的顾客。

问题:产品负责人给你的用户故事是:“作为金融顾问,我想要看到根据我的客户提供的金融资产详情的报告”。

这里有2个隐藏的需求,我称之为一个未完整的故事,因为:

a.这个报告应该考虑每天的汇率而不是历史的已经被查看过的报告

b.如果在提供详细的用户资产信息后,汇率变化,报告应该显示变化的汇率

解决方案:我直接跟产品负责人提出了这个担忧,使他意识到这2个必须尽快做的需求。他同意我的意见并且为即将到来的冲刺创建了2个不同的高优先级用户故事。

获取需求:这些需求被发现是因为我们很好的关注了产品、设计、结构等等。这些知识能够完成只有在彻底理解产品,理解模块间的交互,以及对即使只有2行文字说明的用户故事的深刻学习。

请注意,想使事情变得简单化就和商业分析师以及开发多讨论他们的想法。

深度看待验收标准

理解验收标准以及其他所有的条件&规则是特别重要的,比理解一个用户故事更重要。因为,如果一个需求是不完整的或是模糊的,需求可以在下个冲刺被开发,但是验收标准就会有缺失,进而导致用户故事不能上线。

假设我们都在用网上银行,甚至每一天都在使用它并且查看下载交易记录。如果你仔细观察的话,当你下载这些记录的时候有很多选项供你选择。比如有这么个选项信用卡/借款/所有。

现在假如产品负责人给你这么个用户故事“作为一个用户,我想下载我的账单以至于我可以看到我某个特定时间段的所有的交易”。

下面的是验收标准:

* 假设我在历史账单页面,我应该可以选择我需要下载账单的时间段

* 假设我在历史账单页面,我应该选择一个我需要下载账单的账户

* 假设我在历史账单页面,我不应该被允许选择一个将来的时间节点来下载账单

* 假设我在历史账单页面,我不应该被允许选择一个超过过去10年的时间节点来下载账单

* 假设我在下载账单,我应该能够看到下载的文件

* 假设我在历史账单页面,我应该可以选择下载不同格式的文件(Excel、pdf等)

如果你浏览这些标准,你发现3个事情丢失:

* 命名和下载文件名字的格式

* 有什么信息在文件里,每行都显示什么

* 交易的选项是哪个,信用卡、借款还是全部

像这些案例可能会在一段时间内发生,但是仍然需要很好的学习每个验收标准并且参考用户故事使其更加形象化。关于条件和业务你学的越深入,你的知识也会越多。

bug在初始阶段所带来的成本是难以和“测试”阶段相比较的。


发现用户故事和验收标准差异的重要性

在开发和测试开始之前的早期阶段,做一个深入的用户故事和验收标准的研究总是非常重要的。

因为涉及到:

#1) 时间的浪费:

如果是在开发或者测试进行中的时候,在用户故事/验收标准中发现一个差异或者错误,那么在剩余的冲刺时间内可能大量工作需要返工。

即使产品负责人有一些事情被遗失,返工也不会发生,他们会把用户故事移到下个冲刺。但是95%的概率是他们要求团队完成必要的东西以及在同个冲刺发布。

因此,就变成了整个团队的噩梦因为不得不花费额外的时间,周末加班或工作到深夜。在最早可能的阶段通过学习和讨论用户故事、验收标准就可以避免这种情况。

#1)工作努力(efforts)被浪费:

开发和测试不得不再一次重新审查完成的代码和测试用例。更新、增加以及删减,每个需求都不是一件容易的任务。这种情况就变得特别痛苦,再加上已存在的交付的压力。

在这种情况下,在开发和测试阶段就有可能出现一些错误。如果你遇到这种情况继续用“DevQA”配对,那么额外的工作也无法弥补。


结论:

深刻理解用户故事和验收标准只能通过花费巨大的时间去学习。

在市场上也没有特定的工具或课程去帮助你,因为一切都是关于产品的逻辑思维、经验、知识。

积极参与预先计划会议,和商业分析师探讨、自己学习都能够帮你完成。你花的努力越多,你学到和成长的越多。

作为QA还是开发,关于用户故事和验收标准每个人都必须在达成共识,然后来满足客户的期望来获得成功。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,423评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,339评论 1 289
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,241评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,503评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,824评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,262评论 1 207
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,615评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,337评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,989评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,300评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,829评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,193评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,753评论 3 230
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,970评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,708评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,295评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,207评论 2 258

推荐阅读更多精彩内容