最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

一种嵌入式软件的组合测试指标获取方案

IT圈 admin 27浏览 0评论

2024年10月6日发(作者:洛白竹)

总第271期 

2012年第5期 

计算机与数字工程 

Computer&Digital Engineering 

Vo1.40 No.5 

117 

种嵌入式软件的组合测试指标获取方案 

张荣曹小鹏孙家泽 

西安710061) (西安邮电学院计算机学院

摘要为了获取组合测试中适应值函数所需要覆盖率、测试运行代价等信息,设计实现了基于嵌入式软件源代码插桩的指标获取方 

案。该方案使用交叉开发环境,完成了对源代码语法、词法分析,插桩库和插桩策略的制定,目标机/宿主机通讯方式设计,获得了语句覆盖 

率、分支覆盖率、运行时间、被测程序程序复杂度等关键指标,并以图表的方式提供统计结果,为组合测试设计适应值函数,进行测试用例约 

减提供了依据。 

关键词嵌入式系统软件;插桩;覆盖率;组合测试 

TP391.9 中图分类号

A Method of Combinatorial Testing for Indicators Based on 

Embedded System Software 

ZHANG Rong CAO Xiaopeng SUN Jiaze 

(School of Computer Science and Technology,Xi’an University of Posts and Telecommunications,Xi’an 710061) 

Abstract In order to obtain coverage,test operation cost and other information needed by fitness function of combination test,the so- 

1ution is designed based on embedded system software source code instrumentation.This solution uses cross-development environment。com— 

plete source code syntax analysis and lexical analysis,create instrumentation library,generate instrumentation strategy,design communica— 

tion types between the target/host machine,get al1 sorts of indicators about statement coverage,branch coverage,running time,program 

complexity,give a diagram of the statistical results,provide the basis of reducing test case for fitness function designed by combination test. 

Key Words embedded system software,instrumentation,coverage rate,combinatorial testing 

Class Number TP391.9 

1 引言 

针对嵌人式系统软件测试,近年来学术界引入组合测 

试的方法,但随着迭代过程中测试用例的急剧膨胀l_1],必须 

对测试用例进行约简。在约简的过程中建立的适应值函数 

需要测试覆盖率、测试运行代价等信息来进行设计_2],获取 

的数学模型,对测试用例集的运行代价、错误检测能力、对 

需求的满足程度等多方面的性能进行综合考虑,建立的数 

学模型将更能反映约简后的测试用例集有效性和实用性, 

该数学模型往往是非连续的、多目标的、非线性的约束问 

题。 

随着软件开发过程中迭代、演化不断进行,回归测试会 

频繁进行,测试用例库迅速扩大,在测试用例库中,往往存 

在冗余的测试用例。由于测试用例的设计、执行、管理和维 

护的开销相当大,而测试资源往往有限,因此,有必要进行 

测试用例集约减。测试用例集约减的目的就是使用尽可能 

少的测试用例,充分满足给定的测试目标,从而提高测试效 

率、降低测试成本l4]。 

这些指标信息就是亟待解决的问题。本文所提出的方案采 

用目标机一宿主机的方式,以及软件插桩技术对嵌入式系统 

中智能算法生成的测试用例进行验证,获取测试用例结果 

和源代码中的关键信息,提供智能算法进行约简、迭代的依 

据。 

2组合测试技术 

组合测试是一种科学有效的软件测试方法,该方法旨 

在使用较少的测试用例有效地检测软件系统中各个因素以 

及之间的相互作用对系统产生的影响_3],通过大量的实践 

目前市场上使用组合测试方法的测试工具比较少,如 

AETG、Pro-Test SigmaZone GUI、ReduceArray2 STSC等, 

主要还处于原型系统的研究阶段,均需要从用户提供的有 

限的测试因子、测试范围,按照成对覆盖准则、三覆盖准则 

已经证明组合测试具有较高的错误检测能力。 

组合测试首先对软件的测试需求的内部关系进行挖 

等,将测试数据组合数减少,而不能直接应用于实际被测系 

统。同时,目前主流的嵌入式测试工具,种类众多,涵盖了 

掘,对需求集进行一定程度的缩减,然后再建立测试用例集 

测试的各个阶段,但均没有与组合测试技术结合,来对嵌入 

收稿日期:2011年n月5日,修回日期:2011年12月27日 

基金项目:国家自然科学基金项目(编号:61050003);西安市工业应用技术研发项目(编号:cxy09018);陕西省教育厅自然专项项目 

(编号:09JK715)资助。 

作者简介:张荣,男,硕士,讲师,研究方向:软件测试。曹小鹏,硕士,讲师,研究方向:GPU。孙家泽,讲师,硕士,研究方向:GPU。 

118 张荣等:一种嵌入式软件的组合测试指标获取方案 第40卷 

式软件进行测试。 

将组合测试技术应用于嵌入式系统,当迭代过程中产 

生的测试用例集膨胀,需要进行约减时,提供约减所需要的 

指标、数据正是本文提出的方案解决的问题。 

3方案的设计 

基于嵌入式系统软件的组合测试是由智能算法对测试 

用例集的生成、测试指标的获取和对测试用例集的约减三 

部分循环执行,直到达到期望指标而终止的过程,该过程如 

图1所示。本文提出的测试指标获取方案主要完成从对嵌 

入式软件源代码的预处理、插桩,对生成的测试用例建立单 

元测试验证程序,经过交叉编译下载到目标板运行,将产生 

的桩信息通过目标机/宿主机之间的通讯返回到宿主机上, 

进行数据分析,产生报表和适应值函数所需的信息。 

il

望竺堡.

::::

 

::

壅 I

: 

一奎差塑堡l

垂 疆:

 I叫壅里簟堡垦l

:::::::: 

 

劂  ll 

图1组合测试过程图 

3.1应用环境 

作为嵌入式系统应用,其应用软件的开发属于跨平台 

开发,因此,提供了一个交叉开发环境,在宿主机上编译好 

目标代码后,通过宿主机到目标机的调试通道将代码自动 

下载到目标机,然后由运行于宿主机的调试软件控制代码 

在目标机上进行调试l_5 。 

文中测试目标执行的硬件环境是基于ARM处理器的 

DevKit3250嵌入式系统,开发环境如图2所示,该开发版支 

持Linux和WinCE操作系统,本文环境采用WinCE系统。 

AUD10/MICl lUART1/2/3/5llUART4/7/8/9I l Rj45 l iDCJACK 

图2嵌入式开发环境 

3.2方案框架结构 

组合测试中测试用例集的约减需要被测软件的相关的 

指标,如测试用例集的正确率、语句覆盖率、分支覆盖率、被 

测软件的复杂度等,获取如上指标的方法采用源代码代码 

插桩技术。本文提出的方案由插桩库的生成、文件分析、源 

代码插桩、测试用例验证程序生成、数据分析、以及目标机 

与宿主机通讯等模块构成,结构图如图3所示。 

3.2.1插桩库模块 

插装库主要定义了桩函数的数据结构和桩函数的分 

类,对代码中不包含分支语句的连续语句块称为顺序块,定 

义了针对顺序块的起始桩函数、顺序块结束桩函数,分别记 

录下语句所在函数编号、桩编号、该顺序块的起始行号、结 

r ‘ 百 _ 

甲 军 I 由 

i 

甲l翠

匦 

 

圉 团 图l圜 

l语句

l覆盖率I

l 1分支

 l覆盖率l

l 

 

l正确性I

测试用例I l

 l 显示

代码覆盖l

 l函数

 I执行效率I

I i

 i

 

 

图3方案结构图 

束行号、本桩点执行过的次数等信息,对代码中分支语句范 

围内的语句段称为分支块(内部包含顺序块),针对分支块 

定义了分支结构桩函数,记录语句所在函数的编号、桩编 

号、以及各分支条件语句行号、定义分支编号、和该分支执 

行的次数等信息,上述三个桩函数在执行过程中记录的数 

据分别存入顺序信息和分支信息两个链表中,插桩库同时 

定义了数据记录桩函数,将这两个链表中的数据在源代码 

执行完成前写入到文件中。 

3.2.2源文件分析模块 

该模块首先对被测源代码进行语法分析、词法分析,将 

代码中的头文件和宏进行展开;为了便于后续的插桩操作 

时语句的定位,再将源代码内容进行格式化,格式化为标准 

的GNU或ANSI格式;随后对被测源代码以函数为单位, 

记录其基本信息,如函数名称、函数的起始行号、函数的结 

束行号、函数中包含的语句总数、条件总数,以及函数的复 

杂度等,如上信息结合插桩后采集到的实际执行数据,可计 

算出语句/分支覆盖率等指标。 

3.2.3插桩处理模块 

对预处理后经过格式化的源代码进行语法、词法分析, 

在相关位置插入桩函数_6],插桩函数在执行的过程中会建 

立两个链表,一个链表记录语句执行信息,用于统计语句覆 

盖率、语句是否执行,执行次数等情况,一个链表记录分支 

执行情况,用于统计分支覆盖率。插桩策略如下: 

1)顺序块前插入顺序起始桩,顺序块后插入顺序结束 

桩; 

2)顺序块内如果存在continue、break、return等语句, 

则在此语句前插入顺序结束桩; 

3)在do、while、for、switch、if、else等条件块内第一条 

语句前插入分支桩,由参数指明为真分支; 

4)源代码中若只有if语句没有else语句,则添加一个 

else语句,并在该else语句中插入分支桩,由参数指明为假 

分支; 

5)在do、for、while等无假分支的条件语句块外,插入 

分支桩,由参数指明为假分支; 

6)源代码中switch语句若无default语句,则添加de— 

fault语句,并在该default语句中插入分支桩,由参数指明 

分支编号; 

7)在表示函数结束的所有return语句前,插入一个数 

2012年第5期 计算机与数字工程 119 

据记录桩,把实时运行中采集到的所有结果记录到信息文 

试用例个数等指标作为适应值函数的依据¨】 ,由此再通过 

件中。 

3.2.4单元测试模块 

利用图1中测试用例生成模块生成的测试用例集及期 

望值,动态建立单元测试程序对插桩后的源代码进行测试。 

处理过程为首先通过C语言的文件包含命令,将插桩 

后的源文件包含到本测试文件中__7],再针对测试用例集中 

的每个测试用例建立函数调用,即执行插过桩的函数,并将 

其结果与期望值进行比对[8],最后完成交叉编译、连接、部 

署到目标机、在目标机运行一体化过程,整个过程均为自动 

执行,不需要人工干预。桩函数在执行的过程中会将采集 

到的原始数据信息记录到结果文件中,存于目标机上。 

3.2.5 目标机与宿主机通讯 

单元测试产生的结果数据保存在嵌入式系统中,为了 

能获取到该测试数据,需要目标机(即嵌入式系统)与宿主 

机(windows系统)进行通讯。本方案在宿主机和目标机上 

均设立一个监听器,当目标机生成测试数据后,则立即通过 

以太网口,采用Socket通讯机制将结果发往宿主机。 

3.2.6数据分析模块 

宿主机对接收到的原始的测试数据进行统计分析,主 

要完成以下的工作: 

1)语句、分支覆盖率 

原始的测试数据中包含各个阶段生成的信息记录,由 

此可以计算出各个函数、各个测试用例的语句覆盖率和分 

支覆盖率。 

语句覆盖率SC(Statement Coverage),如式(1)所示: 

k 

SC一(>:S )/n×100 (1) 

其中k为语句覆盖信息中函数执行测试用例的语句块个 

数,S 为每个块中记录的开始行号到结束行号之间的行数 

(即已执行的行数), 为该函数语句总数。 

分支覆盖率BC(Branch oCverage),如式(2)所示: 

BC=b/nX 100 (2) 

其中b为分支覆盖信息中,函数执行测试用例过程中实际 

经历的分支数,m为该函数分支总数,得出语句覆盖率BC。 

2)单元测试结果 

包含各函数、各测试用例执行结果是否与其期望值匹 

配,以及整个测试用例集总体执行结果。 

3)源代码复杂度 

分析源代码,获取的各个函数复杂度。 

4)语句覆盖信息图形化显示 

通过记录的覆盖信息,获取各条语句、各个分支是否执 

行,以绿色表示该语句已执行,红色表示未执行,黄色表示 

该语句为判定语句,同时对语句的执行次数予以统计显示, 

便于分析语句覆盖和执行情况,给手动干预适应值函数的 

设计和调整提供了直观的数据支持。 

3.3测试结果 

桩数据以文件的形式记录,本方案对测试结果提供分 

析工具,获取被测程序的复杂度,以及各函数针对每个测试 

用例的执行情况,如行覆盖率、分支覆盖率、测试用例的正 

确性,以及统计测试用例集整体的覆盖信息等¨9],供图1中 

第三步测试用例约减模块使用,其根据覆盖率的大小和测 

智能算法产生下一批测试用例,反复进行,直到满足终止条 

件得到最优用例集。 

宿主机和目标机对测试结果分别以图表的形式提供, 

鉴于嵌人式系统分辨率和屏幕尺寸的不足,仅以简单的表 

格形式提供,而宿主机提供较为全面的分析结果,采用业界 

通用的方法对源代码覆盖情况以不同的背景色予以强化显 

示,并将每条语句的执行次数予以标注。 

4结语 

文中详细地介绍了基于组合测试技术,针对嵌入式系 

统软件的指标数据获取的设计与实现方案,并成功的完成 

了测试工具的开发。通过大量的例子可以表明,该工具能 

够正确的分析统计出测试用例的语句覆盖率、分支覆盖率、 

执行时间、复杂度和测试用例正确性等适应值函数需要的 

信息,对测试用例集的约减提供了重要的数据依据。 

参考文献 

[1]严俊,张健.组合测试:原理与方法[J].软件学报,2009,20(6): 

1393—1405. 

YAN Jun,ZHANG Jiang.Combinatorial testing:Principles and 

methods[J].Journal of Software,2009,20(6):1393—1405. 

E23曹小鹏,孙家泽.嵌入式软件测试平台数据采集器的研究与设 

计[J].微电子学与计算机,2010,1(27):161—164. 

CAO Xiaopeng,SUN Jiaze.The Data Acquisition of Embedded 

software Testing Platforrn Research and Design[J].MicroElec— 

tronics&Computer,2010,1(27):161—164. 

[3]王子元,徐宝文,聂长海.组合测试用例生成技术口].计算机科 

学与探索,2008,2(6):571—589. 

WANG Ziyuan,XU Baowen,NIE Changhai.Survey of combi— 

natorial test generation[J].Journal of Frontiers of Computer 

Science and Technology,2008,2(6):571—588. 

[41章晓芳,陈林,徐宝文,等.测试用例集约简问题研究及其进展 

[J].计算机科学与探索,2008,2(3):235—248. 

ZHANG Xiaofang,CHEN Lin,XU Baowen,et a1.Survey of 

test suite reduction problem[J].Journal of Frontiers of Com— 

purer Science and Technology,2008,2(3):235—248. 

[5]范琳,王忠民,王海.基于嵌入式系统模拟器的测试平台构架 

[J].微计算机信息,2010,26(2):61—63. 

FAN Lin,WANG Zhongmin,WANG Ha1.Embedded System 

Testing Environment Frame based on Simulator[J].Control& 

Automation,2010,26(2):61-63. 

[61孙红利,王忠民,王文浪.嵌入式软件语句覆盖率测试插桩技术 

_J].计算机应用,2010,30(10):2738—2740. 

SUN Hongli,WANG Zhongmin,WANG Wenlang.Instrumen— 

tation technology for embedded software statement coverage 

testing[J].Journal of Computer Applications,2010,30(10): 

2738—2740. 

[7]李跃飞,郭君红,白成刚,等.飞行控制软件测试中的插桩技术 

[J].北京航空航天大学学报,2010,36(4):20—21. 

LI Yuefei,GUO Junhong,BAI Chenggang,et a1.Instrumenta— 

tion in flight-control software testing[J].Journal of Beijing U— 

niversity of Aeronautics and Astronautics。2010,36(4):20—21. 

120 张荣等:一种嵌入式软件的组合测试指标获取方案 第4O卷 

(上接第43页) 

将看不见、摸不着的电磁环境准确、直观、逼真地显示出来, 

实现了感知与仿真的统一。 

国防工业出版社,2007:277—279. 

LIU Zhong,ZHANG Xiushan,YAN Laibin,et a1.Base of Mod— 

ern Military Simulation Technology[M].Beijing:National De— 

fense Industry Press,2007:277—279. 

参考文献 

[7]杨丽,李光耀.城市仿真建模工具一Creator软件教程[M].上海: 

同济大学出版社,2007:172—174. 

YANG Li,LI Guangyao.Software Tutorial of City Simulation 

[1]刘兴堂,梁炳成,刘力,等.复杂系统建模理论、方法与技术 

[M].北京:科学出版社,2O08:10—13. 

LIU Xingtang,LIANG Bingcheng,LIU Li,et a1.The Theory, 

Modeling Tools—Creator[M].Shanghai:Tongji University 

Press,2007:172-174. 

Method 8L Technique For Complex System Modeling[M].Bei— 

jing:Science Press,2008:10—13. 

[8]汪连栋,张德锋,聂孝亮,等.电子战视景仿真技术与应用[M]. 

北京:国防工业出版社,2007:76—78. 

WANG Liandong,ZHANG Defeng,NIE Xiaoliang。et a1.Tech— 

[2]方程,刘晓静,屈林.基于GIS的战场电磁环境可视化研究[J]. 

指挥控制与仿真,2008,30(1):93—97. 

FANG Cheng,LIU Xiaojing,QU Lin Research on the Visual— 

nology and Application for EW Scene Simulation[M].Beijing: 

National Defense Industry Press,2007:76—78. 

ization Electromagnetic Environment Based on GIS[J].Com— 

mand Control&Simulation,2008,30(1):93—97. 

[9]李婧娇,张友益.基于Vega的多功能电子战系统作战效能视景 

仿真技术口].舰船电子对抗,2010,33(2):9-14. 

LI Jingjiao,ZHANG Youyi.Visual Simulation Technology of 

Operational Effectiveness of The Muhifunctional EW System 

[3]杨小牛,楼才义,徐建良.软件无线电技术与应用[M].北京:北 

京理工大学出版社,2010:115—118. 

YANG Xiaoniu,LOU Caiyi,XU Jianliang.Technology and Ap— 

ased on Vega[J].ShiBpboard Electronic Countermeasure, 

2010,33(2):9-14. 

plication of Software Radio[M].Beijing:Beijing Institute of 

Technology press,2010:115—118. 

[1O]龚昌明,陈琪.海战场电磁环境可视化系统设计与研究[J].舰 

船电子工程,2009,29(5). 

GONG Changming,CHEN Qi.Design and Investigation into 

Visualization System for Sea-battlefield Electromagnetic Envi— 

[4]何明浩.雷达对抗信息处理[M].北京:清华大学出版社,2010: 

3-12. 

HE Minghao.Radar Countermeasures Information Processing 

[M].Beijing:Tsinghua University Press,2010:3-12. 

[5]贾连兴.仿真技术与软件[M].北京:国防工业出版社,2007:23— 

25. 

ronment[J].Ship Electronic Engineering,2009,29(5). 

[11]杨丽,李光耀.城市仿真应用工具一Vega软件教程[M].上海: 

同济大学出版社,2007:170—172. 

YANG Li。LI Guangyao.Software Tutorial of City Simulation 

JIA Lianxing.Simulation Technology&Software[M].Beijing: 

National Defense Industry Press,2007:23—25. 

Application Tools Vega[M].Shanhai:Tongji University 

Press,2007:17O一172. 

[6]刘忠,张秀山,鄢来斌,等.现代军用仿真技术基础[M].北京: 

2024年10月6日发(作者:洛白竹)

总第271期 

2012年第5期 

计算机与数字工程 

Computer&Digital Engineering 

Vo1.40 No.5 

117 

种嵌入式软件的组合测试指标获取方案 

张荣曹小鹏孙家泽 

西安710061) (西安邮电学院计算机学院

摘要为了获取组合测试中适应值函数所需要覆盖率、测试运行代价等信息,设计实现了基于嵌入式软件源代码插桩的指标获取方 

案。该方案使用交叉开发环境,完成了对源代码语法、词法分析,插桩库和插桩策略的制定,目标机/宿主机通讯方式设计,获得了语句覆盖 

率、分支覆盖率、运行时间、被测程序程序复杂度等关键指标,并以图表的方式提供统计结果,为组合测试设计适应值函数,进行测试用例约 

减提供了依据。 

关键词嵌入式系统软件;插桩;覆盖率;组合测试 

TP391.9 中图分类号

A Method of Combinatorial Testing for Indicators Based on 

Embedded System Software 

ZHANG Rong CAO Xiaopeng SUN Jiaze 

(School of Computer Science and Technology,Xi’an University of Posts and Telecommunications,Xi’an 710061) 

Abstract In order to obtain coverage,test operation cost and other information needed by fitness function of combination test,the so- 

1ution is designed based on embedded system software source code instrumentation.This solution uses cross-development environment。com— 

plete source code syntax analysis and lexical analysis,create instrumentation library,generate instrumentation strategy,design communica— 

tion types between the target/host machine,get al1 sorts of indicators about statement coverage,branch coverage,running time,program 

complexity,give a diagram of the statistical results,provide the basis of reducing test case for fitness function designed by combination test. 

Key Words embedded system software,instrumentation,coverage rate,combinatorial testing 

Class Number TP391.9 

1 引言 

针对嵌人式系统软件测试,近年来学术界引入组合测 

试的方法,但随着迭代过程中测试用例的急剧膨胀l_1],必须 

对测试用例进行约简。在约简的过程中建立的适应值函数 

需要测试覆盖率、测试运行代价等信息来进行设计_2],获取 

的数学模型,对测试用例集的运行代价、错误检测能力、对 

需求的满足程度等多方面的性能进行综合考虑,建立的数 

学模型将更能反映约简后的测试用例集有效性和实用性, 

该数学模型往往是非连续的、多目标的、非线性的约束问 

题。 

随着软件开发过程中迭代、演化不断进行,回归测试会 

频繁进行,测试用例库迅速扩大,在测试用例库中,往往存 

在冗余的测试用例。由于测试用例的设计、执行、管理和维 

护的开销相当大,而测试资源往往有限,因此,有必要进行 

测试用例集约减。测试用例集约减的目的就是使用尽可能 

少的测试用例,充分满足给定的测试目标,从而提高测试效 

率、降低测试成本l4]。 

这些指标信息就是亟待解决的问题。本文所提出的方案采 

用目标机一宿主机的方式,以及软件插桩技术对嵌入式系统 

中智能算法生成的测试用例进行验证,获取测试用例结果 

和源代码中的关键信息,提供智能算法进行约简、迭代的依 

据。 

2组合测试技术 

组合测试是一种科学有效的软件测试方法,该方法旨 

在使用较少的测试用例有效地检测软件系统中各个因素以 

及之间的相互作用对系统产生的影响_3],通过大量的实践 

目前市场上使用组合测试方法的测试工具比较少,如 

AETG、Pro-Test SigmaZone GUI、ReduceArray2 STSC等, 

主要还处于原型系统的研究阶段,均需要从用户提供的有 

限的测试因子、测试范围,按照成对覆盖准则、三覆盖准则 

已经证明组合测试具有较高的错误检测能力。 

组合测试首先对软件的测试需求的内部关系进行挖 

等,将测试数据组合数减少,而不能直接应用于实际被测系 

统。同时,目前主流的嵌入式测试工具,种类众多,涵盖了 

掘,对需求集进行一定程度的缩减,然后再建立测试用例集 

测试的各个阶段,但均没有与组合测试技术结合,来对嵌入 

收稿日期:2011年n月5日,修回日期:2011年12月27日 

基金项目:国家自然科学基金项目(编号:61050003);西安市工业应用技术研发项目(编号:cxy09018);陕西省教育厅自然专项项目 

(编号:09JK715)资助。 

作者简介:张荣,男,硕士,讲师,研究方向:软件测试。曹小鹏,硕士,讲师,研究方向:GPU。孙家泽,讲师,硕士,研究方向:GPU。 

118 张荣等:一种嵌入式软件的组合测试指标获取方案 第40卷 

式软件进行测试。 

将组合测试技术应用于嵌入式系统,当迭代过程中产 

生的测试用例集膨胀,需要进行约减时,提供约减所需要的 

指标、数据正是本文提出的方案解决的问题。 

3方案的设计 

基于嵌入式系统软件的组合测试是由智能算法对测试 

用例集的生成、测试指标的获取和对测试用例集的约减三 

部分循环执行,直到达到期望指标而终止的过程,该过程如 

图1所示。本文提出的测试指标获取方案主要完成从对嵌 

入式软件源代码的预处理、插桩,对生成的测试用例建立单 

元测试验证程序,经过交叉编译下载到目标板运行,将产生 

的桩信息通过目标机/宿主机之间的通讯返回到宿主机上, 

进行数据分析,产生报表和适应值函数所需的信息。 

il

望竺堡.

::::

 

::

壅 I

: 

一奎差塑堡l

垂 疆:

 I叫壅里簟堡垦l

:::::::: 

 

劂  ll 

图1组合测试过程图 

3.1应用环境 

作为嵌入式系统应用,其应用软件的开发属于跨平台 

开发,因此,提供了一个交叉开发环境,在宿主机上编译好 

目标代码后,通过宿主机到目标机的调试通道将代码自动 

下载到目标机,然后由运行于宿主机的调试软件控制代码 

在目标机上进行调试l_5 。 

文中测试目标执行的硬件环境是基于ARM处理器的 

DevKit3250嵌入式系统,开发环境如图2所示,该开发版支 

持Linux和WinCE操作系统,本文环境采用WinCE系统。 

AUD10/MICl lUART1/2/3/5llUART4/7/8/9I l Rj45 l iDCJACK 

图2嵌入式开发环境 

3.2方案框架结构 

组合测试中测试用例集的约减需要被测软件的相关的 

指标,如测试用例集的正确率、语句覆盖率、分支覆盖率、被 

测软件的复杂度等,获取如上指标的方法采用源代码代码 

插桩技术。本文提出的方案由插桩库的生成、文件分析、源 

代码插桩、测试用例验证程序生成、数据分析、以及目标机 

与宿主机通讯等模块构成,结构图如图3所示。 

3.2.1插桩库模块 

插装库主要定义了桩函数的数据结构和桩函数的分 

类,对代码中不包含分支语句的连续语句块称为顺序块,定 

义了针对顺序块的起始桩函数、顺序块结束桩函数,分别记 

录下语句所在函数编号、桩编号、该顺序块的起始行号、结 

r ‘ 百 _ 

甲 军 I 由 

i 

甲l翠

匦 

 

圉 团 图l圜 

l语句

l覆盖率I

l 1分支

 l覆盖率l

l 

 

l正确性I

测试用例I l

 l 显示

代码覆盖l

 l函数

 I执行效率I

I i

 i

 

 

图3方案结构图 

束行号、本桩点执行过的次数等信息,对代码中分支语句范 

围内的语句段称为分支块(内部包含顺序块),针对分支块 

定义了分支结构桩函数,记录语句所在函数的编号、桩编 

号、以及各分支条件语句行号、定义分支编号、和该分支执 

行的次数等信息,上述三个桩函数在执行过程中记录的数 

据分别存入顺序信息和分支信息两个链表中,插桩库同时 

定义了数据记录桩函数,将这两个链表中的数据在源代码 

执行完成前写入到文件中。 

3.2.2源文件分析模块 

该模块首先对被测源代码进行语法分析、词法分析,将 

代码中的头文件和宏进行展开;为了便于后续的插桩操作 

时语句的定位,再将源代码内容进行格式化,格式化为标准 

的GNU或ANSI格式;随后对被测源代码以函数为单位, 

记录其基本信息,如函数名称、函数的起始行号、函数的结 

束行号、函数中包含的语句总数、条件总数,以及函数的复 

杂度等,如上信息结合插桩后采集到的实际执行数据,可计 

算出语句/分支覆盖率等指标。 

3.2.3插桩处理模块 

对预处理后经过格式化的源代码进行语法、词法分析, 

在相关位置插入桩函数_6],插桩函数在执行的过程中会建 

立两个链表,一个链表记录语句执行信息,用于统计语句覆 

盖率、语句是否执行,执行次数等情况,一个链表记录分支 

执行情况,用于统计分支覆盖率。插桩策略如下: 

1)顺序块前插入顺序起始桩,顺序块后插入顺序结束 

桩; 

2)顺序块内如果存在continue、break、return等语句, 

则在此语句前插入顺序结束桩; 

3)在do、while、for、switch、if、else等条件块内第一条 

语句前插入分支桩,由参数指明为真分支; 

4)源代码中若只有if语句没有else语句,则添加一个 

else语句,并在该else语句中插入分支桩,由参数指明为假 

分支; 

5)在do、for、while等无假分支的条件语句块外,插入 

分支桩,由参数指明为假分支; 

6)源代码中switch语句若无default语句,则添加de— 

fault语句,并在该default语句中插入分支桩,由参数指明 

分支编号; 

7)在表示函数结束的所有return语句前,插入一个数 

2012年第5期 计算机与数字工程 119 

据记录桩,把实时运行中采集到的所有结果记录到信息文 

试用例个数等指标作为适应值函数的依据¨】 ,由此再通过 

件中。 

3.2.4单元测试模块 

利用图1中测试用例生成模块生成的测试用例集及期 

望值,动态建立单元测试程序对插桩后的源代码进行测试。 

处理过程为首先通过C语言的文件包含命令,将插桩 

后的源文件包含到本测试文件中__7],再针对测试用例集中 

的每个测试用例建立函数调用,即执行插过桩的函数,并将 

其结果与期望值进行比对[8],最后完成交叉编译、连接、部 

署到目标机、在目标机运行一体化过程,整个过程均为自动 

执行,不需要人工干预。桩函数在执行的过程中会将采集 

到的原始数据信息记录到结果文件中,存于目标机上。 

3.2.5 目标机与宿主机通讯 

单元测试产生的结果数据保存在嵌入式系统中,为了 

能获取到该测试数据,需要目标机(即嵌入式系统)与宿主 

机(windows系统)进行通讯。本方案在宿主机和目标机上 

均设立一个监听器,当目标机生成测试数据后,则立即通过 

以太网口,采用Socket通讯机制将结果发往宿主机。 

3.2.6数据分析模块 

宿主机对接收到的原始的测试数据进行统计分析,主 

要完成以下的工作: 

1)语句、分支覆盖率 

原始的测试数据中包含各个阶段生成的信息记录,由 

此可以计算出各个函数、各个测试用例的语句覆盖率和分 

支覆盖率。 

语句覆盖率SC(Statement Coverage),如式(1)所示: 

k 

SC一(>:S )/n×100 (1) 

其中k为语句覆盖信息中函数执行测试用例的语句块个 

数,S 为每个块中记录的开始行号到结束行号之间的行数 

(即已执行的行数), 为该函数语句总数。 

分支覆盖率BC(Branch oCverage),如式(2)所示: 

BC=b/nX 100 (2) 

其中b为分支覆盖信息中,函数执行测试用例过程中实际 

经历的分支数,m为该函数分支总数,得出语句覆盖率BC。 

2)单元测试结果 

包含各函数、各测试用例执行结果是否与其期望值匹 

配,以及整个测试用例集总体执行结果。 

3)源代码复杂度 

分析源代码,获取的各个函数复杂度。 

4)语句覆盖信息图形化显示 

通过记录的覆盖信息,获取各条语句、各个分支是否执 

行,以绿色表示该语句已执行,红色表示未执行,黄色表示 

该语句为判定语句,同时对语句的执行次数予以统计显示, 

便于分析语句覆盖和执行情况,给手动干预适应值函数的 

设计和调整提供了直观的数据支持。 

3.3测试结果 

桩数据以文件的形式记录,本方案对测试结果提供分 

析工具,获取被测程序的复杂度,以及各函数针对每个测试 

用例的执行情况,如行覆盖率、分支覆盖率、测试用例的正 

确性,以及统计测试用例集整体的覆盖信息等¨9],供图1中 

第三步测试用例约减模块使用,其根据覆盖率的大小和测 

智能算法产生下一批测试用例,反复进行,直到满足终止条 

件得到最优用例集。 

宿主机和目标机对测试结果分别以图表的形式提供, 

鉴于嵌人式系统分辨率和屏幕尺寸的不足,仅以简单的表 

格形式提供,而宿主机提供较为全面的分析结果,采用业界 

通用的方法对源代码覆盖情况以不同的背景色予以强化显 

示,并将每条语句的执行次数予以标注。 

4结语 

文中详细地介绍了基于组合测试技术,针对嵌入式系 

统软件的指标数据获取的设计与实现方案,并成功的完成 

了测试工具的开发。通过大量的例子可以表明,该工具能 

够正确的分析统计出测试用例的语句覆盖率、分支覆盖率、 

执行时间、复杂度和测试用例正确性等适应值函数需要的 

信息,对测试用例集的约减提供了重要的数据依据。 

参考文献 

[1]严俊,张健.组合测试:原理与方法[J].软件学报,2009,20(6): 

1393—1405. 

YAN Jun,ZHANG Jiang.Combinatorial testing:Principles and 

methods[J].Journal of Software,2009,20(6):1393—1405. 

E23曹小鹏,孙家泽.嵌入式软件测试平台数据采集器的研究与设 

计[J].微电子学与计算机,2010,1(27):161—164. 

CAO Xiaopeng,SUN Jiaze.The Data Acquisition of Embedded 

software Testing Platforrn Research and Design[J].MicroElec— 

tronics&Computer,2010,1(27):161—164. 

[3]王子元,徐宝文,聂长海.组合测试用例生成技术口].计算机科 

学与探索,2008,2(6):571—589. 

WANG Ziyuan,XU Baowen,NIE Changhai.Survey of combi— 

natorial test generation[J].Journal of Frontiers of Computer 

Science and Technology,2008,2(6):571—588. 

[41章晓芳,陈林,徐宝文,等.测试用例集约简问题研究及其进展 

[J].计算机科学与探索,2008,2(3):235—248. 

ZHANG Xiaofang,CHEN Lin,XU Baowen,et a1.Survey of 

test suite reduction problem[J].Journal of Frontiers of Com— 

purer Science and Technology,2008,2(3):235—248. 

[5]范琳,王忠民,王海.基于嵌入式系统模拟器的测试平台构架 

[J].微计算机信息,2010,26(2):61—63. 

FAN Lin,WANG Zhongmin,WANG Ha1.Embedded System 

Testing Environment Frame based on Simulator[J].Control& 

Automation,2010,26(2):61-63. 

[61孙红利,王忠民,王文浪.嵌入式软件语句覆盖率测试插桩技术 

_J].计算机应用,2010,30(10):2738—2740. 

SUN Hongli,WANG Zhongmin,WANG Wenlang.Instrumen— 

tation technology for embedded software statement coverage 

testing[J].Journal of Computer Applications,2010,30(10): 

2738—2740. 

[7]李跃飞,郭君红,白成刚,等.飞行控制软件测试中的插桩技术 

[J].北京航空航天大学学报,2010,36(4):20—21. 

LI Yuefei,GUO Junhong,BAI Chenggang,et a1.Instrumenta— 

tion in flight-control software testing[J].Journal of Beijing U— 

niversity of Aeronautics and Astronautics。2010,36(4):20—21. 

120 张荣等:一种嵌入式软件的组合测试指标获取方案 第4O卷 

(上接第43页) 

将看不见、摸不着的电磁环境准确、直观、逼真地显示出来, 

实现了感知与仿真的统一。 

国防工业出版社,2007:277—279. 

LIU Zhong,ZHANG Xiushan,YAN Laibin,et a1.Base of Mod— 

ern Military Simulation Technology[M].Beijing:National De— 

fense Industry Press,2007:277—279. 

参考文献 

[7]杨丽,李光耀.城市仿真建模工具一Creator软件教程[M].上海: 

同济大学出版社,2007:172—174. 

YANG Li,LI Guangyao.Software Tutorial of City Simulation 

[1]刘兴堂,梁炳成,刘力,等.复杂系统建模理论、方法与技术 

[M].北京:科学出版社,2O08:10—13. 

LIU Xingtang,LIANG Bingcheng,LIU Li,et a1.The Theory, 

Modeling Tools—Creator[M].Shanghai:Tongji University 

Press,2007:172-174. 

Method 8L Technique For Complex System Modeling[M].Bei— 

jing:Science Press,2008:10—13. 

[8]汪连栋,张德锋,聂孝亮,等.电子战视景仿真技术与应用[M]. 

北京:国防工业出版社,2007:76—78. 

WANG Liandong,ZHANG Defeng,NIE Xiaoliang。et a1.Tech— 

[2]方程,刘晓静,屈林.基于GIS的战场电磁环境可视化研究[J]. 

指挥控制与仿真,2008,30(1):93—97. 

FANG Cheng,LIU Xiaojing,QU Lin Research on the Visual— 

nology and Application for EW Scene Simulation[M].Beijing: 

National Defense Industry Press,2007:76—78. 

ization Electromagnetic Environment Based on GIS[J].Com— 

mand Control&Simulation,2008,30(1):93—97. 

[9]李婧娇,张友益.基于Vega的多功能电子战系统作战效能视景 

仿真技术口].舰船电子对抗,2010,33(2):9-14. 

LI Jingjiao,ZHANG Youyi.Visual Simulation Technology of 

Operational Effectiveness of The Muhifunctional EW System 

[3]杨小牛,楼才义,徐建良.软件无线电技术与应用[M].北京:北 

京理工大学出版社,2010:115—118. 

YANG Xiaoniu,LOU Caiyi,XU Jianliang.Technology and Ap— 

ased on Vega[J].ShiBpboard Electronic Countermeasure, 

2010,33(2):9-14. 

plication of Software Radio[M].Beijing:Beijing Institute of 

Technology press,2010:115—118. 

[1O]龚昌明,陈琪.海战场电磁环境可视化系统设计与研究[J].舰 

船电子工程,2009,29(5). 

GONG Changming,CHEN Qi.Design and Investigation into 

Visualization System for Sea-battlefield Electromagnetic Envi— 

[4]何明浩.雷达对抗信息处理[M].北京:清华大学出版社,2010: 

3-12. 

HE Minghao.Radar Countermeasures Information Processing 

[M].Beijing:Tsinghua University Press,2010:3-12. 

[5]贾连兴.仿真技术与软件[M].北京:国防工业出版社,2007:23— 

25. 

ronment[J].Ship Electronic Engineering,2009,29(5). 

[11]杨丽,李光耀.城市仿真应用工具一Vega软件教程[M].上海: 

同济大学出版社,2007:170—172. 

YANG Li。LI Guangyao.Software Tutorial of City Simulation 

JIA Lianxing.Simulation Technology&Software[M].Beijing: 

National Defense Industry Press,2007:23—25. 

Application Tools Vega[M].Shanhai:Tongji University 

Press,2007:17O一172. 

[6]刘忠,张秀山,鄢来斌,等.现代军用仿真技术基础[M].北京: 

发布评论

评论列表 (0)

  1. 暂无评论