什么是敏捷软件测试
作者:网络转载 发布时间:[ 2010/12/16 13:40:58 ] 推荐标签:
检查表提到了“团队”、“反馈”、“质量文化”和“开发测试”四个方面的内容,在本人看来,这四个方面体现的是敏捷软件测试与传统软件测试的大的不同。传统软件测试关注的是通过尽可能完备的“覆盖”去发现尽可能多的问题,把测试和开发当成是两个独立的过程,测试是对开发阶段产生成果的验证。而敏捷软件测试则建立了一种不同的质量文化:测试的目的是为了保证产品快速发布,也是对生产率本身的提高。基于“验证”的出发点必然会要求测试与开发的独立,以及尽可能“客观”和“完备”的度量产品质量;而基于“生产率”的出发点则要求建立敏捷的团队,要求测试与开发尽可能紧密,要求建立具有高度可测试性的软件,以及基于这些的高度自动化测试。
在检查表列出的所有项目中,“质量文化”是基础,“团队”是敏捷软件测试得以实施的条件,“反馈”和“开发测试”则是敏捷软件测试的具体方法。当然,你可以可以从敏捷的核心价值观来阶段这些项目:“团队”关注的是沟通与尊重;“反馈”直接对应于反馈;“质量文化”基于勇气(承担质量责任的勇气)与尊重;而“开发测试”则是反馈与简单的具体体现。
另一个在本文初提出来的问题是:“敏捷软件开发还需要测试工程师吗?”,对这个问题,业界有不同的观点。有人认为需要,因为总有一些是需要测试工程师的技能完成的工作;当然,也有人认为不需要,因为敏捷开发中的测试注重开发测试与自动化测试,开发工程师可以自己搞定与测试相关的工作。在实践中,那些大规模实践敏捷开发的公司(例如Google),倾向于在组织中设置数量较少的测试工程师,在项目中分配较少的测试资源,甚至对某些项目,完全不使用测试工程师。
我的个人实践经验,对大部分的项目,尤其是为明确的客户开发的项目,需要在敏捷开发团队中设置专职的测试工程师,因为:
测试与开发具有不同的思维方式:测试更注重全面的验证和检查一个系统,而开发工程师往往很难在大的范围内建立这样的思维方式。因此,无论是从系统的层面验证产品,或是从应用系统的角度发现值得测试和验证的点(access point),专职的测试工程师都更有效。
专职的测试工程师能够更关注于测试基础,建立测试需要的基础架构:由于测试工程师具有更好的对测试的理解,通常他们能够更多的考虑测试的需求而开发适合项目的测试基础架构(自动化测试框架),而开发工程师可以使用这些框架来建立面向功能或代码的测试。
但是,不得不说的是,敏捷开发对开发和测试工程师都提出了更要的要求,尤其是对测试工程师而言,传统的只能“精确模拟用户操作”的测试工程师,因为不能为产品带来生产率的提升,在敏捷开发的团队中,很难有所作为。在本专栏的后续文章中,我们会进一步讨论测试工程师在敏捷软件开发中的工作和任务。

sales@spasvo.com