您的当前位置:首页正文

软件测试自动化应用分析

2020-02-15 来源:爱go旅游网
务I生 甸 似 软件测试自动化应用分析 Software test automation application analysis 冯伟,李波,何倩 FENG Wei.LI Bo。HE QJan (唐山学院。唐山063020) 摘要:本文从软件的自动化测试方面进行了分析,对自动化测试的定义、特点和作用等方面进行了 介绍,另外,对软件自动化测试的整体流程提出了改进的方法,从而对今后的软件自动化测 试工作的发展提供帮助。 关键词:软件测试自动化;测试脚本;自动化测试策略 中图分类号:TP311 文献标识码:A 文章编号:1 009-01 34(2011)1(下)-0042-03 Doi:1 0.3969/J.issn.1 009-01 34.2011.1(下).14 0引言 软件测试是软件生命周期的一个重要阶段, 测试质量的好坏,直接决定着软件产品能否稳定 项目风险在开发的后期才能得以降低。通常 在测试人员进行了系统测试以后,方能确定整个 开发过程能否满足用户在系统功能、性能和可靠 性方面的需求。 运行。软件测试中的自动化测试技术是目前有待 进一步发展的技术,因为软件测试的工作量非常 3)项目开发经费超出预期 在整个项目开发周期中,错误发现的越晚, 修复成本越高,此时对问题解决地不及时将导致 整个项目成本的快速增加。 大(大约占总体开发时问的40%到50%),而其 中又有大部分工作适合自动化,因此,测试的改 进会对整个软件项目开发工作的成本、质量和周 期带来非常明显的效果。 2软件自动化测试的分析 2.1软件自动化测试的定义 目前,对于软件自动化测试的常规定义为“使 用一种自动化测试工具来验证各种软件测试的需 求,它包括测试活动的管理与实施。” 通常,我们所进行的自动化测试指的是自动 化测试一个已经使用了正式的测验流程的手工过 1传统软件测试存在的问题 在软件开发过程中,首先要求我们通过测试 验证所开发的软件在功能上满足需求分析中的描 述,性能上满足客户要求的承载负荷和相应的响 应时间、运算量要求;另一方面,工作人员还要 在预算范围内尽早发布软件以便减少开支。 传统的软件测试流程一般是先在软件开发过 程中进行少量的单元测试,然后在整个软件开发 结束阶段,集中进行大量的测试,包括功能和性 程【2J0 2.2引入软件测试自动化的原因 通常,软件测试中有许多是重复性的、非智 力性的和非创造性的操作,通过计算机就可以代 替人工去完成这样的任务,使程序员从纷繁复杂 的同一化工作中解脱出来,转而进行更深层次的 项目测试工作。 能的集成测试和系统测试 。由于软件项目越来 越复杂,这种软件测试的流程给项目开发者带来 以下问题: 1)项目进程较难把握 项目管理难度加大,许多的软件错误往往到了 软件自动化测试是基于手工测试而存在的, 主要通过相应的软件测试工具、脚本等来实现, 软件测试后期才被发现,此时解决问题耗费的代价 很难估算,从而使项目进程无法控制,另外在软件 设计过程中,相关人员无法准确了解软件的质量状 具有较好的可操作性、可重复性和高效率等特点。 自动化测试的测试效率高,成本低廉,可将 重复性强的测试由手工转为计算机自动实现;非 常适合快速的回归测试,改变人工测试很难对新 况,无形中增大了项目管理和开发的难度。 2)项目风险较难控制 收稿日期:2010-11-07 作者简介:冯伟(1980一),男,河北唐山人,讲师,研究生,研究方向为软件工程。 【42】 第33卷第1期2011—1(下) l生 訇 似 的迭代版本作出快速评估的局面;避免人工测试 容易犯的错误,并且对非常耗费时间的边界值测 试,可以快速准确的进行对多用户的并发操作等 人工测试很难实现的操作,自动测试很容易就可 以完成。 因此,测试自动化的实施是软件测试行业一 个发展方向,如果掌握了这个领域的先进技术, 对于一个软件企业的核心竞争力和未来的发展, 都有巨大的推动作用。 2.3常见的软件自动化测试工具 单元测试 Java测试工具:JUnit Mercury Interactive公司的WinRunner,QuickTest 功能级测试 Pro,IBM Rational公司的Rational Robot,Rational Xde Tester,Compuware公司的QARun,RadView 公司的WebFF,Empirix公司的e—Tester等 压力测试 Mercury Interactive公司的Winload,Compuware公 司的QALoad 负载测试 Mercury Interactive公司的LoadRunner Web测试工具 Empirix公司的e—Test Suite Web系统测试 工具 MicroSoft公司的Web Application Stress Tool 回归测试 Rational公司的Team Test Mercury Interactive公司的Loadrunner,Compuware 性能测试 公司的QALoad,MicroSoft公司的Web Application Stress oTol等 测试流程管理 IBM Rational公司的Rational Testmanager, 工具 Mercury Interactive公司的TestDirector 缺陷跟踪工具 Compuware公司的高级变更和缺陷管理工具: TrackRecord IBM Rational公司的Rational Purifyplu s, 白盒测试 Compuware公司的DevPartner Studio Professional Edition 黑盒测试 QACenter,SQATeamtest,Rational Visual Test 、2.4测试脚本的设计 脚本是一组由测试工具执行的代码集合,可 以通过录制测试的操作产生,然后再做修改,这 样可以减少脚本编程的工作量。当然,也可以直 接用脚本语言编写脚本。脚本技术可以分为线性 脚本、结构化脚本、共享脚本、数据驱动脚本和 关键字驱动脚本几类。编辑脚本的原则就是尽量 覆盖更多的测试项,兼容性更强一些,使得测试 新项目时能很容易继承和修改原有的脚本,减轻 后续的工作量。 3软件自动化测试流程的改进 3.1确定要测试的产品进行自动化测试的可行性 自动化测试能提高测试效率,但对于周期短、 时间紧迫的项目不宜采用自动化测试。推行自动 化测试的前期工作相当庞大,将企业级自动化测 试框架应用到一个项目中也要评估其合适性,因 此决不能盲目地应用到一个测试项目中,尤其不 适合周期短的项目,因为非常可能需要大量的测 试框架的准备和实施而会被拖跨。 比如进行一个单元测试自动化,如果开发了 上百行的测试代码去测试一个代码行仅为l0行的 函数,我们先不考虑自动化测试开发之后的维护 成本,但是至少可以有一个直观的认识:从手工 测试向自动化测试的转变是要付出的成本的,而 且这个投入要远比做一次手工测试的代价要高, 所以必须首先要确定对一个软件项目进行自动化 测试是否合适。 3.2对测试的软件项目进行风险评估 资金风险,虽然有些项目具备实施自动化测 试的条件,但还是要引入自动化测试后组织结构 调整等方面的成本估算是很必要的。 切入方式的风险,一定要将自动化测试与手 工测试结合起来使用,设计合理的配比使测试能 够顺利进行。开始可以设置80%的测试采用手工 测试,当这些目标都实现了,再将自动化测试率 提高。 时间估算,在评估完前面几项指标后,需要 估算实施测试自动化的时间周期,以防止浪费不 必要的时间,减少在人员、资金、资源投入上的 无端消耗。虽然到测试自动化步入正轨以后,会 起到事半功倍的效果,但前期的投入巨大,要全 面考虑各种因素,明确实施计划并按计划严格执 行,才能最大限度降低风险。 工作流程变更风险,测试团队乃至整个开发 组织实施测试自动化,或多或少会因为适应测试 工具的工作流程,带来团队的测试流程、开发流 程的相应变更,而且,如果变更不合理,会引起 团队成员的诸多抱怨情绪,所以应该尽量减少这 种变更,并克服变更中可能存在的困难。 3.3制定周密的测试计划 测试计划包括测试环境的建立、确定测试策 略、测试设计流程控制和容错处理等。 第33卷第1期2011—1(下) 【43】 、l生 訇 化 根据开发的软件项目特点,制定完善的计划, 设计好测试的各个步骤,由于自动化测试对软件 的设计质量要求比较高,另外对突发事件和不能 由软件解决的问题就无能为力,所以事先应确定 出现测试异常情况时解决问题的方案,能较快地 将问题解决,减少不必要的开销。 3.4结合手工测试和自动化测试两种方案 测试自动化可以带来非常明显的收益,但是 不能完全依赖于自动测试,它只是测试工作的一 部分,是对人工测试的一种补充。自动化测试绝 不能代替手工测试,它们各有各自的特点,其测 试对象和测试范围都不一样。根据报道,自动化 测试只能发现l5%的缺陷,而手工测试可以发现 85%的缺陷。在进行自动化测试前,首先要建立 一个对软件测试自动化的认识观。单元测试、集 成测试、系统负载测试、性能测试、稳定性测试、 可靠性测试等比较适合采用自动化测试。对于那 种不稳定软件的测试、开发周期很短的软件、一 次性的软件等不适合自动化测试。我们可以根据 实际情况进行选择。多数情况下,手工测试和自 动化测试应该相结合,以最有效的方法来完成测 试任务。 自动化测试工具在进行功能测试时,其准确 的含义是回归测试工具,这时工具不能发现更多 的新问题,但可以保证对已经测试过部分的准确 性和客观性。 3.5总结软件自动化测试的过程 将整个测试过程进行记录,总结过程中的经 验和教训,生成测试报告,找出解决同类问题的 思路和方法,以便以后测试类似的软件项目时能 重复利用前面取得的成果,如果有条件的话,在 测试的基础上设计相关的测试模板,如果以后有 类似架构的软件项目的话,可以沿用前面的这种 模式进行测试,从而大大地提高测试的效率。 [441 第33卷第1期2011-1(下) 4结束语 总之,软件项目的自动化测试在国内的发展还 不是很成熟,没有真正地形成一整套合理有效的 规范。在实际应用中,我们要结合传统的手工测 试和自动化测试两种方法的特点,发挥它们的优 势,让自动化测试策略及工具的实现成为测试人 员手中的一件利器,把他们从枯燥的重复性工作 中解脱出来,将更多精力和时间专注于需要智能 判断的复杂工作和其他新的测试用例。另外,我 们要避免将自动化测试和测试人员等同起来,不 要对自动化测试要求过高。我们要对自动化测试 树立一个正确的观感,清醒地认识到自动化测试 是人工测试的有力补充,而无法取代测试人员的 地位。任何单一的技术或操作方式上的进步,都 不能独立地保证在短时间内大规模地提高软件的 开发效率、稳定性和可维护性。自动化测试也是 一个积累经验、循序渐进的过程,不能指望软件 测试人员在短时间内能将所有测试实现自动化。 成功的自动化测试需要制定相应的自动化测试计 划,合理的自动化测试策略是自动化测试实施是 否成功的第一步。只有充分考虑到自身实施自动 化测试的风险、资源和目标后,才能制定出适合 自己的自动化测试策略,并最终提高测试效率, 降低测试成本。对每个有测试部门或从事测试业 务的企业,都应该多借鉴国内外先进的测试经验, 参考业界流行的行业标准,找到适合自己团队的 测试方法和模式,创造更大的社会价值。 参考文献: [1】Elfriede Dustin JefRashka John Pau1.于秀山,胡兢玉’译.软 件自动化测试:引入、管理与实施【M】-电子工业出版社. 【2]干晓鸣.软件自动化测试的合理应用.计算机应用与软件. 【3]软件测试自动化技术.IBM Rational技术白皮书. 【4】柳胜.软件自动化测试框架设计与实践[M】.人民邮电出 版社. 

因篇幅问题不能全部显示,请点此查看更多更全内容