使用QC和QTP构建自动测试体系

发表于:2007-12-14 18:02

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

        如果要搭建自动测试体系,需要完成以下几个工作
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、当脚本出现问题时负责解决问题


        负责人并不需要完成所有的脚本编写工作,他可以组织大家一起做,但是他需要保证脚本库的健康,最好也能保证脚本的编码规范。 

《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • meng0819
    2008-1-07 00:01:17

    楼上的这位说的有一定的道理,但是自动化测试的目的是提高效率。多少case不是问题。
    一个大型系统需要很多case不假,但是如果是大型系统,似乎不能全部都自动化吧?

  • powerson
    2007-12-19 13:50:14

    这里确实说的是一些入门级的东西,如上面的朋友所说。
    另外我主要想说的是建立一个易于维护的测试框架,并不是讨论如何设计让脚本最优。如果同样类型的输入数据很多,肯定是要参数化的,但是如果只有两个值,那还不如做两个脚本,更节省成本,是不是。
    我们中国软件行业技术很强,牛人也很多,但是有些往往都是入门级的东西无法规范起来。我现在确实还是从初级开始做起,慢慢积累。
    欢迎大家到我的blog进行讨论。
    http://easytest.csai.cn/

  • garyyes
    2007-12-17 11:50:34

    “功能点”中每个Test只覆盖一个功能点,比如“检查用户是否已存在”、“密码长度不能小于6字节”。总之,每个Test要做到独立,请参考这篇文章:

    以上的观点很有问题!这根本就与数据驱动的自动化测试相违背!而且如此低能的功能点,对于一个大型的系统来说,要做多少个才能保证自动化测试的coverage和作用,有可能上万个吧。“检查用户是否已存在”、“密码长度不能小于6字节“这些不同的检查点,根本就是同一段测试代码,不同的input数据和checking数据而已!
    另外,几乎所以的观点都是入门级,初学级的。

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号