您的位置 首页 电路

经过嵌入式软件完成途径掩盖测验的设计方案研讨

通过嵌入式软件实现路径覆盖测试的设计方案研究-路径覆盖测试是覆盖测试中的关键测试技术之一,目前已应用于程序覆盖率分析、测试用例设计、程序调试、性能优化等多个方面,是覆盖程度最高的测试。其基本原理是用最少的测试用例,覆盖程序中的所有路径,发现程序中最多的错误,安排测试计划、分配测试资源,并对实际测试所达到的覆盖率做出评估。本文给出了路径覆盖相关理论,并在理论研究的基础上设计出了一种嵌入式软件动态测试系统框架,完成对被测程序的路径覆盖率分析,进而判断测试的充分性及弱点,从而进一步改进测试过程。

导言

现在,嵌入式软件已广泛的运用在各个范畴:如工业操控、通讯设备、信息家电以及航空航天等范畴,运用越来越广泛,杂乱性也日益添加。但因为嵌入式软件实时性强、I/O通道少、内存资源受限、与硬件及硬件驱动严密相关、CPU品种繁多等特色,决议了嵌入式软件的开发和测验必须在穿插编译环境下进行,即开发及测验东西运转在宿主机上,而被测程序运转在软硬件资源严重的方针机上。仅仅在开发环境下进行嵌入式软件测验,难以保证其测验成果的有效性;而仅在方针机上进行测验,因为软件运转的不可视性,又使得测验者难以知晓程序当时运转状况,以及代码的掩盖状况。因而对嵌入式软件掩盖测验技能的要求也更高。

软件测验是一种有效地保证软件质量的重要手法。常用的软件测验办法有黑盒测验、白盒测验和灰盒测验。白盒测验中最老练、最常用的办法是掩盖测验,它是一种动态软件测验办法。掩盖测验是验证软件功用结构正确性以及查找问题的一种重要办法和手法。为了获取掩盖率信息,必须在取得被测程序结构信息、静态数据流信息、操控流信息等根底上,参加一些探针,经过探针搜集的信息来取得程序的履行途径、状况等操控流。

途径掩盖测验是掩盖测验中的要害测验技能之一,现在已运用于程序掩盖率剖析、测验用例规划、程序调试、功用优化等多个方面,是掩盖程度最高的测验。其根本原理是用最少的测验用例,掩盖程序中的一切途径,发现程序中最多的过错,组织测验计划、分配测验资源,并对实践测验所到达的掩盖率做出点评。本文给出了途径掩盖相关理论,并在理论研讨的根底上规划出了一种嵌入式软件动态测验体系结构,完结对被测程序的途径掩盖率剖析,然后判别测验的充沛性及缺点,然后进一步改善测验进程。

1、 途径掩盖相关理论

途径掩盖使程序中每一条或许的途径至少履行一次。但在实践作业中,即便一个不太杂乱的程序,途径数量往往也是较多的。要在测验中掩盖一切的途径是不现实的,而根本途径测验便是一种简化途径数的测验办法。

根本途径测验是在操控流图的根底上,经过剖析操控结构的环形杂乱度,导出履行途径的根本集,再从该根本集规划测验用例。为了明晰描绘根本途径测验办法,需求对本文中用到的几个根本概念进行阐明。

(1)程序操控流图:是对程序流程图简化后得到的,它是一种有向图G=(N,E,Entry,Exit),其间N是流图的节点数,E是流图的边数。

(2)Z途径优化:是指约束循环的次数,不管循环的方式和循环体实践履行的次数,简化后的循环测验只考虑履行循环体一次和零次(不履行)两种状况。

(3)环形杂乱度:供给程序根本途径集的独立途径数量以及保证一切句子至少履行一次的测验数量的上界。能够经过下列两种办法来核算:对流图G,环形杂乱度V(G)=E-N+2;或V(G)=P+1,其间P为包括在流图G中的断定节点数。

(4)根本途径集BP:指软件可达途径的最小调集,等于环形杂乱度V(G)。

(5)途径掩盖率核算:由根本途径集BP规划测验用例集T,使T理论上按BP履行。然后剖析动态盯梢数据,结构实测途径集Pn。核算测验掩盖率PCP=(Pn/BP)×100%其间Pn=P(T1)P(T2)…P(Tn)。

2、 嵌入式软件动态测验结构

嵌入式软件动态测验结构如图1所示。它包括宿主机程序插桩及数据处理剖析和方针机数据处理两部分。

经过嵌入式软件完结途径掩盖测验的规划计划研讨

在嵌入式软件测验中,静态测验是根底,对被测软件进行代码规矩查看、静态结构剖析和代码质量点评;动态测验是必要弥补,在方针机实在环境下或仿真环境下运转被测程序,搜集动态盯梢数据,剖析其动态行为。

嵌入式软件途径掩盖测验的特色便是必须在穿插编译环境下,经过物理通道传输完好的动态测验盯梢数据,剖析数据后得到途径掩盖率。动态履行前先要查看方针机与宿主机的衔接状况,保证测验正常进行。

2.1 被测验程序静态剖析

静态剖析并不实在履行被测程序,也不需求对代码进行编译链接,生成可履行文件。首要,对源码进行词法语法剖析和变量剖析,找出不符合编码标准的当地,依据某种质量模型点评代码的质量,生成模块调用联系图、模块的程序流程图等。其次,从程序中提取必要的数据并保存,供给给后续的动态剖析和测验报告运用。最终,依据模块的程序流程图制作程序操控流图G,得到程序操控流图的边数E和节点数N,辅导插桩库的树立,并依据Z途径优化法结构程序的根本途径集BP,构建动态途径掩盖测验的比较根底。

2.2 插桩技能

一般来说,对程序进行动态测验的时分,根本上要运用程序插桩来进行掩盖测验。程序插桩技能是坚持被测软件逻辑完好性的根底上,在源代码中刺进探针函数,它是一个子进程调用,调用的子进程能在运转到插桩点时记载下有关的运转状况,搜集履行程序在实在环境中运转的操控流、数据流等测验数据。插桩时需保证探针函数对源程序履行影响最小。

根本途径测验依靠探针插桩技能完结分支方位点标志位的搜集。插桩方位最好挑选在运用程序层,要点搜集输入输出模块中的上层函数运转信息,底层模块加强单元测验,而在嵌入式软件模块集成时,默许这些模块是正确无误的。依据程序按块区分的准则,能够在子函数收支点、程序块操控流图G的分支节点、功用测验的要点变量处植入探针。

根本途径测验的插桩进程是静态的,数据搜集进程是动态的,结束时需康复现场。动态测验前,被测程序与插桩库衔接,完结插桩操作,获取履行程序。履行程序穿插编译后运转于方针实践环境或许仿真环境下,经过探针函数回来动态测验盯梢数据。

2.3 数据处理及剖析

方针机在实在环境中运转可履行程序,测验用例集T为运转输入参量,探针搜集数据为运转的输出参量。探针函数搜集动态盯梢测验数据,传输给宿主机测验渠道。宿主机测验渠道对接收到的动态盯梢数据进行处理,核算出途径测验掩盖率,并结合数据处理进程中的测验日志剖分出最终的测验报告。

3 、测验实例剖析

依据上述的嵌入式软件动态测验结构,模仿测验实验室现行项目208型海区终端的航标数据搜集模块。

在编译器MPLAB IDE 8.63中编写源代码,并对源代码进行规矩查看。图2为航标数据搜集模块的主控程序流程图,可将其简化为程序操控流图。

经过嵌入式软件完结途径掩盖测验的规划计划研讨

该航标数据搜集模块由C言语开发,依据插桩战略能够核算出插桩探针的方位、个数,结构根本途径和实践程序履行途径,核算途径测验掩盖率。部分测验成果剖析如表1所示。

经过嵌入式软件完结途径掩盖测验的规划计划研讨

根本途径测验掩盖率PCP:

根本途径测验掩盖率巨细涉及到测验的各个阶段,遭到各方面要素的影响。比方,在该测验模块中,Rx_Data_Svr()和AddataConvert()程序中呈现了多个判别句子和多个循环句子,或许的途径数目添加,致使影响途径掩盖率。

4 、结语

本文经过研讨嵌入式软件测验的特色和途径掩盖测验的相关理论,给出了嵌入式软件动态测验结构计划。并结合实验室现在的项目,剖析根本途径测验的各个过程,得出途径测验掩盖率,然后到达测验意图。可是途径掩盖测验受多方面要素的影响,尤其是当程序中呈现多个复合条件时,会大大的添加或许的途径数目,所以接下来的作业是进一步讨论插桩战略、测验用例生成等影响途径掩盖率的相关问题。

责任编辑:gt

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/96489.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部