美文网首页
【Scrum敏捷软件开发】第十六章 质量

【Scrum敏捷软件开发】第十六章 质量

作者: 刘刻 | 来源:发表于2017-11-01 15:17 被阅读0次

一个产品的质量是这个产品的灵魂。

不能在最后才开始做测试

很多时候人们理所应当觉得测试应该在项目的最后阶段进行,但是这样的策略存在以下缺点:

  • 很难改进现有产品质量
  • 在测试之前一直有错误,但是未被发现
  • 项目的状态难以测量,一次性发现的大量错误难以估计修复时间
  • 错失反馈时机
  • 因为后期的项目压力,测试可能会被削减

所以我们需要利用Scrum将测试融入在整个项目的行进过程当中。这样进行的项目有如下特点:

  • 程序员和测试人员之间每天都会打交道,不存在“交接”的说法,这样一起工作的团队更有协作能力,同时大家可以一同讨论项目的趋势。
  • 在Sprint的第一天和最后一天有着同样多的测试活动。

自动化测试

这里要提到一个自动化测试的金字塔模型,从下到上分别是:单元测试,服务测试,UI测试。分别对应我们项目当中的UT,IT以及NightWatch测试。

单元测试

单元测试是整个自动化测试的一大基石,非常重要。它不但能够保证最小粒度上代码的正确性,而且效率非常高。我们的经验是,一个产品的初期可能会花费相对大量的时间写UT代码,并且效果并不是很明显。但是随着产品的增强,项目的进行,初期所写的单元测试将会发挥巨大的作用。

服务测试

即对应我们项目当中的IT测试,是针对整个服务进行的测试,程序员编写测试代码直接对于服务的功能进行测试。这样做的测试能够直接验证服务的正确性,并且成本较低。

UI测试

书中提到UI测试应当适当少的进行(不是尽量少)。因为UI测试相对于服务测试具有以下缺点:

  • 脆弱,因为功能的小改动可能给UI测试代码带来巨大改动。
  • 成本高,相对于服务测试,UI测试代码确实需要更多的时间去写。
  • 耗时,运行一次UI测试往往需要更多的时间。

从我们项目的经验来看,UI测试确实存在以上的问题。但是在大家做总结的时候发现UI测试其实是必不可少的,因为书中的观点只是试图通过UI测试发现服务端有哪些Bug。但是我认为UI测试另外一个非常重要的功能(可能是最重要的功能)就是保证UI的功能的正确性。实践中我们觉得UI测试确实起到了这样的作用。

手工测试

自动化测试并不能覆盖所有的测试点,而且有些时候自动化测试比手工测试成本更高。手工测试应主要作为探索性测试。另外在一个Sprint当中,开发出来的新功能应进行手工测试。

技术债务

技术债务指的是在开发过程中,如果出现了不良的设计或实现,则是“欠债”。后面需要一些时间精力来修复,即“还债”。
并不是所有的技术债务都是不好的。比如说在项目快要交付的时候,有时候为了修改一个问题可能会引入稍欠考虑的实现,但是这样的技术债务是利大于弊的。但是对于所有的债务,应当尽快的解决。“只要快速的归还,小的债务可以加速开发”。

相关文章

  • 【Scrum敏捷软件开发】第十六章 质量

    一个产品的质量是这个产品的灵魂。 不能在最后才开始做测试 很多时候人们理所应当觉得测试应该在项目的最后阶段进行,但...

  • 2019-08-11学习总结

    《scrum敏捷软件开发》 第十二章:领导自组织团队 自组织是敏捷软件开发的基本概念。敏捷宣言有一个原则:“最好的...

  • 小步前进-快速试错-价值导向

    最近看了本敏捷软件开发的相关书籍 ——《Scrum精髓》,说起Scrum,做敏捷软件开发的人并不陌生,是一个很常用...

  • Daily Scrum每日站会介绍

    什么是Daily Scrum Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发。对于Daily Scrum...

  • 关于Daily Scrum每日站会

    敏捷项目管理-Scrum 什么是Scrum? Scrum是专注于迭代式软件开发管理的敏捷项目管理方法。 项目团队构...

  • 2019-08-04学习总结

    《scrum敏捷软件开发》 第十一章:团队协作 scrum团队一成俱成,一败具败。这里没有“我的工作”和“你的工作...

  • 2019-06-30学习总结

    《scrum敏捷软件开发》 第六章:克服抵触 不只是保守主义者会抵触scrum,有些实用主义者也会抵制,由于实用主...

  • 2019-07-28学习总结

    《scrum敏捷软件开发》 第十章:团队结构 没有一个团队结构是永久的。如果当前的团队结构会影响项目使用scrum...

  • Learn the SCRUM

    SCRUM 是一种敏捷软件开发的方法学,用于迭代式增量软件开发过程。 一、SCRUM 的特性 Scrum Mast...

  • Daily Scrum

    什么是Daily Scrum? Daily Scrum——每日站会是敏捷软件开发方法论Scrum的相关技术之一,亦...

网友评论

      本文标题:【Scrum敏捷软件开发】第十六章 质量

      本文链接:https://www.haomeiwen.com/subject/wdpwpxtx.html