5. 按真实情况安排岗位
你必须让管理者注意下面几个问题。
首先,很多测试人员都是相对初级的程序员。他们缺乏设计系统的经验,而设计不良的框架则会扼杀项目。但是,太有能力的程序员也会使项目失败。要使自动化成功,你应该在你的测试组中多招募一些高级程序员。
其次,很多优秀的黑盒测试人员并没有编程经验。他们能提供紧要问题的意见,以及其它大多数程序员无法提供的与客户沟通方面的经验。他们是完成大型测试工作所不可缺少的。但是,你不能指望这些人编写自动化代码。因此,你需要一个不要求每个人都编写测试代码的岗位安排和开发策略。你还需要避免产生一种带有歧视性的想法,认为测试编程人员要高于测试非编程人员。这是一种在使用自动化工具的测试组中普遍存在的偏见,但在我看来,这是不理智的和降低生产率的。它会排挤你的高级非编程测试人员,并且会使你把大量精力投入在与实际客户需求无关的程序测试中。
数据驱动方法使非程序员能很好的工作,因为它使他们能通过简单地把测试规划放入电子表格中来开发测试用例。
第三,在把自动化外包给承包者时要特别谨慎。最好是在内部开发,把承包者视为培训者或让他们处理更多的常规事务。
最后,你必须让你的管理者知道,自动化是要花费时间的,而且在做初始自动化编程工作的发行版中你也无法赶回这段时间。如果你要达到你通常的测试级别,你必须增加人力。例如,如果某项目通常需要十个测试人员手工测试一年,而你想要为自动化工作投入两个人年,那你就需要保持这十个测试人员,并增加两个程序员。在下一个发行版中,你才会缩短测试时间。在这一版中,你会在某些任务上节省时间(比如配置测试),而在额外的培训和行政管理上付出更多时间。到项目结束时,你可能已经改进了面对今后困难时快速回归测试的能力,但是在进度的最后时刻,它很可能反而使你缺乏足够的测试,而并非让你有机会削减人力开支。