13.1 软件测试团队组成结构分析
软件测试工程师是软件行业中一个不可缺少的职位,随着社会的发展,软件越来越成为每个人、每个家庭、每个企业不可缺少的产品。特别是近几年,随着移动互联网的兴起,给日常生活带来了很大便利,这就促使从事这项职业的人也越来越多。随着软件企业的发展,软件测试部门在企业中的地位也越来越重要。组建一个软件测试队伍时如何进行人员分配,进而使得公司软件测试工作水平得到提高呢?这是测试经理比较关注的问题。
一个软件公司的测试部门应该包含哪些成员呢?可能各个公司有不同的策略,这里介绍两种方案。
13.1.1 方案一
案例13-1:软件测试团队组成结构分析方案一
1.软件测试经理
软件测试经理主要负责软件测试队伍的内部管理以及与其他各部门人员和客户等的交流,包括进度管理、风险管理、资金管理、人力资源管理、沟通管理等。软件测试经理需要具有一定的管理知识和技能。同时,软件测试工作开始前,软件测试经理要书写《软件测试计划书》,软件测试结束后需要书写《软件测试总结报告》。
2.文档审核师
文档审核师主要对在需求与设计期间产生的文档进行审核,如《业务建模书》《需求规格说明书》《概要设计说明书》《详细设计说明书》等。文档审核师需要在审核结束后书写审核报告。文档最终确定后,需要整理文档,并且给软件测试相关人员。
3.软件测试设计师
软件测试设计师主要根据需求期与设计期间产生的文档设计测试用例,包括功能测试用例、性能测试用例、安全性测试用例、可靠性测试用例、稳定性测试用例等。
4.软件测试工程师
软件测试工程师负责搭建软件测试环境、准备软件测试数据、编写自动化测试代码,并且按照测试用例执行软件测试活动。软件测试工程师应该具有哪些技能要求呢?
(1)需要具有一定计算机专业的人员
由于具有一定计算机经验的专业人员,他们既懂得计算机的基本理论,又有一定的开发经验。所以,对于软件中哪些地方容易出错,哪些地方不容易出错,他们都了如指掌;他们可以分析程序的性能,如软件性能差是由于存在内存溢出,还是因为占用CPU时间太长,或者是因为频繁读取硬盘,还是其他原因引起?他们往往是软件技术方面的专家,尤其是进行非功能测试时。如果需要编写自动化软件测试代码,只有这类人员才可以做到,所以这类人员在软件测试队伍的比例应该是三分之二到四分之三。
(2)需要具有本软件业务经验的人
软件测试队伍中需要有这样人员的目的在于:这些人员对业务非常熟悉,软件质量的前提又是满足用户的需求,因而这种人员对于成为需求文档审核师,也是非常重要的。俗话说,隔行如隔山,专业业务知识的熟练掌握是计算机专业人员很难达到的,所以这方面的人才可以利用他们的业务知识,参与系统需求期间的文档审核,这样,他们可以发现软件中存在的一些业务性的缺陷,如专业用语不准确、业务流程不规范等,他们对于专业性比较强的软件测试工作尤为重要,如税务、法律、金融和财务等。
(3)只需要会操作计算机的普通人员
由于软件一旦卖出去后,使用软件的人各种各样,这些人使用各种各样的操作。因而请一些这样的人员在软件测试工作后期进行软件测试工作是十分重要的(如Beta测试期间)。他们往往能发现专业测试工程师测试不出的问题和一些稀奇古怪的错误,这就是软件测试学中所谓的猴子测试法。记得在笔者工作过的一家公司中,有一个IT部门的刚毕业的非计算机专业的同事,经常让他来做兼职测试,他总是可以发现一些非常奇怪的问题。
对于一个软件公司来说,并不是说所有的软件测试队伍都需要这3种人员,实际中,可以一组人代替多个角色,但是要遵循以下原则。
- 对于业务不是很专业的软件,具有一定开发经验的计算机专业人员与具有本软件业务经验的人员可以合并。
- 软件测试文档审核师可以由软件测试设计、软件测试工程师来完成。
- 只需要会操作计算机的人员,可以由公司非研发部门的人员充当。
顾翔凡言:
不是好的工作会给你带来好的心情,而是好的心情会给你带来好的工作。