自动化例行测试有效性策略

上一篇 / 下一篇  2011-10-31 18:58:30 / 个人分类:自动化测试—流程策略

自动化例行测试有效性策略

序言:自动化例行测试作为自动化测试中一种测试流程中的方式,对于产品线的质量有很大的保证作用,且对于节省人力成本也有其独特的方法。而在进行自动化例行测试有一定阶段之后,发现自动化测试技术是一个方面,但更重要的一个方面的其需求挖掘与应用分析的小策略方面,这些小策略对于提高自动化测试的效率也许会起到一定的作用,但也不敢太过于保证,毕竟环境不一样,差异也是很大的。

 

一、自动化例行测试概述

自动化例行测试即部署一套自动化测试环境,针对某一个产品线,进行有针对性的回归测试,目的在于保证产品版本迭代稳定性。

 

二、自动化例行测试的的几个环节

这里从已经开展的角度上来说,并不包括自动化测试框架的开发阶段,其简单的几个环节包括:

1自动化例行测试项目选择阶段:即对产品线中需要进行的测试项目进行选择投入到自动化例行测试环境的阶段。一般是从手工测试用例模块中进行选取。

2自动化例行测试项目运行阶段:即自动化例行测试项目的运行的方式以及自动化测试项目之间的运行优先级的排列计算。

3自动化例行测试项目维护阶段:即对自动化例行测试项目中的维护,包括自动化测试用例、自动化测试点、自动化测试脚本以及自动化测试环境部署的维护。当然,还包括自动化测试框架的维护,但这里不作为重点。

4自动化例行测试项目跟踪记录阶段:即对自动化例行测试项目的运行情况、结果以及维护情况的一个跟踪记录。

5自动化例行测试项目淘汰阶段:即对例行测试环境中的项目的一个周期性的选择和去除阶段。

 

三、自动化例行测试的问题误区与策略

1、 自动化例行测试项目选择阶段;

个人根据经验发现,在开展自动化测试前期过程中,很容易进的一个误区就是覆盖率,认为覆盖率越大越好,这样就很容易导致自动化测试的失败,原因在于自动化测试本身就是一个高维护性的领域,而越大的覆盖率就意味着更大量的维护问题,而且往往这样的问题是发生在自动化测试开展的前期,所以,其自动化测试质量都很差,这就造成了测试人员疲于自动化测试的维护,造成了自动化测试的废弃,以前听说,百度在刚开始自动化测试时,也是因为在前期看到自动化测试好处而一味追求覆盖率,最后自动化测试的覆盖率达到了80%左右,最好却是失败,直到现在自动化测试的覆盖率已经降到了30%左右,才趋于一定的稳定和作用了。所以,宁缺勿滥是其自动化测试开展前期的一个策略,也是自动化例行测试项目的一个选择的策略。而其选择性则可根据产品测试周期、产品的核心模块以及产品的稳定程度以及测试所需资源来综合考虑。

2、 自动化例行测试项目运行阶段;

个人觉得,自动化例行测试运行的几个关键在于:1)、测试环境的稳定性(最好能拥有自己的一套独立的测试环境,排除外界影响)。2)、测试运行阶段的稳定性(遇到不同的异常能够抓取,记录异常,且测试进程不能停止。3)、提供实时的监测机制(即遇到需要变更自动化测试环境拓扑或者网络不可连接的情况下,可以进行测试人员的通知)等。4)例行测试项目的优先级选择;一般而言,其优先级可以根据版本的改动影响情况以及上次错误出现项目情况等进行选择,在时间不够充足的情况下,应尽量保证其更核心项目的验证。

3、 自动化例行测试项目维护阶段;

个人觉得,自动化例行测试的价值就在于例行测试回归的次数,而在自动化测试前中期,我们很容易进入自动化测试脚本的维护误区,即过于关注自动化测试脚本的缺陷,一定要保证所有脚本没问题才有信心进行例行测试项目回归。其实一定阶段,脚本错误只是占项目的一小部分,所以在保证了大部分无错的情况下,可以先将错误项目排除,运行无错的项目,在运行过程中再进行更正,尽快保证例行测试平台可以得到利用,保证100%的正确率是不可能的。则策略是,在保证问题项目在整个项目中的比重比较少的情况下,在测试过程中,可以暂时将其忽略,尽快去保证其余正常运行的项目得到验证然后边运行边进行错误问题的调试,如果测试项目有需要,可以将手工测试结合起来,关键是保证其例行测试平台的运行。使其尽快发挥自身价值,然后可以进行其回报分析,这样,才能对自动化测试下一阶段的开展提供铺垫。

4、 自动化例行测试项目跟踪记录阶段

需要有一个随时跟踪例行测试项目的记录文档,一是产品缺陷造成的脚本问题。二是无法修复的脚本问题。三是常见的脚本错误及修改策略。这样,可以保证以后脚本或者产品出现问题时进行良好定位。

在项目结果验证方面,一是提供一个统一的结果及链接。二是提供一个测试点的详细记录。三是提供一个具体的步骤日志,方便分析。

5、 自动化例行测试项目淘汰阶段;

其策略则是根据产品线的测试需求情况进行选择。

   

总之,个人觉得,在一定策略中,快速让自动化例行测试运作起来,然后在自动化例行测试开展过程中需要在每一个过程周期期对其回报价值进行简单的定位(例如:前期可以以测试点的验证程度或者测试用例的验证程度来进行判定,中后期可计算金钱回报率等方式使得真正可以让自动化测试的应用落到实处),这样将自动化测试的应用以直观的方式体现,能对自动化测试下一个阶段的预估开展起到更好的分析。即是一种边走边分析的策略。

 


TAG:

土司*阿哈空间 引用 删除 wonew1228   /   2011-11-07 17:10:29
原帖由散步的SUN于2011-11-03 09:29:31发表
呵呵,这只是一种说法而已,其实就是跟不断回归有点像
原帖由alice2003yf于2011-10-31 22:48:29发表
自.

这个还真由
散步的SUN的个人空间 引用 删除 散步的SUN   /   2011-11-03 09:29:31
呵呵,这只是一种说法而已,其实就是跟不断回归有点像
原帖由alice2003yf于2011-10-31 22:48:29发表
自动化测试还有个例行测试阿,头回听说
散步的SUN的个人空间 引用 删除 散步的SUN   /   2011-11-03 09:28:54
1、我说的是根据我们的情况将例行测试环境不与大网相结合,而直接通过服务器和测试环境走另外一个网络。因为大网里面的信息资源太乱,容易造成影响,不过弊端就是环境不够真实
4、IBM有一个工具叫insight好像可以智能化的分析数据,主要是从数据库中提取,简单可以从错误率分析出发,我觉得做自动化可以多去参考一下这些工具的设计理念,虽然不能做的这么复杂,做个简单的原型还是可以试试的
原帖由wolaizhinidexin于2011-11-02 11:08:04发表
个人觉得,自动化例行测试运行的几个关键在于:1)、测试环境的稳定性(最好能拥有自己的一套独立的测试.
散步的SUN的个人空间 引用 删除 散步的SUN   /   2011-11-03 09:20:54
大家都有这么一段经历的,smoke test,这是一个不错的方式,自动化测试是与测试流程与需求相结合的
原帖由better82于2011-10-31 22:21:22发表
曾经淹没在巨大自动化脚本的维护中,现在的自动化case主要cover一些smoke test。
文青山 引用 删除 wolaizhinidexin   /   2011-11-02 11:08:04
个人觉得,自动化例行测试运行的几个关键在于:1)、测试环境的稳定性(最好能拥有自己的一套独立的测试环境,排除外界影响)。

这里是不是应该划分为两块:
测试脚本本运行环境支持的问题,划分为脚本的问题。
测试脚本发现的测试目标因为环境的问题,划分为测试目标的问题。
所以兄台所说的应该是指测试脚本环境支持的独立性。我的观点是构建强悍的脚本,在多个不同的环境下都应该去进行测试,如果环境太独立,反而制约了测试策略的执行。


2)、测试运行阶段的稳定性(遇到不同的异常能够抓取,记录异常,且测试进程不能停止。

这个需要脚本足够强悍

3)、提供实时的监测机制(即遇到需要变更自动化测试环境拓扑或者网络不可连接的情况下,可以进行测试人员的通知)等。

建议使用第三方程序来做这个,一个邮件通知即可。

4)例行测试项目的优先级选择;一般而言,其优先级可以根据版本的改动影响情况以及上次错误出现项目情况等进行选择,在时间不够充足的情况下,应尽量保证其更核心项目的验证。

这个得看脚本模块的构造了,如果全部都放在一个地方,似乎做不到这点。另外,如果要达到这种方式,我觉得似乎应该用关键字框架来实施。当然,如果这个项目超级庞大,自动化测试代码超多,这个东西似乎显得十分重要。
xin_晴的个人空间 引用 删除 xin_晴   /   2011-11-01 11:39:31
您好,我是51Testing软件测试网的编辑,您的本篇博文被推荐至51Testing软件测试网首页发表:http://www.51testing.com/html/69/n-248169.html
感谢您关注并支持51Testing博客,期待您更多的优秀原创博文。
alice的个人空间 引用 删除 alice2003yf   /   2011-10-31 22:48:29
自动化测试还有个例行测试阿,头回听说
AT校长的个人空间 引用 删除 better82   /   2011-10-31 22:21:40
1
AT校长的个人空间 引用 删除 better82   /   2011-10-31 22:21:22
曾经淹没在巨大自动化脚本的维护中,现在的自动化case主要cover一些smoke test。
 

评分:0

我来说两句

Open Toolbar