本书非常的经典,在大型敏捷实践中具有非常好的指导意义。内容很丰富,本文结合书中内容和自己的感悟谈谈测试在敏捷中的作用。
在敏捷运作中,对原有体系中变化最大的其实是测试。这对传统开发人员、测试人员的思维都是极大的改变和更新。所以我们需要重点关注。
在传统意义上。测试是需要独立的、专职的人员和机构,通过严格的质量检查,通过和开发人员的良性PK,来保证质量,类比于政府中专门的质检局。其优势是: 1:专业程度高,方便技能提高。 2:职责明确。 其问题是:1:测试环节在最后一环,反馈周期长。 2:导致部分开发人员不重视质量,认为后续有测试把关。
而敏捷强调质量是设计出来的,是编码出来的,而不是测试出来的。质量很重要,但是并不意味着最后的验证环节很重要。 进一步分析:测试并不能创造价值,最多是衡量价值。因而敏捷将测试作为一种基本的技能。在整个研发过程中,整个团队要花重点在代码评审,单元测试,开发自测上。整个团队都要重点投入在自动化测试,自动化覆盖率改进和效率提升上。敏捷通过上述众多方式希望实现质量内建。通过全员,全流程的质量控制来交付有价值的产品。
没有质量谈不上价值,而质量需要全员参与。”第一次就把事情做好“,质量管理大师克劳斯比的理念在敏捷得到直接的体现。
我们需要将稳定性测试,性能测试 ,异常测试等尽量等同于功能测试,尽量实现自动化。这一切不仅仅是用于保证我们代码的质量,更重要的是,质量体系是大规模重构的一个必备的基础,是快速发布的必备条件。
测试的独立性体现在精神的独立性,需要整个团队成员在测试的时候,以用户为基准。摆脱开发的思维定势,而不一定需要人员的独立,当然这其中存在一定的悖论,开发思维和用户思维能不能实行灵活的转变,对每个人都是一种挑战。(开发人员即使有用户思维,但编码过程本身是一个创造的过程,而测试需要一些破坏性思维,异常思维,单个人转变有些困难。敏捷一方面强调提升人员的测试能力,一方面强调整个团队紧密配合,共同完善质量控制)。
所以,在敏捷体系时,测试被提到了更高的地位,测试从需求开始一直贯穿整个阶段,提出采用验收驱动开发,测试驱动开发等实践来将测试和需求,开发等结合。
最后,需要强调的是:自动化测试用例,应该和代码一样,强调小批量,强调质量,强调代码检查,强调持续重构,自动化测试的代码应该和版本代码一样进行严格的质量控制。
因为经济等各方面的考虑,一些手工测试可能也难以避免,比如说常变化的界面测试,需要根据情况具体分析,不要因此走入另外一个极端。
网友评论