软件测试中使用QC和QTP构建自动测试体系
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
如果要搭建自动测试体系,需要完成以下几个工作:
1、规范测试脚本的配置管理
2、制定测试脚本的编码规范,QTP脚本还要制定对象仓库和VBS的规范
3、创建自动测试实验室,通过控制台指挥各个测试机分布式执行脚本,并集中收集测试结果
4、健全测试脚本的维护机制,脚本责任到人
下面先讲一下第一点:脚本的配置管理,因为QTP本身提供了和QC集成的功能,使用QC作为配置管理工具非常合适,而且在组建测试实验室的时候,QC也有很强的优势,后面会讲到。
只要利用QTP的QC连接功能,就可以直接把Test、对象仓库等资源保存在QC服务器上,这里我主要讲一下QC的目录分类管理。在根目录下可以建一个common目录,里面主要存放vbs脚本文件,这些脚本文件提供了各个Test需要调用的公共方法,比如和数据库交互。
然后在根目录按照功能模块的名称建立文件夹,下面保存每个功能模块的所有Test和资源。建议每个功能模块目录下面建三个大目录,分别是framework、主要流程、功能点。
framework里面保存对象仓库文件和此功能Test私有的vbs文件;“主要流程”和“功能点”保存测试脚本也就是Test。“流程”里的每个Test,都覆盖了一个完整的、正常的、独立的流程,Test的名称就是流程的名称,比如“注册用户”、“发布新帖子”。注意不要一个Test包含多个流程。“功能点”中每个Test只覆盖一个功能点,比如“检查用户是否已存在”、“密码长度不能小于6字节”。总之,每个Test要做到独立,请参考这篇文章:
《测试脚本的独立性》
我们只要执行了“流程”的Test,就能保证基本的功能OK。但是这还远远不够,还有一些重要的功能点需要覆盖。其实我们的测试脚本并不需要覆盖100%的功能点,根据28原则和我们的历史经验,大部分的bug都是集中在那一小部分(大约20%)主要的功能点中。我们的脚本要以这些功能点为主。当然,以后在回归过程中,如果需要增加功能点的Test,就直接在这个目录下新建Test即可,这一点非常重要,通过对功能点Test的不断积累,就能让我们的自动测试越来越完善。而流程的Test一般改动不多。
关于第二点测试脚本编码规范,本文不做详细介绍。大家需要注意的是,测试脚本就是我们的测试代码,是代码就需要编码规范。如果要实现一个团队的合作,必须有规范。关于对象仓库的规范,请参考这篇文章:
《管理QTP测试脚本的对象仓库》
构建测试实验室的工作是比较开心的,我们可以准备一批PC作为测试机,也可以购买配置较好的服务器,安装虚拟机,将虚拟机作为测试机。关于QC远程调用QTP的相关设置,请参考这篇文章:
《QC远程调用QTP》
通过以上的工作,技术问题基本解决了,我们还需要管理流程,来保证测试体系的健康。这里我只讲一点:测试脚本责任到人。比如A君负责几个模块的自动测试,那么他需要做什么呢?这里总结了几点:
1、主要流程的脚本编写
2、确定主要功能点的范围和组织团队成员编写脚本
3、保证QC中的脚本始终可用
4、如果需要增加功能点的Test,需要他来跟踪并保证脚本质量
5、当脚本出现问题时负责解决问题
负责人并不需要完成所有的脚本编写工作,他可以组织大家一起做,但是他需要保证脚本库的健康,最好也能保证脚本的编码规范。
文章来源于领测软件测试网 https://www.ltesting.net/