国内软件自动化测试现状分析及展望

发表于:2009-9-25 16:36

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

 作者:未知    来源:51Testing博客转载

  在软件测试日新月异发展的今天,自动化测试正在成为软件测试领域里的一个非常瞩目的趋势和潮流,很多软件公司正在或已经在企业测试团队内部实施软件自动化测试流程和框架,同时也把自动化技能作为人才衡量和业绩考核的重要技能指标,这些都不是偶然的事情,因为:

  1. 软件质量的重视和提高

  软件产业虽然只有短短几十年的历程,但是其应用范围已经从最初的科研专用转变为渗透入我们社会中生产生活各个方面,起着非常重要的作用,我们人类社会对软件的依赖正在越来越强,根据牛顿第的反作用力定律,那么软件问题对我们的影响也在越来越大。比如2007年发生的奥运订票网站在开通首日不能登陆的问题,导致上百万人购票失败;中国工商银行黄金交易系统出现漏洞,两名大学生通过低买高卖获利三千多万元,这样的新闻在报纸或网络上还能找到更多,要避免这样的事情发生,就要使这些问题能够在软件上线之前被发现和解决,换句话说,软件质量必须要提高,而软件测试就是保证软件质量的一个重要并且非常有效的手段。因此现在软件公司越来越重视软件测试,体现在老板那里就是对软件测试”舍得花钱,舍得投人“,测试执行起来就是”多测“,”测多”,“多测”就是时间上测试执行频率加快,以前一个版本测一轮,现在一次编译就要测一轮,“测多”就是测试更加完整,覆盖更多的功能模块。这就为软件自动化测试提供了强有力的需求和生长空间。

  2. 软件系统规模的扩大,复杂性的提高

  我们记得在单机系统时代时,几千行代码就能写出一个商业软件,比如WPS,CCED这些一代软件枭雄。但随着网络时代的到来,分布式系统的发展,软件系统 越来越重视交互和协作,多个模块服务的交叉调用,网间的交互安全等等,这大大提高了软件系统的复杂度和规模。Oracle曾经开发过一个邮件客户端 Outlook的插件,这个插件是安装在outlook上,提供一些常用功能,比如收发mail,calendar创建等等。但oracle的测试部门仅 仅为这个插件就设计了6000多个test case!这个数目是如此巨大,使得测试执行和产品周期产生了深刻的矛盾。这个矛盾体现在:当每个新版本发布时,如果做一遍完整测试,一个人手工测试执行一遍6000多个test case就要半个月,而产品版本的发布周期也就一周左右,也就是说测试的速度远远跟不上产品的发布速度。在这种情形下,如果没有自动化测试帮忙,手工测试只能望洋兴叹了!

  以上两个软件的根本现状,决定了软件测试自动化的趋势不是人云亦云,昙花一现,而会蓬勃发展,强劲有力,成为势不可挡的潮流。很多软件公司已经看到了这个 潮流,很早就开始做软件自动化测试的预研和实施,比如微软,oracle 等已经在企业内部测试团队整合了自动化测试流程,实施了自动化测试框架,并且已经按时更新换代,进入稳定应用的周期。但在国内,由于软件自动化测试时间不长,测试人员技能水平等因素影响,软件自动化测试的研究和实施大多还处于一个起步摸索的阶段,我们看到普遍的情形是”做的人不少,成功的不多“,这种现状一方面有技术的问题,另外也有方向上的问题。因为在业界可供借鉴的成功实施经验或案例比较少,所以在起步阶段可能就会走弯路,这是摸索必然要付出的”学费“。

  那么怎样能够把握软件自动化测试方向和思路呢?下面笔者结合业界的现状分析,以及未来展望,对软件自动化测试的作出三个层次的划分:

  第一阶段:测试的自动化

  这是最原始的起步阶段,其目的就是将原先手工测试所作的工作转化为自动化代劳。显著的特征就是以工具为中心,比如QTP的应用,原先靠人工来执行的测试案 例,比如点击,录入等,现在由QTP来完成,如果QTP不能支持我们的系统,我们就要寻找解决方案,或改用其他工具,总之大多数的自动化工作重点是在每个 case上,也就是技术层面上的问题。但随着技术上的解决,自动化测试规模的进一步增大,我们很快就面临下面的问题之一或全部:

  1. 自动化测试脚本的类型和数量越来越多,怎样有效管理和复用这些脚本?比如有1000个脚本,有QTP的,有Winrunner的,还有perl的等等,每种脚本又实现了多个case,那我们怎样统一管理和调度这些脚本,使之能够组成一个大的自动化测试目标?要知道单个的测试脚本和单个的测试案例一样,对于公司的老板来说,他们是不关心这些细节的,只有它们组合起来成为一个壮丽的图本,才能体现出来它们的价值。也许老板们刚开始对自动化的执行感到新奇和惊喜,但当他们意识到这些并不能为他带来什么价值时,他就会厌倦并放弃。

  2. 自动化测试如何与手工测试整合?我们知道自动化测试是不能100%完全替代手工测试的,那么自动化测试必须要和手工测试整合在一起,才能反映出其价值。这 意味着,自动化测试要全方位和手工测试执行,包括前期的案例管理,测试的执行,以及最后的报告呈现。

  这些问题是助产士,它们促成软件自动化测试第二个阶段的到来。

  第二阶段:自动化的测试

  如果说第一阶段是在一个点上下功夫,那么第二阶段就是在一条线上作战了。“自动化的测试”的内涵更加丰富,它意在将软件测试里的所涉及的各个环节作为一个统一的整体考虑,从测试案例的管理,测试案例的执行到测试报告的展现都有相应的策略及自动化实现,故称“自动化的测试”。在这里,自动化测试框架横空出世,自动化测试框架是一系列策略思想,规范和代码的集合。它要解决第一个阶段的困局,就要回答下面这些问题:

  1.怎样管理多个自动化测试案例?

  2.怎样无人职守地运行测试脚本?

  3.怎样呈现自动化测试报告?

  AC(Automation Center)是“www.cesoo.com"提供的基于QTP的软件自动化测试框架,它的回答是:

  1.回答:测试组件的创建和划分

  2.回答:增强自动化测试的健壮性,提供re-run机制,抓图策略等等

  3.回答:采用web服务接口和标准的xml技术,既可web页面展现,又可灵活地与手工测试报告整合

  其中在Oracle等公司已经成功实施了AC,并取得了非常好的效果。

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号