在过去的数年中,通过使用自动化的测试工具对软件的质量进行保障的例子已经数不胜数。到现在为止自动化测试工具已经足够完善了,我们完全可以通过在软件的测试中应用自动化的测试工具来大幅度的提供软件测试的效率和质量。在使用自动化的测试工具的时候我们建议尽早的开始测试的工作,这样可以使修改错误更加的容易和廉价,并且可以减少更正错误对软件开发周期的影响。下图显示了手工测试与自动化测试的比较。这个测试案例中包括1750个测试用例和700多个错误。
手工测试与自动化测试的比较
测试步骤 | 手工测试 | 自动化测试 | 通过使用工具的改善测试的百分比 |
测试计划的开发 | 32 | 40 | -25% |
测试用例的开发 | 262 | 117 | 55% |
测试执行 | 466 | 23 | 95% |
测试结果分析 | 117 | 58 | 50% |
错误状态/更正检测 | 117 | 23 | 80% |
产生报告 | 96 | 16 | 83% |
时间总和 | 1090 | 277 | 75% |
通过这个表我们可以看出自动化测试与传统的手工测试在所有的方面都有很大的不同,尤其是在执行测试和产生测试报告的方面。
短测试周期中手工测试面临的挑战
迭代式的开发过程已经显示了比瀑布式开发的巨大好处,并已逐渐的取代传统的瀑布式开发成为了目前最流行的软件开发过程。在迭代开发中强调在较短的时间间隔中产生多个可执行、可测试的软件版本,这就意味着测试人员也必须为每次个迭代产成的软件系统进行测试。测试工作的周期被缩短了,测试的频率被增加了。在这种情况下,传统的手工测试已经严重的满足不了软件开发的需求。如下图所示,当第一个可测试的版本产生后,测试人员开始对这个版本的系统进行测试,很快第二个版本在第一个版本的技术上产生了,测试人员需要在第二次测试时重复上次的测试工作,还要对新增加的功能进行测试,每经过一个迭代测试的工作量会逐步的累加。随着软件开发过程的进展,测试工作变得越来越繁重,如果使用手工测试的方法,将很难保证测试工作的进度和质量。在这种情况下应用良好的自动测试工具将势在必行。通过使用自动化测试工具测试人员只要根据测试需求完成测试过程中的所需的行为,自动化测试工具将自动生成测试脚本,通过对测试脚本的简单修改便可以用于以后相同功能的测试了,而不必手工的重复已经测试过的功能部分。
手工测试的问题
查看原图(大图)
同时,现代的 GUI 开发技术已经非常的先进了,它提供给开发人员快速开发的能力。这就意味着开发人员能够非常快速的改变应用程序,并将新的版本交个测试人员进行测试。实际上,很多公司每天都会有多个应用版本产生。如果还是使用传统的手工测试的方法是根本不可能符合软件快速开发的要求的。
自动化测试的步骤
自动化测试的步骤:
录制测试过程成为自动化测试脚本
增强和改进录制的自动化测试脚本
执行自动化测试脚本完成自动化测试
自动化测试过程
录制测试过程成为自动化测试脚本
开始自动化测试过程的第一个步骤是根据测试用例(测试需求)录制测试活动的过程。当测试人员在被测试的应用程序中进行测试的活动时,自动化测试工具将捕获测试人员与应用程序之间的所有交互,并根据这些交互生成可重用的测试脚本。测试人员在这个阶段需要考虑的一个关键问题就是,使用的测试工具是否有能力在应用程序的环境中捕获所有与应用程序的交互。
这里我们要强调的是你需要考虑与测试应用有关的所有环境。让我们通过一个例子进行说明。假如你的应用是一个基于 Web 的应用,你可能会认为我们测试工具只要能够支持你使用的浏览器就足够了。但这并不是足够的,在测试基于 Web 的应用的过程中,一定会去要和一些其他的补助应用打交道,比如也许你需要和某种数据库查许工具进行交互以确认数据被正确的输入到了数据库,或者也许你需要和注册表编辑器进行交互以验证注册表的键值。或者也许你将需要和一个电子邮件的客户端程序交互来验证从你的 Web 应用发出的邮件。你对主要测试环境将是你对浏览器,但是你同时要确认你能够通过测试工具来测试其他所有的辅助环境,这样才能实现测试的所有环节的自动化。如果某一个测试环节不能被自动化测试工具支持,它将成为阻碍测试效率的瓶颈。
增强和改进录制的自动化测试脚本
自动化测试过程的第二个步骤是增强和改进已录制的测试脚本。你需要阅读录制好的脚本代码,并对其进行适当的需改。我们举例说明,当你录制一个脚本时,自动化测试工具将记录你输入的所有数据。用一个简单的脚本来说,你的脚本可以读出一个文本文件的内容,你可以通过设置参数为这个脚本输入不同的数据集。这样这个脚本变得更加有用了。
为了实现这一点,你需要确保你能够得到一种简单的语言以支持你所有的需要。
你还要确认你的测试工具能够支持所有你应用程序中的控件。通常情况下,开发人员将创建自己的GUI 或者甚至是一些非 GUI 的对象在应用程序中。你需要确认你能够通过修改测试脚本来使用这些控件。
执行自动化测试脚本完成自动化测试
执行单个或者少量的测试脚本是十分简单的,但是当回归测试不断的增加时,情况就变得复杂多了。你必须确认你能够协调测试脚本之间的关系,并能够从多台机器上按照多种配置来执行测试脚本。
Ratioanl Robot 帮助你实现有效的自动化测试
Robot 对录制测试脚本的支持
Robot 可以监测到测试人员与应用程序之间的所有交互行为,并可以产生相应的测试脚本。
现在你必须理解自动化测试中关于验证点和检查的主要区别。当你进行手工测试时,通常你可以通过看屏幕中显示的结果来判断应用程序执行是否是正确的,或者你可以将屏幕上的结果与文档或者其他的一些结果基线进行比较。在 Robot 中这种比较是通过在测试脚本中设置验证点实现的。在执行脚本时Robot 会在验证点获取测试感兴趣的数据,然后与已设定好的结果集进行比较判断测试是否通过。这个比较的过程叫作检查。
Robot支持的环境
目前 Robot 对几乎所有流行的应用环境多有良好的支持和工作表现。尤其是对象 HTML、Java 和 .NET 应用、 Visual Basic,、PowerBuilder,、Delphi、 Oracle 表单 和 MFC 控件(控件最常用在 C和 C++ 的应用中)有着非常强大的支持。
在 Robot 覆盖了几乎所有的应用环境的同时,仍然存在一些用很少被使用的语言和环境创建的程序部分,对于这些环境, Robot 具有一种通用的记录引擎可以捕获几乎所有的基本界面交互。因此可以说,使用 Robot 能过满足几乎所有的测试环境要求。
测试的验证点
验证点是一个 Robot 测试脚本中的一个术语,在验证点上你可以检查某些系统表单的行为。
在 Robot中最常用的验证点是对象属性和对象的数据验证。这些验证点被用于捕获对象的状态和对象测试期间的数据。在 Robot 中创建验证点与选择想得到的验证点和识别想要被测试的对象一样的简单。