在本系列的第一部分中,(敏捷测试感悟之一)我们简要回顾了敏捷开发,以及敏捷测试与传统测试的不同。在第一部分中,我们特别提到,敏捷测试的要点之一就是,不依据于角色而是依据于任务来考虑整个开发过程中的测试。
但是,对一个开发组织来说,组织中一定存在开发工程师和测试工程师的角色划分,作为一个敏捷团队中的测试工程师,他的主要工作职责是什么呢?或者说,他可以在哪些工作上发挥自己的作用呢?
敏捷过程中与测试相关的任务很多,概括说来有如下一些:
1. 建立不同级别的测试验收标准(也就是test suite),包括单元测试、集成测试、系统测试等各个层面的验收标准;
2. 推动整个组织的质量文化,保证整个组织的成员在质量责任与目标方面达成一致;
3. 通过技术或是管理的手段,保证产品、代码具有良好的可测试性;
4. 通过自动化测试手段缩短每个产品发布周期中测试所需的时间;
5. 与客户沟通确认客户可接受的软件质量标准,并建立针对此标准的验收测试;
6. 深入了解应用系统和业务需求,通过探索性测试方法设计有效的测试用例,发现产品中的缺陷;
7. 建立对整个团队可见的质量度量体系,保证整个团队能够随时看到产品的质量度量值。
这些工作都可以是敏捷团队中测试工程师角色的工作任务,但显然,在现实中,不太可能要求所有这些工作都由测试工程师来承担─同时,让测试工程师承担全部这些工作任务也并不合理,某些工作由开发工程师角色,或是由开发工程师和测试工程师共同承担更为合理。
接下来,我更详细的把列出的这7项工作中非常成“测试工程师必须完成的工作”,“测试工程师需要去推进的工作”,以及“能为项目带来巨大价值的工作”。
1. 测试工程师必须完成的工作:
* 与客户沟通确认客户可接受的软件质量标准,并建立针对此标准的验收测试;
* 深入了解应用系统和业务需求,通过探索性测试方法设计有效的测试用例,发现产品中的缺陷;
* 建立系统和用户验收级别的测试验收标准;
* 通过自动化测试手段缩短每个产品发布周期中测试所需的时间;