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

2017-11-01  本文已影响0人  刘刻

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

不能在最后才开始做测试

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

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

自动化测试

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

单元测试

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

服务测试

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

UI测试

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

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

手工测试

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

技术债务

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

上一篇下一篇

猜你喜欢

热点阅读