6.2 性能测试组织
性能测试并不是一个人或者一个部门可以完成的工作,相对于功能测试来说,性能测试更为复杂,所以一个公司成立一个性能测试部门并不难,但是需要将这个部门的作用发挥出来就不是那么简单的事情了。
6.2.1 性能测试团队
性能测试作为测试团队中的一部分,有其特殊性,所以对于性能测试团队的管理和组织架构和普通的功能测试工作在流程和组织上有所不同,这里给出一个在整个项目研发过程中性能测试相关角色的矩阵图,如图6.87所示。
图6.87 性能测试团队工作流程
● PM项目经理
项目经理作为整个项目最关键的人,必须对性能测试有所了解,这样才能确保性能测试被重视,并且有足够的资源支持。
● 性能需求分析工程师
确定系统的性能需求,除了传统的功能需求,我们需要得到更加准确的性能需求,例如系统的容量、响应时间等明确指标。这些需求需要在开发前就明确,这样才能在一定的约束下进行开发,确保在设计初期就考虑了性能方面的需求。高级性能测试工程师可以辅助需求分析工程师对性能需求进行定义和明确。
● 架构设计师
系统的性能在需求分析工程师和架构设计师经过分析后确定。架构设计师根据用户的性能需求来决定系统的架构特点并提供足够的可扩展性。后期做的性能测试只是让系统更接近于系统设计时的性能而已,但是无法超越系统架构的设计,也就是说性能是做出来的而不是测出来的,待到后期通过性能测试发现问题时,调优的成本和难度也非常大了。
在大多数情况下,系统的架构性能都是由架构设计师独自测试分析的,如果有性能测试工程师介入,也可以提供一定的技术支持和建议。
● 开发工程师
开发工程师的主要职责是在架构上进一步编码,受到个人能力的影响,某些开发工程师能够很好利用架构在不降低性能的情况下实现功能,而也存在编码不合理导致效率降低的情况。
● 测试经理
作为一名测试经理,更多的工作是协调沟通,即组织和协调资源确保性能测试的有效进行。
● 高级性能测试工程师
负责测试计划、测试策略和分析工作。
● 性能测试工程师
根据用户的需求,完成脚本的开发并形成系统负载,将性能问题表现出来,而结果的分析由高级性能测试工程师和相关人员共同完成。