可以先想象一下,这个测试框架的样子,它看起来或许应该是这样的:
这是一个MMORPG游戏(且叫做“通天传”吧)的自动化测试用例树。树根是“【通天传】产品测试”,后面的数字表示这棵树上共有4个用例。该产品的开发部,测试部都在根下添加了自己的测试“套件”,另外有一个“基础用例”套件,该套件放的是可以复用的用例,以避免重复开发。用例树的叶节点称为“用例”。简单介绍一下几个概念:
- 套件:类似文件系统中的文件夹,套件可以包含子套件,也可以包含用例。套件主要用于组织测试结构,便于管理;
- 用例:类似文件系统中的文件,一般对应可执行的函数,负责执行具体的测试。
这个框架应该支持但不限于以下这些很方便的功能:
- 很方便开发人员创建一个测试套,或者创建一个测试用例;
- 能提示开发人员有未实现的测试用例(如图所示带问号的节点);
- 能动态加载新增的测试套或测试用例;
- 能自动执行选中的测试套或测试用例;
- 支持指定的套件不参与自动测试,也就是说自动运行时,跳过指定的套件或用例;
- 能报告未通过的测试用例;
它的主界面如下图所示:
点击“选择”按钮,打开“测试用例树”,选中指定的套件后,点击“运行”按钮,开始自动运行。如果某个用例没通过,则在界面上显示用例的具体信息,如上图中所示。
了解CppUnit的同学,应该很熟悉这两个界面。不同的是,CppUnit主要用于白盒测试,需要集成源代码,本框架主要用于灰盒测试,或者集成到具体产品中,成为产品的一部分,或者独立于产品,通过协议与被测试的产品交互。
本文仅简要介绍一下灰盒测试框架的界面和主要的功能,从用户角度展望一下测试框架的面貌。具体的实现,在后续几篇博文中详解。