浅谈测试驱动开发


title: 浅谈测试驱动开发
date: 2017-02-05 21:58:28
tags:

  • 设计模式
    categories: 设计模式

近两日参加了名为“软件测试质量体系最佳实践”的分享,其中着重介绍了质量体系的建设,测试的经验以及方法,就我个人最大的收获更多的是关于TDD的思考,在此简单记录。

Bug的影响

不成熟的团队中一个常见情况:

频繁被突发问题打断,响应式的处理,目标达成率低,可以称这样的团队为响应式的团队。

为什么频繁的响应Bug会严重消耗团队资源?

  1. 完整的Bug处理的过程时间长
  2. 一个Bug导致多个Bug的产生
  3. 人员缺乏动力

预防Bug

然而解决Bug并不能算作突出的贡献,针对Bug的预防工作要优于Bug解决。从被动的救火到主动的预防问题发生,减少突发问题。

一个团队的重要指标,是有效代码的产出,而不是代码的产出。

有效代码,如同字面意思,有效的,可复用的,没有大量Bug,可以赚钱的代码。

如何保证代码有效?测试!

测试

手工测试无法做到连续提供测试服务,存在间断,代码修改后测试报告随即失效。为了解决测试的间断问题,必须引入自动化测试。

开发工作中耗时最多的是在调试,如果能减少问题的出现,避免反复调试,可以节省大量的时间、精力。

因此,测试并不会让团队的工作量出现明显增加,最终开发与测试的人数趋于接近。

测试短期可以帮助我们找Bug,长期可以帮助我们建设质量体系。

质量体系

系统的健康状况,项目的完成情况应当从质量体系中直观,实时的获取,而不是通过大量的会议,讨论得出。

数据的三个来源

  • 用例库

    积累的测试用例

    要求能复用(良好的测试框架)

    能够与其它平台,系统方便集成(一个test case对应多个test Run)

  • 缺陷库

    Bug的完整生命周期记录

  • 结果库

    每次自动化测试的结果

    最小的单位不是test case,而是test run

质量体系,不仅用于预防问题,长远看还需要提供数据支持,需要辅助决策,辅助管理。

团队

当一个团队可以很好的预防问题的发生时,可以称这样的团队为建设型的团队。

传统的瀑布模型中开发完成开始测试是导致项目进度缓慢的一个重要原因。

如何让开发与测试并行?测试始终伴随开发,甚至优先于开发。

开发,测试并行的三个重要保障:需求文档,开发文档,测试文档

TDD

文档评审

从执行过程上来看,当需求文档出来后,开发和测试需要同时整理对应文档,然后进入评审环节。

需求作为开发,测试的输入项,要求需求文档不能出现偏差。

从制度上可以做出一些规范化,例如:

  • 需求文档、开发文档、测试文档作为三个关键文档,任何一个都一定不能或缺
  • 三个关键文档都要有评审,三次的评审都要求产品、开发、测试负责的人员到场确认
  • 文档可以驳回,但确认后的文档不可更改
  • 任何一个文档出现滞后,都要记录,分析问题

文档内容要细致,需求文档作为开发文档和测试文档输入,尤其重要。

各个文档的基本标准:

  • 需求文档:明确各步骤输入输出
  • 测试文档:明确各个测试点,需要进行什么测试,是否要求自动化等信息,设计(复用)测试框架
  • 开发文档:提供设计架构,需要细致到开发阶段填充代码就可以了

一个优秀文档的重要标准:评审打回次数。

开发,测试并行

三个文档评审结束后,开发和测试同时开始工作。

其它

关于需求分析

需求分析需要专业的人专门处理,需求分析的过程如同医生看病:

医生不能问病人想吃什么药,想怎么治疗,而是需要找到病人病因

产品不能表面的询问用户想要什么,而是要发现用户的真实需求

需求分析过程展开:

  1. 获取

    得到最原始的需求,这些需求可能是凌乱的,甚至是矛盾的,不能直接用来开发

  2. 分析

    剔除原始需求中的噪音,获取真实的需求,这个阶段产品应该基本确认需求

  3. 细化

    产出原型,与美术,设计确认沟通,明确每步的输入输出

  4. 固化

    与用户确认,得到最终版本的需求文档

关于团队成员能力

  1. 不能迁就最低能力人员,要推动团队成长,进步
  2. 开发与测试要互相促进,测试需要考虑开发设计的文档是否可以进行测试,有哪些改进,开发需要考虑代码的覆盖
  3. 通过模板让人员能力可流动,可转化。总结高质量方法,模板,流程给团队复用,提高整体质量

关于测试

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

推荐阅读更多精彩内容

  • 1****、问:你在测试中发现了一个bug****,但是开发经理认为这不是一个bug****,你应该怎样解决? 首...
    蛋炒饭_By阅读 5,291评论 1 94
  • 文章来自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鹏阅读 9,188评论 2 126
  • 1.问:你在测试中发现了一个 bug ,但是开发经理认为这不是一个 bug ,你应该怎样解决。 首先,将问题提...
    qianyewhy阅读 9,236评论 4 123
  • 绝望的今天,有幸求助了有经验的长辈。这位长辈向我描述了最真实的状况,描述的异常清晰,为我指点迷津。从工作重心,工作...
    懿拾阅读 329评论 2 1
  • 我好怕自己变成一个神经病 自己疯疯傻傻 连死都不懂 家里人操心一辈子 你呢 就这么一走了之 倒也是决绝 有时候恨你...
    重复走阅读 249评论 0 0