应用软件测试组织架构的详细解说

应用软件测试组织架构的详细解说

 
在手机芯片公司内的测试部门组织架构较为复杂,涉及到硬件,软件和生产若干方面,为了减轻测试部的工作压力,在国内通常会分立出生产支持部门,专职负责生产工艺和后道测试;或者将硬件和软件的测试放到硬件、软件的组织架构内,只将更高level的集成和系统测试放到测试部执行;或者只将测试部门作为一个附属机构从属于研发,只从事低层次的用户级测试。无论采用哪种形式,都不如将所有涉及到测试的工作放置到一个独立的测试大部门中节约资源和提高效率。主要基于以下原因:
1. 综合考量测试技术发展的roadmap
2. 自动测试平台技术开发和共享;
3. 培训平台和资源的分享,有利于测试人员Knowledge, skillDomain technology的提升和交流;
4. 测试人力资源和实验室资源的共享;
5. 测试人员和开发人员之间的接口更趋简单;
6. 有利于提高测试工程师的待遇和地位。
 
在这里主要讲述的是测试部门中的应用软件测试组织架构的建立。如果手机上层结构合理,接口清晰,应用软件测试工程师主要的测试对象是UI framework和具体业务。针对这样的工作内容,应用软件测试技术工程师基本有三个职业方向:
a, 应用软件测试工程师 (Tester)。主要负责具体应用软件的测试,负责具体测试case的编写,测试计划的执行,以及测试报告的撰写和维护。
b, 自动化测试开发工程师 (Tools Dev.)。主要负责具体的自动化测试工具的评估,设计,编码和维护,以及测试脚本的维护和编写工作。
c,测试设计工程师 ( Designer)。主要负责测试规范Outline的编写,测试策略的制定,测试计划的制定,自动化工具的high level design,以及各级review的工作。
 
应用软件测试工程师应该选择有嵌入式调试经验,至少对某一类嵌入式平台和操作系统有所了解;对上层应用实现流程概念清晰,逻辑缜密,思维活跃。在这个岗位上,需要完成case的编写,也就是需要设计和验证测试Case,已达到测试规范的outline期望达到的目的。设计case时,能够综合所学的知识,利用仪表资源或对程序架构的了解设计合理有效率的测试过程,有效的得出测试结果。测试结果应该是可重复,可跟踪,可调试的。同时,结合现有自动化平台的能力,尽可能的实现自动化测试,并能对现有的自动化平台提出需求。
自动化测试开发工程师应该选择比较强的Windows平台高级语言编程能力的工程师,并同时对嵌入式开发和测试有所了解。通过工作,来提升对软件测试和自动化测试的理解。结合软件规范的规划和Case设计,以及现有的仪表能力,来实现自动化测试。在很多情况下,自动化测试工程师需要和一些仪表厂商进行合作,或基于仪表厂商公开的API做二次开发,或合作进行仪表接口的开发工作。这类工作,往往由测试部其他测试团队中的开发工程师来完成,并进行封装,再交由应用软件自动化测试开发工程师进行集成。应用软件自动化测试开发工程师应该集中于解决图像比较和采集技术的突破和脚本语言的完善和推广。
 
一般期望Designer能够由前两类工程师发展而来,并且熟悉这两种业务,所以各级的review会议应该有意识的邀请三类工程师按照一定的比例参加,以期提高对互相的了解和业务的交流。
 
测试工程师需要有层次和比例。每一层次工程师占团队的比例主要是根据公司的业务情况和具体工作内容和性质所决定的。每个Manager以上的管理者在制定人员预算时,需要切实地按照招聘岗位的具体工作情况和要求来规划,明晰招聘要求。如果根据Career path 进行晋升过程中,出现高层次或低层次所占比例都过高,或者低层次工程师向高层次工程师晋升由于公司预算不能加薪或晋升遇到阻碍,只能导致员工的流失。测试团队在建立初期的2-3年内,理想的情况是将人员流动率控制在5%-10%之间;2-3年之后,期望能控制在10-15%之间,保证团队在技术上能有外来血液进行更新和进步。
 
在相应的组织内,越来越多的大型公司将上层应用软件测试进行外包,而存在在中小型公司内的应用软件测试工程师往往对自己在技术和职业规划上的发展很迷茫,无法将这项工作作为自己理想的职业方向,为这些工程师提供相应的Career path的指引,以及提供丰富的培训是作为技术管理者能够为他们创造的力所能及的较为理想的工作环境的手段之一。
 
一般提供给HR的关于应用软件测试工程师的Career path 为:
应用软件测试组织架构的详细解说
同时,再恰当的情况下,给予应用软件测试工程师担当FAE或其他职位的相关培训和机会;某些情况下,鼓励工程师从测试转为开发,同时鼓励开发转测试。
 
 
由于CDMA终端主要分成三大类,即
A, 模块。包括各类无线商话,无线上网卡(PCM-CIA Card),以及其他各类CDMA无线模块的应用。
模块主要应用无线商话,无线公话,无线上网卡等产品,由此会产生一些相对与手机产品的特殊需求,比如计费和AT Command
B, Candy Phone & Wiz Phone。各类普通手机的应用,并运行在一般嵌入式系统内,应用一般复杂性不高,但是涵盖了所有主要的无线应用,包括一般的多媒体应用。
C, Smart PhoneSmart Phone包含了复杂应用,如果是自主开发的操作系统和应用,需要组织庞大的测试团队专门进行测试工作。在一般的团队中,则采用第三方软件方式来集成,那么主要涉及的验收测试部分。
 
 
如果在公司业务范围和应用软件测试团队规模允许的情况下,建议采用如下的组织架构
应用软件测试组织架构的详细解说
是否确实需要采用这样的组织架构,特别是在应用软件测试最低一级的划分,是非常值得商榷的。之所以这样划分,是希望每一个技术小组能集中精力在一个较小的技术方向上,以较为固定的测试思维方式和测试策略进行测试的开发和执行。而且能够在技能成长和培训计划上更有针对性和指导性,避免在初上岗时面对3个月以上的技能培训。如果不采用这样明确的管理架构,也可以为每一个期望成为Designer的工程师指定技能发展方向,以期在1-2年时间内初步成长为有Design能力的测试工程师。