用XML存储测试用例(二)

上一篇 / 下一篇  2015-12-03 09:59:43

 

  1. 数据存储格式

由于用例相关数据呈现出树形结构,而描述树形结构数据是XML语言所擅长的,同时,由于XML文件具有跨平台特性,以及开发方面具有广泛的支持性等因素,所以选择用XML文件作为用例存储的的载体,以特定的XML标记来描述用例的相关信息。

文件、被测单元、用例组、用例、输入数据、输出数据等信息相对简单,仅需定义好相关的标记及属性名称即可。而输入数据的具体输入值及输出数据的预期输出是用例存储的核心内容,也是最复杂的部分,下面着重分析一下输入值和预期输出的表示方法。

输入值和预期输出均是对数据的存储。根据数据的类型以及输入/输出类型,数据表示方法分为直接表示法和间接表示法。

  • 直接表示法

    直接表示法即“输入”的值就是输入的数据。如果输入数据的数据类型是intcharfloat等简单数据类型,使用直接表示法。“输入”的值即输入的数据。

  • 间接表示法

    间接表示法即“输入”的值是具体输入数据的一种载体(通常是XML),具体输入数据要从载体中获取。如果输入数据的数据类型是数组、指针等复杂类型,使用间接表示法,使用XML存储原始数据,如果数据比较复杂,可以根据情况在文件中仍然存储原始数据的载体。下面以c语言为例详细结合具体实例介绍一下如何使用间接表示法存储数据。相对于其它语言,c语言语法较为复杂,因此,以其为例可以代表绝大多数高级语言。

对于c语言来说,需要使用间接表示法的数据类型有数组、指针、文件指针、被调用函数输入、控制台输入/输出等几种。

    • 数组

对于数组来说,在xml文件中逐个罗列数组元素即可。下面的一段xml就存储了int型数组a,它的0号元素是11号元素是22号元素是3

<DataSet >

<Data Name="a[0]" Type="int">

<Value>1</Value>

</Data>

<Data Name="a[1]" Type="int">

<Value>2</Value>

</Data>

<Data Name="a[2]" Type="int">

<Value>3</Value>

</Data>

</DataSet>

    • 普通指针

根据c语言的语法,先要给指针变量确定一个非指针的相同数据类型的对应变量,先给出对应变量的值,然后在将该对应变量的地址付给指针变量。下面这段xml给通过影射变量pdf_map实现了给int型指针pdf赋值。

<DataSet >

<Data Name="pdf" Type="int" MapVarName="pdf_map" Relation="1">

<Value>3</Value>

</Data>

</DataSet>

    • 文件指针

使用库函数fopen(…)来实现输入值得表示。下面这段XML实现了给文件指针fp赋值。

<DataSet >

<Data Name="fp" Type="FILE *" >

    <Value>fopen("e:\\buaa\\examples\\out\\out.txt", "w" )</Value>

</Data>

</DataSet>

    • 被调用函数输入

只有是单元测试用例,才需要处理被调用函数输入。被调用函数输入也分为直接输入和间接输入两种方式。

直接输入:在数据载体中直接写出替代函数。下面这段xml直接在xml中写出

calculate_cheapest_fruit函数的替代函数的代码。

<DataSet >

<Data Name="calculate_cheapest_fruit" Type="fruit" MapVarName="" Relation="" Input_Type="fun_stub">

<Value Style="code">

fruit calculate_cheapest_fruit ()

{

 return apple;

}

</Value>

</Data>

</DataSet>

间接输入:

首先要创建被调用函数的替代函数,要求函数名称、参数、以及返回值都与被调用函数完全一致,然后将其存入文件中。下面这段xml指明了buy_fruit函数的替代函数存储在C:\Testbed\Tbrun\Ggstub.c中。

<DataSet >

<Data Name="buy_fruit" Type="int" MapVarName="" Relation="" Input_Type="fun_stub">

<Value Style="file">C:\Testbed\Tbrun\Ggstub.c</Value>

</Data>

</DataSet>

    • 控制台输入/输出

为了能够处理在控制台的输入/输出的数据,在测试中,控制台输入和输出都进行重定向,直接指定控制台输入/输出的重定向文件即可。



TAG: 白盒测试 单元测试 分支覆盖率 黑盒测试 集成测试

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2019-10-15  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 2918
  • 日志数: 2
  • 文件数: 1
  • 建立时间: 2014-12-20
  • 更新时间: 2015-12-03

RSS订阅

Open Toolbar