(3)李和恒:软件测试覆盖的范围远大于业界普遍看到的部分
李和恒,微软亚洲工程院软件测试开发工程师,从事测试工作已三年,先后参与过视频编码、在线会议和企业级即时通信等产品的测试工作,并主持web应用测试架构的开发。技术兴趣为泛型编程,架构设计,测试自动化。
目前国内难以看到的高级测试技能使得业内人士低估了测试人员的职业发展空间,进而得出这样的结论。事实上软件测试所需要覆盖的范围远大于目前被业界普遍看到的部分,因此测试人员往往没有机会 去展示或者发展相应的高级测试技能。就一般而言,软件测试除检验软件行为是否符合产品设计之外,还应包括检验。
1. 设计阶段
1.1. 产品设计(feature specification)本身是否符合客户需要,是否容易被不精通计算机的用户所使用
1.2. 架构设计(design specification)是否符合产品设计,是否容易导致缺陷,是否容易导致低劣性能和不稳定,是否有利于测试
1.3. 测试方案(test plan)是否对功能覆盖完备,是否采用恰当方法测试每个不同领域,时间人力是否足够,帮助开发人员提高质量的措施是否恰当和足够,有否保证测试工具的质量
2. 实施阶段
2.1. 某次代码更新是否引发严重缺陷以至无法测试
2.2. 某个开发人员是否引入了太多缺陷
3. 稳定阶段
3.1. 缺陷是否值得修复
3.2. 缺陷修复顺序是否合理
3.3. 缺陷修复会否引发更多缺陷
4. 发布阶段
4.1. 缺陷数量是否有扩大化的趋势
4.2. 待发布版本是否符合发布标准
可见,为了完成这些任务,测试人员应该具备的技能包括
1.了解客户需要(针对1.1),了解行业技术现况(针对1.2)
2.程序设计以至架构设计能力,调试能力(针对1.2,1.3,2.1,3.1,3.3)
3.了解产品相关技术,了解产品本身(针对1.1,3.2,3.3,4.1)
4. 了解开发人员的工作流程(针对2.1,2.2,3.2,4.2)
5. 了解产品代码结构(针对1.2,1.3,2.1,3.1,3.3)
6. 部分的项目管理能力(针对1.3,2.1,2.2,3.1,4.1,4.2)
从中不难发现,一个具备上述能力的测试人员,从事开发人员是绰绰有余的,职业发展的道路和开发人员也没有太大的区别。