TAG (测试用例自动化生成器) :用户引导的测试用例和测试自动化生成器。根据预先定义好的规则和基于知识系统的模型,它能生成测试用例和相应的自动化测试代码。
Visual Tree (可视化树图) :这个树图描绘了GUI的结构,能够形象地显示测试用例报告、自动自动化报告和UI差别变化结果。
Static Binary Analysis (静态二进制分析器) :对于用支持反射(REFLECTION)的编程语言编写的GUI,这个工具会生成静态分析结果。
Automation Framework (自动化框架) :执行测试自动化的底层工具。
UI Diff Tool (UI差别跟踪器) :它能扫描目标GUI的差别,并把这些差别在树图中用图形化的方式显示出来。作为输出的一部分,它会建议用户可能需要更新的相应测试用例和测试自动化。
Bug Filer (Bug 管理器) :是专门发送GUI bug的工具。它把GUI bug根据不同的原因进行分类,这可用作bug趋势分析和质量评估。
接着,我们将具体介绍Tao的重要组成部分和工作流程。
让我们先看一下Tao项目的工作流程及其三个关键组成部分:
图1. TAO项目的工作流程
一、用户引导的测试用例生成器
对于任何对话框,有经验的软件测试开发工程师都可以很快给出一些标准GUI测试用例。例如,测试一个输入框,你可能创建输入最长和最短字符串的测试用例,或者输入带有特殊字符但匹配正则表达式的字符串,或者输入带有Unicode的字符串。我们将这些经验归纳成知识基础,并输入到测试用例生成器(简称TAG)中,TAG把它们抽象成了模型。然后,用户只需提供最少的引导,TAG会自动完成这些模型的实例化,包括生成GUI状态、GUI操作、和测试准则等,并自动生成测试用例和相应测试用例自动化代码。测试用例自动化代码中包括如何打开对话框,如何发现GUI对象,如何实施GUI操作,GUI对象的输入数据是否合法,以及测试准则等。这些都会输入到自动化框架中,从而执行测试自动化。
这里我们只用简单的例子来阐述测试用例生成器TAG是如何工作的,省去复杂的数学模型和公式的介绍。比如,检查textbox只接收包含 “.”的“字母数字”字符串。如果用户输入一个没有“.”的字符串,在编辑框旁边会出现一个错误提示图标。那么就有:
GUI初始状态:控件textbox的值为空
GUI操作1:输入字符串“abc”给控件textbox
GUI操作1:输入字符串“microsoft.com” 给控件textbox
GUI结果状态1:textbox的值为“abc”,控件旁显示错误提示图标
GUI结果状态2: textbox的值为“microsoft.com”,没有错误提示图标
那么TAG生成的测试自动化就会去验证:
GUI初始状态 => 执行GUI操作1 => GUI变化到结果状态1,验证结果
GUI初始状态 => 执行GUI操作2 => GUI变化到结果状态2,验证结果