项目管理这些事儿

【Scrum】敏捷软件开发——团队(7)

2023-02-16  本文已影响0人  NumLock

十六、质量

把测试集成到流程中

Scrum把测试作为一个主要的实践,并把测试作为开发过程的一部分,而不是作为开发工作“完成”后才发生的某事情

质量不能在产品生产完成以后加到产品上,要改进工艺流程,从一开始就生产出优质的产品

1、为什么最后才测试没有效果

1)很难改进现有产品的质量

2)错误一直未被发现——及早测试会避免一些令人不快的意外在最后才发生

3)项目状态难以测量——持续地测试产品,能让我们更清楚产品的现状

4)错失反馈时机——早期的反馈很重要

5)测试很有可能被削减——后期测试有进度压力

2、什么是构建质量

构建质量的团队有以下特征:

1)最明显的是使用工程技术实践——结对编程、自动化单元测试、持续重构

2)程序员和测试人员之间的交接微不足道——或者几乎没有

3)在Sprint的第一天和最后一天应该有同样多的测试活动——Sprint中不存在明显的分析、设计、编码、测试阶段

不同层次的自动化

单元测试自动化是根基,也是最容易设计的部分

用户界面测试很难自动化,因为它脆弱、成本高、耗时

应用程序服务的自动化测试是必要的,它可以弥补用户界面测试无法自动化的不足

1、保留用户界面测试的角色

尽量减少用户界面的测试,但不是不测

2、手工测试角色

对于许多涉及硬件或与外部系统集成的测试,我们不能或选择不进行自动化

手工测试应主要为探索式测试,快速在测试计划、测试设计和测试执行中循环,短周期,甚至可以识别遗漏的测试用例

3、在Sprint内做自动化

一个团队要高效率的冲刺,需要严重依赖自动化

忙碌开发代码的时候,正是代码变化最频繁的时候,这是自动化测试发挥作用的最佳时机

为已有应用增加自动化测试会更难

随着时间的推移,自动化的成本越来越高,收益越来越低

验收性测试驱动开发(ATDD)

在ATDD中,工作是针对验收测试而进行的

ATDD与TDD的关系

在ATDD中,解放了PO,PO只需要完成对某个用户故事的COS(满足条件)的传达即可

做ATDD有助于减少Sprint计划会议所花的时间

如果COS还没有,两种选择:一个是在计划会议明确掉;另一个是把确认COS作为Sprint的首要任务,第一种优先考虑

1、恰到好处的细节

COS仅仅是在Sprint最后阶段完成用户故事时要满足的内容的概要说明,它们用来判断在一个Sprint结束的时候,用户故事是否被正确完成了

做ATDD,会使团队持续地专注于产品负责人的目标,当测试人员想要了解其职责的时候,它能激发测试人员和开发人员早期进行沟通

偿还技术债务

做一个设计很差、代码写得很差、包括未完成代码或者任何其他缺陷的系统所涉及的成本

技术债常常是由于赶工所致:非预期的数据库数据导致应用崩溃;脆弱的代码;打包环境过时;团队使用过时的工具;

只要快速地还债,小的债务可以激励开发

1、通过三个步骤降低测试债务

1)止血

找到方法进行自动化,“挂在低处的水果”先拿来

加大测试服务器与测试环境的配置投入

2)维持现状

在前面的基础上,逐渐学会新增功能的自动化

3)还债

一旦整套流程被打通之后,就开始还债,但欲速则不达,只要朝着正确的方向在发展就可以

质量需要团队的共同努力

一个好的Scrum团队会一直关注测试实践的状态,总是想方设法加以改进

上一篇 下一篇

猜你喜欢

热点阅读