一、前言
自动化测试是测试领域中一个争议性比较大的区域,虽然它并不是一个新生的事物,但是至今仍没有一套比较完善的理论可以提供行之有效的方法,使之更好的为产品质量服务。各个研究机构和公司的专家提供了许多自动化测试的理论和模型,但是均没有形成通用理论,被大众广泛认可。
作者通过对安全产品进行自动化测试,从需求定义开始进行跟踪,涉及产品的设计与实现,对产品的接口、实现功能等进行自动化集成测试,采用测试代码和测试角本相结合的开发方式。作者总结了在工程中遇到的问题和实施中的成功之处,提出改进意见,对自动化测试人员具有较强的工程参考意义。
二、自动化测试简介
所谓自动化测试,就是充分利用测试理论和相关的工具,对产品进行自动化的测试,减轻甚至摆脱某些人工测试的繁重劳动,能够形成统一的测试报告并发布。
自动化测试涉及面很广,可以涉及单元测试、集成测试、系统测试、压力测试等诸多方面,针对不同的测试有不同的处理方法和工具。
经过实践,业界对自动化测试形成了一定的统一观点:
自动化测试不能代替手工测试;
自动化测试进行的是常规测试和回归测试,测试集覆盖率和BUG发现率均不高(这两组数据没有定论,根据测试系统的不同,数据会有所不同,但均低于50%,甚至低于30%)。
三、测试中的“人”
人永远是软件开发领域中的重要因素,不同的人掌握着不同的角色。充分调用不同角色的主动性,可以有效的提高自动化测试的效率。
1.领导支持
自动化测试是个系统工程,测试人员要制定合理完善的测试用例,需要得到需求、设计、开发等相关人员的配合。没有领导的鼎力支持,各方力量配合将会减弱,测试的实现目标将会大打折扣,测试工期也将无法保证。
因此从需求调研之初,就需要得到领导的大力支持,充分估计自动化测试所能达到的目标,制定良好的开发计划,如有可能,由项目经理直接进行领导,以期达到自动化测试的最优效果。
2.避免测试人员“挪作他用”
在许多公司,自动化测试均不是专职人员,经常是针对产品从研发、测试等部门抽调而来,因此他们原来都负担过别的工作。在自动化测试工作过程中,尽量不要由于其原工作问题,将自动化测试人员调回,更不能因为自动化测试在前期开发过程中收效甚微,在开发工期有限的情况下,暂时裁减开发人员。由于自动化测试工作量很大,从理解需求、设计用例、用例实现、测试驱动的设计与开发,到用例调试、用例的最终应用要经历比较长的工期,经常性的人员调动会导致工作情绪的波动和工作进度的滞后。
四、文档工作
在项目管理中,文档是软件工程各阶段的产品和依据,自动化测试当然也不能例外。
1.测试文档要及时
自动化测试与其说是一种任务,更不如说是一个公司知识库的积累过程,测试代码绝不是自动化测试的最终目的。
因此在测试开发过程中,要随时书写自动化测试的配套文档,并要根据需求和设计的变化,即时更新。文档包含自动化测试的设计、实现文档,测试集测试用例文档,测试驱动文档。测试文档的积累,也是对公司知识库的积累,减少将来进行同样开发的成本。
2.开发文档要完善
自动化测试的根本是文档,它依靠需求和设计文档来开发用例,而绝不是根据开发人员实际代码来进行的。因此在自动化测试开始工作之前,要准备好各种文档,包括需求、接口设计、数据库定义等,测试人员只有依据这些文档,才能制定合理的开发计划,开发出适合本系统的测试用例。
文章来源于领测软件测试网 https://www.ltesting.net/