Software Application・软件应用 软件自动化测试的应用研究分析 随着信息时代的来临,软件 的开发与更新周期也越来越短。 在开发与更新周期缩短的同时, 如何保证软件质量与可靠性就变 得十分重要。随着计算机的普及, 计算机应用范围也越来越来广, 相对的,对于各类软件的需求量 也逐步提高。一款软件开发出来, 就需要进行测试。自动化软件测 试技术的出现可以让开发人员可 以更便捷的测试软件,摆脱繁杂 的人工测试,简化测试流程,有 效提高工作效率。 【关键词】软件自动化应用研究测试 一款软件从开发到发布,除了软件设计 编程之外,软件测试也是不可或缺的一项中心 环节。软件测试在以往都是软件开发人员自己 检测,但程序员却无法将充足的时间用来测试, 所以后来发展为软件开发与测试两者独立,测 试部分由测试部门负责。但这个过程人力物力 消耗大,时间长,所以软件自动化检测技术也 就应运而生。 1软件自动化测试 1.1软件自动化测试的概念 软件的自动化测试是一种新的软件测试 技术,根据需要,可以将测试系统的运行环境 进行调整,然后按照测试要求与目的设置相关 程序功能,然后由系统按照设置好的程序对需 要进行测试的软件测试。其运用主要地方为: 软件开发完成后的测试以及维护测试。 1.2软件自动化测试的目标 通过软件自动化测试技术进行新软件测 试,可以达到:用最少的经费,取得更完整彻 底的测试结果,从而根据测试结果进行软件的 再修改,以此来提高软件的质量。 1.3软件自动化测试的特点 较传统的人工测试而言,软件自动化测 试具有如下特点: 1.3.1在软件版本升级后,进行再测试 其实这一点是这项检测技术最基本也是 最核心的任务。当一个软件需要进行版本升级 时,为了测试新版本软件的性能,那么人工软 文/张维利刘捷 件测试与自动化软件测试就无可比拟。版本更 件每次测试,都需进行系统调试,对于简单的 新周期短,不具有开发阶段周期长这一特质。 测试,其调试时间与人力测试时间相当,这类 所以,利用软件自动化测试技术,在省却大量 情况检测软件的使用就不合时宜。还有一些类 测试时间的同时,还可以加快新版本测试进度, 型也是软件测试所无法替代的,例如:被测软 降低版本升级的费用。 件运行不稳定,这时就需要人力进行测试,这 1.3.2可持续测试 样方便调节。还有有一些需要人机交互的测试, 软件自动化测试技术的另一大特点就是 测试软件是一种设定好的程序,对于需要实时 其可持续测试性,自动化测试只要机器运行, 进行人机交互的测试来说,其自动化测试无法 就可以一直测试下去,而手工测试却无法具备 做到随机应变。所以,自动化软件测试是不能 测试持续性。这是人力测试无法解决的劣势。 完全替代人工测试的。 1-3-3多任务性 1.5.2软件新版本的再测试没人工发现bug多 人力有穷时,对于简单软件系统,人工 自动化测试软件的一大好处就是可重复 测试还能胜任,但遇到诸如多元网络传输系统, 测试,但当使用以往测试数据来测试同软件的 依靠人力对系统测试,是行不通的。但自动化 新版本之时,自动化软件检测所发现的bug往 软件测试技术却可以胜任,其可以同时对这些 往会低于人工测试所发现的bug。 网元进行仿真模拟测试。所以,自动化测试具 1.5-3自动化软件检测对软件开发存在一定制 有多任务性。 约 1.3.4人力资源利用率高 由于自动化软件测试程序相对固定,当 通过自动化软件检测技术,可以将更多 一些被测软件有重大更新时,往往由于测试程 地人力资源解放出来,让有限的人力资源不再 序无法与新版本做到兼容,从而导致测试软件 陷入繁琐的测试当中。利用自动化检测软件可 崩溃。而自动化测试软件的再设计与维护成本 以让工作人员只需要思考测试的目的,设计更 会比人工测试高,且自动化测试比人工测试影 好地测试方案,控制好测试软件即可。 响要高,所以会对开发人员造成影响,综合以 1_3.5测试进程具有稳定性 上因素,会对一些被测软件的重大更新部分造 利用软件自动化测试技术,可以将测试 成修改限制。 的环境保持稳定一致,可以规避人力测试因外 所以,合理安排软件自动化测试与人工 界因素影响测试过程,导致测试结果不准确这 软件测试,将会更利于开发人员降低开发成本, 一问题。 减少测试时间,获取高效益。 1.3.6测试过程与结果可做范例 软件经过自动化测试之后,测试软件就 2适合软件自动化测试技术的领域与辅 会将测试信息记录下来,作为范例,当遇到相 助测试工具 似测试项目时,这些信息也可以作参考或直接 使用。这也是人力测试所不具备的。 2.1适用范围 1.4软件自动化测试所需技术 目前的软件自动化测试适用于:单元/组 件测试、BvT(版本测试)、集成测试、系统 一款自动化测试软件,其需要具备这几 测试、回归测试以及性能测试。 样必须条件:被测软件信息输入部、测试结果 2.2软件自动化测试与人工测试使用环境总结 输出部分以及多次测试结果对比部分。具备这 三大部分,测试软件才能实现自动化测试。 软件自动化测试:该被测软件项目无严 1.5软件自动化测试的不足 格时间限制,有良好测试计划与测试目的,测 试内容涉及多平台,涉及被测软件运行所需硬 软件自动化测试,其优点甚多,但并非 件,被测软件可以使用自动化软件进行测试等 万能。自动化测试任然存在一些不足之处,这 这些情况下都可以使用软件自动化测试。 些都是自动化测试技术所无法具备的: 人工软件测试:没有严格测试时间限制, 1.5.1无法完全替代人工测试与测试工程师 没有明确的测试目的与计划,开发人员或软件 有许多测试任务是自动化测试软件无法 测试人员当中不会操作软件自动化测试的,刚 完成的。这时候就需要用到人力测试以及测试 加入开发的新成员,没有相关硬件等等这些情 工程师了。对于简单的软件测试,依靠人力测 况就不是自动化软件测试所能达到的。 试即可解决,而不需要检测软件参与,检测软 Electronic Technology&Software Engineering电子技术与软件工程・87 软件应用・Software Application 2.3软件自动化测试所需工具 根据软件测试过程所需工具,正确使用 于相对简单的测试目标具有速度快,效率高的 特点。尤其是在相关的人机交互测试这类灵活 度较高,测试过程不可控的测试目标,人工测 这些测试分析工具可以帮助测试人员更快,更 在软件自动化测试进程中,还需要一些 工具辅助软件测试,目前按照使用环境可以分 为: 2_3.1管理型工具 高效完成软件测试任务,缩短软件发布周期。 3合理设计软件自动化的测试 管理型测试工具主要是对软件测试的计 3.1设计中应当规避的情况 合理的自动化测试设计,可以提高工作 试具有快速反应,测试灵活等特点。相应的, 人工测试也存在很大的弊端,人工测试人员受 精力与时间限制,对于那些时间短、测试过程 程序化与复杂化的测试目标,人工测试就需要 耗费大量时间与人力资源来完成。这也导致了 划、用到的测试用例、测试所需以及测试进程 进行综合管理,同时还能通过这些管理型工具 发现自动化测试所存在的漏洞,并就这些测试 效率,所以,在设计自动化测试时,应注意规 测试成本提高,效率低下。软件自动化测试与人工测试相比,自动 避以下几种情况:时间限制,没有明确的测试 漏洞进行管理跟踪。而软件的开发者和软件测 试人员能够通过管理工具对被测软件信息进行 目标,测试经验不够多,测试人员流动性高, 交流。 对测试失去耐心和太偏重技术等。 2-3-2沙盒工具 3.2测试软件设计注意事项 所谓沙盒测试工具,就是在独立环境下, 对被测软件内部代码进行逻辑流程测试;而在 在设计自动化测试软件时,有几点需要 测试中可以发现被测软件的漏洞,并且能够将 重点设计: 这些缺陷定位,最高可定位至代码级。 3_2.1测试软件的可维护性 2l3-3用来分析被测软件在静态环境下的工具 过高的设备维护成本将会大大降低自动 静态软件分析工具可以对被测软件代码 化测试软件的实际应用性,所以,在设计自动 直接扫描,在不需编译的情况下进行测试分析。 化测试软件的时候,软件的可维护性是其中一 静态软件测试分析工具主要使用在:(1)代码 大重点考虑对象。目前的自动测试软件领域竞 对被测软件进行语法扫描分析,找出代码编写 争激烈,而要想获得高的市场占有率,那么具 错误的地方。 (2)对被测软件静态情况下分 有低维护成本的测试软件将占有极大优势。维 析其结构,静态测试工具会根据被测软件代码 护包括测试软件的日常维护以及测试软件的版 结构复杂程度,对软件代码的设计与模块调用 本更新,其中版本更新维护是维护重点。随着 生成记录图表。 软件开发的深入,软件自动化测试需要紧跟开 2l3.4被测软件动态环境运行分析工具 发者的步伐,当测试软件无法满足测试需要时, 相对静态软件分析测试工具而言,动态 那么自动化软件将会逐渐丢弃淘汰。所以,保 分析工具的工作方式是利用钉钉子的方法,在 持更新步伐是需要重点考虑的。 被测软件代码中插入一段检测代码,这段代码 3.2.2可测性 会在被测软件运行时,对软件数据与资源调用 可测性就是自动化测试对被测软件的测 率进行统计分析。 试是否有效。所以,为了保证软件的可测性, 2.3.5功能测试分析工具 设计时应当使用拥有:CLI、API与GUI接口 功能测试分析工具也可以称之为黑盒工 的测试软件。 具,其工作流程是通过自动记录被测软件数 4自动化测试与人工测试对比 据、检测以及回溯客户操作。通过对被测软件 测试前所预测结果进行对比,从而帮助开发人 自动化测试与人工软件测试,其区别只 员与测试人员对不同版本的软件进行功能测试 是测试方式不同而己。从以上文章分析可以知 分析,提高工作人员工作效率。黑盒工具其主 晓自动化软件测试其优点突出,但不足之处也 要目的是:通过测试分析被测软件程序能否达 是显而易见。 到预期设计目标以及稳定运行。 自动化测试其根本性目的是将以往人工 2-3.6软件性能测试分析工具 测试的过程精简化、程序化和标准化。在一定 性能测试分析工具的目标是:分析测试 程度上可以代替人工进行软件测试。自动化测 被测应用软件的可扩展性能。在测试过程中, 试的优点在于:自动化软件测试可以按照软件 通过性能测试分析工具可以帮助测试人员检测 测试需要进行相应程序修改,然后利用符合测 软件运行性能以及查找运行时所出问题。并且 试需求的测试程序进行测试,在这过程中,相 就检测出的问题进行自动性能优化,保证应用 对简单的测试部分可以依靠人工测试,对于那 软件能够正常进行测试运行。 些有重复性,测试过程严谨的测试部分则可以 2l3.7辅助工具 利用自动化测试,达到测试目的。综上,可以 这一类的测试工具其本身并不具备测试 对软件自动化测试与人工测试进行一个对比. 所需条件,辅助工具存在的目的就是将软件测 首先是人工测试: 试过程中所搜集的数据信息生成记录,为测试 人工测试是一开始就使用的测试方式, 人员提供参考依据。 人工测试需要测试人员有丰富的测试经验。对 88・电子技术与软件工程Electronic Technology&Software Engineering 化测试是按照测试程序对被测目标进行测试。 所以对于那些重复性测试具有高效,测试过程 严谨的特点。其所具备的强大数据处理能力对 于那些测试过程中需要进行大量数据处理运算 的测试任务具有高效的完成性。但其缺点也是 明显的,对于那些需要进行实时交互的测试目 标来说,自动化测试的固定测试程序是无法胜 任的。 综上分析可以看出,人工测试与自动化 测试之间有着明显优缺点,但两者也具有良好 的互补性,所以合理搭配这两种测试方式,将 会极大提高测试任务的完成效率,有效降低测 试成本与人工测试资源。 5结束语 本文从软件自动化测试的意义到应用进 行了简单讨论分析,从各方面对比来看,软件 自动化测试在软件测试行业中占有重要地位, 在未来的发展中,应当加大对自动化测试的研 究力度。让自动化测试继续发挥更大的作用。 参考文献 【1】应杭.软件自动化测试技术及应用研究[D] 【2]刘艳霞.软件自动化测试技术应用研究[J】 软件导刊.2 007,5:36—38 [3]蔡志贤.软件自动化测试的研究与实践[D] 【4]陈晓.软件自动化测试的分析与实践… 计算机科学.2008.35(4):282-322 [5]季淑引.软件自动化测试工具的应用研究 [J]科技向导.2 012.2O:59 [6]陈哲.软件自动化测试系统的研究与实现 [D】 作者简介 张维利(1 978一),男,山东省人。硕士学历。 主要研究方向为信息系统软件测试、软件可靠 性等。 作者单位 中国电子科学研究院北京市 100041