API 测试(2)

来源:互联网 发布:php文件分享系统 编辑:程序博客网 时间:2024/04/30 07:23

存储用于测试用例的数据

 

问题

 

      如何在一个简单的文本文件里创建并存储用于API测试用例的数据

 

设计

     

      使用冒号作为分隔符的文本文件,这个文件包含 唯一的测试用例ID,一个或者多个输入值和期望结果。

 

方案

 

      0001:ArithmeticMean:2 4 8:4.6667

      0002:ArithmeticMean:1 5 :3.0000

      0003:ArithmeticMean:1 2 4 8 16 32:10.5000

 

注解

 

      编写自动化测试程序的时候,可以让测试用例数据独立于测试套件单独存在,也可以把它嵌入测试套件。通常来说,较好的做法是让测试用例数据独立于测试套件,因为这样做可以让多个测试程序共享数据更为容易,而且修改这些数据也更为容易。文件的每一行代表一个单独的测试用例。每个测试用例有4个字段,它们分别是:测试和例ID、待测试方法、测试用例数据输入(由空格分开),以及期望结果。这4个字段由“:”字符来隔开。很多时候,这些文件还会包含一些额外的数据,比如测试用例标题、测试用例描述以及测试用例分类。选择什么做为分隔符,大多数情况下你都可以根据自己的喜好来决定。前提是要使用的分隔符不能是输入数据或是期望结果的一部分。举例来说,用冒号作为分隔符对于测试与数值计算相关的方法来说毫无问题,但是如果所测的方法的输入是URL那就有问题了,因为"http”后面紧跟着就是冒号。对于很多轻量级的自动化测试程序来说,出于简单性考虑,文本文件就最好的数据存储方法。其他的方法还包括把测试用例数据存储到XML文件或者SQL表。使用文本文件的不足之处还在于,它们很难处理有内在层次结构的数据,而且很难识别出伪控制字符,比如<CR><LF>等。

 

      前在的方案只有3个测试用例,但是实际测试中,你常常需要成千上万个测试用例。应该考虑到边界值(通过给出 一些特殊的输入,比如说正好等于、小于、大于预定义的输入上限或下限)、空值以及无效输入 。还要有一些用例使用重新排列过的输入数据,如下所示:

 

      0002:ArithmeticMean:1 5:3.0000

      0003:ArithmeticMean:5 1:3.0000

 

      决定测试用例的期望结果通常是比较困难的,从理论上来说,会有一份文档详细说明待测方法的行为。当然,实际情况是:这些文档要么不全,要么根本就没有。常见的一种错误是,把输入数据提供给待测方法,记下输出结果,然后把这个结果作为期望值,你应该努力避免这种错误,因为这种做法不是在测试一个类的方法:它仅仅验证了你每次得到的都是相同的(但可能是不正确的)输出结构。如果采用这种做法,那就是无效的测试系统。

 

      开测试套件的过程中,应该故意创建一些产生失败结果的测试用例。这么做可以帮助我们发现测试套件中的逻辑错误。例如:

 

      0004:ArithmeticMean1 6:6.0000:deliberate failure

 

      通常来说,当待测函数或待测方法都位于DLL当中时,使用术语API测试。当待测方法位于某个类(当然,这个类可能作为一个DLL来实现)中的时候,使用术语单元测试(Unit Testing)。术语模块测试(Module Testing)、组件测试(Component Testing)以及元件测试(Element Testing)是更为宽泛的术语,当所测试的函数和方法不用DLL的方法来实现的时候,使用后面几个术语。

原创粉丝点击