应用案例:如何使用AutoTCG设计测试模型
AutoTCG是一款模型驱动的测试脚本生成工具。使用本工具,测试人员能够对被测件的使用流程进行业务建模,描述使用软件各个步骤;然后配置每个动作的操作内容和参数;软件能够自动将各个动作和参数进行组合,生成执行的测试脚本。
测试人员使用AutoTCG创建的模型,是从开始节点到结束节点之间的一系列动作。每个动作代表对被测件的一次操作或者从被测件获取的一次反馈。动作节点之间用连线进行连接。如果执行的动作需要用到参数,则在动作之前的连线上设置参数,然后动作节点上使用参数。
当模型创建完成后,AutoTCG根据流程图计算从开始节点到任何一个结束节点之间的路径,并且把路径上的动作一个个接续起来,形成该测试路径(用例)的测试脚本。
有些路径的参数取值有一些要求。为了避免无效路径,需要在路径(连线)上设置约束条件。所有不满足约束条件的路径都不会被产生。
同时,所有参数的各种取值也会进行组合,从而在每一条有效路径上使用不同的参数组合产生不同的测试用例来进行测试。
AutoTCG可以和不同的测试脚本执行平台进行集成,比如Selenium,Etest等。集成完成后,可以用该执行平台的操作原语来完成(实现)每个动作;同时自动生成的测试用例也可以在该平台上运行,完成自动化测试。
总之,AutoTCG就是一款结合了相邻路径深度和参数组合的模型驱动的自动化测试用例生成平台。
下面我们用一个例子来看如何进行模型的设计。
应用场景:某软件具有密码输入界面。用户需要输入密码;如果密码正确,则提示成功,进入操作界面;如果密码错误,则提示失败。
设计测试模型如图1所示。
图 1 密码检查测试模型
每个动作模型,我们都设置一些对应的操作。在这里可以调用集成的自动化测试运行平台的操作原语,进行控制操作和结果判读。比如,“输入密码”动作可以调用输入框原语输入password变量的值作为密码值,然后调用提交按钮的点击原语发送密码(假设集成了selenium平台)。在这里我们暂且使用注释文本来表达动作。如图2所示。
图 2 输入密码动作
同理,我们配置其他几个动作“提示密码正确,进入操作界面”、“提示密码错误”相应的动作内容。这里我们都用文本来描述。
图 3 提示密码正确动作
图 4提示密码错误动作
其中“输入密码”动作包含了参数password。这个参数设置在这个动作之前的连线上,如图5所示。
图 5 设置参数
点击“参数”界面,设置password参数的取值范围。如图6所示。
图 6 参数设置
假设参数password的取值有四个值:"aaa","bbb","ccc","abcd",其中"abcd"为正确的密码。
当输入正确的密码时和输入错误的密码时,程序走的路径是不一样的。为了让生成的测试脚本按照参数取值不同走不同的路径,我们需要在路径上设置约束条件:向上的路径,密码为"abcd";向下的路径,密码为"aaa","bbb","ccc"。如图7所示。
图 7 密码正确的路径约束条件
同理可以设置密码错误的路径的约束条件。
这个简单的模型就建立完成了。我们来看一下生成的测试用例。点击“生成”按钮。
软件会弹出信息提示,我们选择“相邻路径深度”为2,“输入组合配对数”也为2。
点击“确定”后,显示了生成的测试路径。如图8所示。
图 8 生成的测试用例
一共生成了两条测试用例。第一条测试用例走的是包含了正确密码的路径,输入的参数使用的是正确的密码。将鼠标点击到第二条用例上,会显示第二条路径。如图9所示。
图 9 生成的测试用例2
第二条测试用例走的是包含了错误密码的路径,输入的参数使用的是错误的密码。
点击蓝色的“运行”按钮,可以显示执行代码。如果已经集成了自动化脚本运行平台,则可以直接运行脚本。
执行代码支持Lua、python、Javascript、C++、C#语言。
使用Python语言的执行代码如下。
小结:
本文通过一个简单的例子介绍了使用AutoTCG设计被测软件模型,自动生成测试脚本的方法。下一期我们会使用更复杂的模型,介绍AutoTCG在路径深度覆盖和参数组合方面强大的功能。