2.2 测试数据分类
据James Whittaker在他划时代的《探索式软件测试》一书中的介绍,软件测试人员在制定测试策略时需要关注以下5个部分,包括输入(input)、状态(state)、代码路径(code path)、用户数据(user data)和执行环境(execution environment)。在资源有限的情况下,完整解决这其中的哪怕一个问题都是不可能的。因此,需要测试人员时时做出测试决策。作为一个测试框架架构人员,也必然需要面临这些问题,解决测试人员在面对前述这些问题时所提出的自动化测试框架的需求。而其中的核心,恐怕也就是测试数据的问题。
依据图2.1测试数据管理将自动化测试中相关的测试数据简单划分为3类,即框架数据、被测应用数据以及测试用例数据。
(1)框架数据包括框架平台数据和执行工具数据。
① 框架平台数据:测试框架为完成自身工作所需要的数据。典型应用场景如Log4j的属性文件、外部数据库的连接信息等。
② 执行工具数据:和框架平台数据类似,这是有关Selenium/Webdriver自身的一些所需数据,如全局的页面、控件载入超时设置、浏览器配置信息等。
(2)被测应用(AUT,Application Under Test)数据,也就是框架中封装的有关被测系统的数据。在UI测试中,最为普遍的数据来源之一是元素的定位数据。此外还有系统自身提供的数据,譬如一个下拉菜单中的选项等。另外一个被广泛使用的数据源是AUT初始化数据。典型的初始化数据(如用户及权限的数据)往往是在系统部署过程中或者在相应的测试用例集执行前通过预定义的文件(如CSV、XML等)集中导入AUT,并提供给后续测试用例使用。
(3)用例数据,也就是测试用例与AUT进行交互时,测试框架从测试用例中获取的数据,通常用于完成在被测应用中输入或者与验证应用的输出数据。