




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 c+test在核电数据库软件单元测试中的应用研究 王飞 向嫄摘要:软件单元测试是软件测试的基础,是保证软件质量的一个重要阶段,同时也是发现软件缺陷的关键步骤,在核电数据库软件的测试以及范围更广泛的验证和确认工作中占有重要地位。本文从单元测试的基本概念入手,介绍了单元测试的方法,然后重点阐述了利用自动化测试工具c+test对核电数据库软件进行单元测试的过程。关键词:软件单元测试;c+test;数据库软件:tp271 :a:1009-3044(2019)12-0001-03開放科学(资源服务)标识码(osid):the research app
2、lication of c+ test in database software of nuclear power unit testingwang fei, xiang yuan(china nuclear control system engineering co ltd, beijing 100176, china)abstract: software unit testing is the foundation of software testing and an important stage of software quality assurance. it is a key st
3、ep in finding software defects and plays an important role in the testing of database software of the nuclear power plant and in the wider scope of the verification and validation. at first, this article gives a short introduction of unit testing and introduces the method of unit testing. then it go
4、es deeper into how to use c+test to do unit testing in database software of nuclear power plant.key words: software unit testing; c+test; database software核电数据库软件是核电厂数字化仪控系统的重要组成部分,它相当于一个数据处理中心,起到数据交换区的作用。数据库软件的质量和可靠性是保障核电厂正常运转的关键,而对数据库软件的测试是达到软件质量目标的一个重要手段。在软件工程实践中,测试有助于软件满足核电标准中的质量和可靠性要求。作为软件测试中一个
5、不可或缺的组成部分,单元测试是各层次测试的基础,是软件验证和确认的大框架中的一项重要活动。本文研究了基于测试工具c+test的软件单元测试,主要介绍了单元测试的方法,并着重阐述了利用c+test测试工具对核电数据库软件进行单元测试的方法及流程,并对测试结果进行了分析,给出了测试报告。1 单元测试单元测试采用的测试技术分为两种:静态测试和动态测试。动态测试的方法又分为白盒测试和黑盒测试,其中白盒测试为主,黑盒测试为辅。1.1 静态测试方法代码的静态测试是单元测试的第一步,目的是尽量通过人工检查来发现代码的错误,以最小成本保证代码中算法的逻辑正确性、清晰性、规范性、一致性、算法高效性。静态测试的过
6、程:1) 准备:测试负责人向测试人员分发代码规范、审查标准、软件详细设计说明书和单元测试计划等文档,确定测试的代码版本和测试环境等;2) 代码审查:依据相应的审查标准,仔细阅读代码,对照相关材料,发现和记录问题;3) 形成报告:将发现的问题形成(也可由测试工具输出)静态分析报告。1.2 动态测试方法动态测试的方法分为白盒测试和黑盒测试。黑盒测试又称为功能测试、数据测试或规格测试。在不需要了解测试对象内部情况下,依据详细设计说明书/需求规格说明书中的功能来设计和执行测试用例。白盒测试又称结构、逻辑测试或程序测试。这种测试需要了解程序的内部情况,并依据内部构造设计和执行测试用例。单元测试时一般采用
7、白盒测试。白盒测试测试方法有逻辑覆盖法和基本路径法。2 c+test测试工具c+test是一款针对c/c+的单元测试工具,使用c+test进行单元测试,测试流程分为建立测试工程、静态测试、动态测试和生成测试报告。每个流程都需要进行相应的配置和一些需要注意的事项。(1)建立测试工程建立测试工程的关键步骤是配置编译器,须在project configuration中进行编译器的配置,这一步非常关键,因为编译器配置错误将导致整个测试无法进行。由于c+test能和多种开发环境相集成,所以具体的配置应该和用户开发环境的编译器相一致。(2)静态测试c+test对每个规范都给出了详细的说明和示例,通过对每一
8、个检测到的冲突进行分析,可以提高静态分析的效率和正确性。但是c+test的静态测试只是使用编程规范对源文件进行扫描,规范不同,得到的结果也不同。因此我们应该根据项目的实际需要选择和配置合适的测试规范,不然有可以能遗漏不少问题,另一方面,盲目的扩大测试规范可能产生大量冗余的测试结果,这也会增加测试人员的分析工作量。(3)动态测试c+test能对被测单元进行详尽的逻辑覆盖测试,包括行覆盖率,语句覆盖率,块覆盖率,分支覆盖率,路径覆盖率,条件覆盖率,可变条件覆盖率;同时通过将黑盒测试的大部分操作形成自动化,大大减轻了黑盒测试的负担。进行动态测试时,测试用例的设计应充分与覆盖率相结合,系统分析测试用例
9、的设计的合理性和充分性,并根据覆盖率适当增加测试用例。3 利用c+test对核电数据库软件进行单元测试应用上述讨论的软件单元测试方法,利用c+test测试工具完成了核电厂数据库软件的单元测试。下面以核电厂数据库软件中添加标签点函数addtag.cpp为例,详细说明c+test进行单元测试的实现过程,并对结果进行分析。示例程序addtag.cpp是数据库软件在添加标签点时获取标签id的函数。软件的源代码如下:nicint32 ctagvector:addtag(nicout nicuint32* ptagid)if (size_ < ncapacity_)*ptagid = (nicuin
10、t32)size_;size_+;else if (deletedhead_ = nictagid_unused)nicint32 nret = realloc();if (nicerr(nret)return nret;*ptagid = (nicuint32)size_;size_+;else*ptagid = deletedhead_;deletedhead_ = pdata_deletedhead_.parentid;if (deletedhead_ = nictagid_unused)deletedtail_ = nictagid_unused;elseace_assert(dele
11、tedtail_ != * ptagid);ace_assert(isdeleted(deletedhead_);initrecord(* ptagid);+ncurtagcount_;ischange_ = 1;return nicret_ok;程序的流程圖如下图1所示。3.1 静态测试及结果分析输入新建工程名,导入工程文件,进行编译器配置,读取源文件,配置测试规范,进行静态分析。c+test列出了源文件与规范不符的所有地方,并给出了很多详细的信息,对其进行分析能帮助我们较快的定位错误和进行改进。3.2 动态测试及结果分析选中添加标签点(addtag)函数,会自动生成测试用例。自动生成的测试
12、用例,无法满足对代码覆盖率的要求,要在此基础上对测试用例进行修改和添加6。如图1所示,示例程序的代码流程中有4个分支点,需要设计测试用例使每个分支点取真(t)、取假(f)各1次,同时由于函数调用了realloc()用于分配空间的函数,需要在设计用例时对其打桩,因此,设计了7个测试用例,每个测试用例的内容和测试的分支点总结列于表1中。测试用例建立并编辑完成后,c+test可自动依次执行每个测试用例。在测试用例执行过程中,c+test会检查单元模块的实际输出结果是否与期望值一致,统计执行每个测试用例时软件覆盖情况。如果测试用例中存在设计输出值与期望值不符,则说明该单元模块代码存在功能错误;如果测试
13、结果未实现100%覆盖,则说明对该单元模块的逻辑结构没有实现完全测试7。从图中可以看到测试用例对代码的语句覆盖、块覆盖、路径覆盖、决策覆盖均达到了100%。3.3 生成测试报告c+test的测试报告可以生成文本,以及自定义的html报告。这些报告将促使测试人员对软件测试的进度进行控制,以及判断软件执行的对错。4 结论单元测试是软件测试的基础,其重要性得到了广泛的认可。c+test是当前较为实用的单元测试软件。本文通过运行c+test测试工具对核电数据库软件进行单元测试,重点阐述了测试方法及测试流程。运用c+test测试工具,提高了工作效率,完备了单元测试的完整性,有效地保证了核电数据库软件开发
14、的代码质量。参考文献:1 刘乐,张奇.核电厂安全系统软件单元测试的安全审评j.核安全,2013:74-78.2 张巍,尹海波.软件的单元测试方法j.光电技术应用,2006,21(2):36238.3 ieee std 610.12-1990“ieee standard glossary of software engineering terminology”.4 朱少民.软件测试方法和技术m.清华大学出版社,2010:30-62.5 徐宏革,郭庆,雷涛,等.白盒测试之道c+testm.北京航空航天大学出版社,2011:63-64.6 张志成.数字化安全系统软件单元测试中的测试用例设计策略j.第一届中国(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版八年级数学下册《第二十章数据的分析》单元检测卷(附答案)
- 2025秋季大一新生入学军训心得体会(16篇)
- 个人房屋租赁合同范文汇编(20篇)
- 《时光法律教程》课件
- 企业安全演讲稿范文(15篇)
- 《高端别墅营销策略》课件
- 《桥梁结构检测分析》课件
- 北京市单间住房租赁合同(4篇)
- 《我的饮食搭配合理吗》(教学设计)-2023-2024学年三年级上册综合实践活动蒙沪版
- 《边塞诗卢纶新品》课件
- 活动物料清单
- 08S305-小型潜水泵选用及安装图集
- 中远集团养老保险工作管理程序
- 缺血缺氧性脑病详解课件
- 自动打铃控制器plc课程设计
- 最新司法鉴定程序通则课件来源于司法部司法鉴定局
- 变电站第二种工作票
- 机电一体化专业毕业论文43973
- 门禁系统调试报告(共4页)
- 北师大版一年级英语下册期中测试卷
- 档案学概论重点知识梳理
评论
0/150
提交评论