[发明专利]一种数据驱动的单元测试方法有效
申请号: | 200710176970.7 | 申请日: | 2007-11-07 |
公开(公告)号: | CN101158919A | 公开(公告)日: | 2008-04-09 |
发明(设计)人: | 梁君 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/44 |
代理公司: | 北京银龙知识产权代理有限公司 | 代理人: | 许静 |
地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 驱动 单元测试 方法 | ||
技术领域
本发明涉及单元测试领域,特别是涉及一种数据驱动的单元测试方法。
背景技术
软件单元,指软件设计说明中一个可独立测试的元素,是程序中一个逻辑上独立的部分。单元测试是对单个的软件单元或一组相关的软件单元所进行的测试,检查各软件单元是否正确地实现了规定的功能。单元测试对于在开发早期充分发现程序漏洞,以及提高程序的稳定和健壮具有极其重要的意义。
单元测试的关键是构建测试环境,其中经常要用到驱动和桩。驱动是用于模拟待测单元调用者的程序,桩是用于模拟待测单元所调用的下层单元的程序。
在驱动和桩中经常要使用各种测试数据,有的是作为待测函数的输入,有的是作为桩函数的返回值,有的是作为待测函数输出数据的校验数据等。特别是在网管软件中,各模块之间存在着大量的报文数据交换,模块内处理的数据和输出的数据也大多是报文数据,因此,网管软件的单元测试需要构造各种报文数据。另外,在测试时,不可避免还需要其他类型的测试数据,如整型、布尔型或字符串数据等。
目前软件开发中的单元测试,大体分为三种:第一,用户手工编写桩和驱动函数的纯手工测试;第二,借助白盒测试开源代码工具,如CppUnit,采用“半自动”的方式;第三,采用脚本写桩和驱动的自动测试。
对于自动化测试方法,通常采用读取数据文件来得到测试数据。该方法虽然灵活性提高,但对于网管软件中大量结构复杂的报文数据,如果全手工在数据文件中编写,不仅工作量大,而且难以表现报文复杂的层次结构,可移植性和重用率也不是很高。另外,自动化测试工具不仅需要用户熟悉脚本或某种语言进行测试逻辑控制,提高了对测试人员技能的要求,而且,通用的单元测试工具在特定的环境下,自动化程度不高,这限制了其在一些具体环境中的广泛使用。
前两种测试方式使用简单,操作灵活,覆盖率易控制,在网管软件开发中应用广泛。但这两种方式的测试数据通常采用硬编码的方式直接在桩或驱动函数中编写,存在以下不足:
(1)数据构造量大而繁琐,大量的测试数据难以重用和管理;
(2)测试代码重用率低,每增加一组测试数据,都需要新增一组测试代码,容易造成代码冗余;
(3)灵活性差,每次增加或修改一组测试数据,都需要进行重新编译。
发明内容
本发明所要解决的技术问题是提供一种由外部数据文件提供测试数据并控制测试执行的单元测试方法。
为解决上述技术问题,本发明提供技术方案如下:
一种数据驱动的单元测试方法,包括如下步骤:
A、编写用于单元测试的数据文件,所述数据文件包括配置数据文件和报文数据文件;
B、根据所述数据文件构造驱动函数和桩函数;
C、根据所述数据文件、驱动函数和桩函数组织并执行测试用例。
较佳地,步骤A中,所述配置数据文件采用XML格式编写,并包括驱动函数名和为所述驱动函数配置的测试数据。
较佳地,为所述驱动函数配置多组测试数据。
较佳地,步骤A中,所述报文数据文件采用VAL格式,并利用报文数据文件生成工具生成或者按照报文格式手工编写。
步骤B中,根据所述数据文件构造驱动函数进一步包括:从配置数据文件中读取测试数据,将该测试数据作为被测函数的输入数据或者作为报文数据文件名;从报文数据文件中读取报文数据,将该报文数据作为被测函数的输入数据或者校验数据;将被测函数执行后的输出报文存储到报文数据文件中,用于验证执行结果。
步骤B中,根据所述数据文件构造桩函数进一步包括:从报文数据文件中读取报文数据,将该报文数据作为桩函数的输出数据或者校验数据;将被测函数执行后输入到桩函数中的报文存储到报文数据文件中,用于验证执行结果。
步骤C进一步包括:上层驱动函数从配置数据文件中读取子驱动函数名,以此来决定需要执行的子驱动函数以及子驱动函数的执行顺序;上层驱动函数从配置数据文件中读取测试数据组数,以此来决定子驱动函数的执行次数。
本发明提供了完整的由外部数据文件提供测试数据并控制测试执行的单元测试方法,与现有技术相比,具有如下有益效果:
(1)采用数据文件存储测试数据,使测试数据重用率高,且便于管理;
(2)通过测试数据驱动测试用例的执行,利用测试数据组数控制用例执行次数,对测试执行的控制灵活,并提高测试代码重用率;
(3)对测试数据的修改灵活,无需重新编译代码;
(4)无需数据库的支持,减少对测试环境的依赖;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710176970.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种呆锁锁舌结构
- 下一篇:一种户外广告业务实现方法、装置及系统
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置