如何编写用户故事验收测试

首先来说一下个人对于测试类型的几个理解吧,如果要保证一个软件产品可以被正常使用,如下几个测试是少不了的:

1 功能测试(单元测试)

2 可交互测试(集成测试)

3 自动化测试(持续交付测试)

4 性能测试(压力测试)


在编写测试过程中,对于测试如何写,写多少用例算是足够的,不同的人有不同的理解,根据《用户故事》介绍的内容和自己的一些理解,整理如下:

关于测试用例的责任主体可以分为两个,一个是客户团队,一个开发团队

1 客户团队需要完成什么样的测试呢? 客户团队掌握需求,需要定义可交付的测试用例的编写。此时的测试用例既是需求的验收标准,也是对需求的进一步解释澄清。开发团队可以通过对于用例的阅读,进一步的明确客户的实际需求,也就不至于做成的产品和客户的期望有偏差。

比如用户期望做一个招聘网站中供HR输入招聘信息的页面,客户期望可以录入的信息包括岗位名称,工作地址,薪资范围等等,求职者可以查看这些信息。 对于开发人员来说,会把所有的信息录入到界面中进行展示,很有可能要求每个信息都是必填的。但客户的实际希望是某些信息(比如薪资范围)是可以不录入的,对于不录入的条目,对于求职者也是不需要展示的。 像这样的信息,如果通过测试用例的方式明确标记出来,会极大的减少后期返工的成本。

客户团队的测试用例一定要在开发之前写,可以由客户团队来完成或者客户团队和开发团队共同完成,在开发之前就完成测试用例的做法,也就是TDD所要求的工作方法。

2 开发团队需要完成什么样的测试呢?开发团队更多的关注于功能的实现方法,理所当然的就是单元测试的编写了。关于单元测试是在开发之前写还是开发之后写,我个人的看法是需要分两半,一半在开发之前写,一半在开发之后写。 

开发之前写的内容是把客户团队提供的测试用例转换为可执行的单元测试代码,可以在此基础上再增加一些设计方案中涉及到的细节的描写(需求在转换为设计方案的过程中,会有一些更加细化的内容,这些内容对客户来说可以认为是透明的)。

开发之后写的内容是把在具体编码过程中涉及到一些内部逻辑的判断进行一些边界测试或者健壮性测试,避免出现空指针异常等一些低级的错误。


之前在摩洛哥项目实践过类似的处理方式,整个流程是这样的:一个需求过来之后,首先会召集设计,开发,测试等相关的同事进行需求评审,让大家对需求的内容有所了解。 之后设计同事就可以开始设计方案,测试同事就可以根据需求来编写测试用例了(一定要按照需求来写测试用例,而不是按照开发同事给的逻辑来写)。开发同事按照测试同事提供的用例进行自测(在自测的过程中会根据代码的实际编写情况增加一些单元测试的场景并反馈给测试同事),自测完成后提交代码。 测试同事根据最终的测试用例进行集成测试。

这个做法的好处是使测试同事有更多的精力来关注业务本身并设计更多的测试用例,开发人员根据测试同事的用例完成自测之后,代码质量会有明显的提高,返工率降低了很多,从而释放了测试同事的精力,促成了一个正向循环。

关于测试用例应该写多少的问题,书中给出的答复是:只要测试用例还可以继续为故事增加价值和使其更清晰,就应该继续编写。 所以这个问题没有一个可以量化的答案,只能是在实际工作中进行平衡,通过不同团队同事的协调沟通,大家获取一个可以接受的平衡值。

书中给了一个例子,比如要支持多种信用卡的支付,如visis,master等等,其中一个场景是需要校验卡片的失效日期,我们可以为visia写一个卡片失效的用例,但如果跟开发人员沟通后发现:所有卡片的失效日期都是用同一个函数校验的,那其实就没有必要为其他的每种卡片增加这样的用例。


暂时先写这么多了,除了功能测试和可交互测试外,我还对自动化测试非常的赶兴趣,这是一个可以极大提高版本质量的手段,后面我们再找时间慢慢聊吧。

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,510评论 25 707
  • 文章来自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鹏阅读 9,188评论 2 126
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    Mr希灵阅读 21,938评论 7 278
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    宇文臭臭阅读 6,713评论 5 100
  • 在职场中,谈判无处不在,你是否在谈判中总是找不到突破口?你是否在谈判过程中经常被对方牵着鼻子走?你想在薪资谈判中掌...
    新胡杨阅读 278评论 0 0