欢迎您访问起点作文网,请分享给你的朋友!

当前位置 : 首页 > 范文大全 > 实用范文

单元测试(6篇)

来源: 时间:2025-06-15 手机浏览

单元测试篇1

1.某人射击1次,命中7~10环的概率如下表所示:

则该人射击一次,至少命中9环的概率为.

2.某校高一、高二、高三学生共有3200名,其中高三800名,如果通过分层抽样的方法从全体学生中抽取一个160人的样本,那么应当从高三的学生抽取的人数是_____________.

3.化简:C22+C23+C24+…+C210=_____________(可用组合数表示).

4.(1-x3)(1+x)10的展开式中,x5的系数是(用数字作答).

5.已知某人5次上班途中所花的时间(单位:分钟)分别为x,8,9,10,11,这组数据的平均数为10,则其方差为_____________.

6.某班级共有学生54人,现根据学生的学号,用系统抽样的方法,抽取一个容量为4的样本.已知2号,28号,41号同学在样本中,那么还有一个同学的学号是_____________.

7.阅读下面的伪代码:

S0

i1

Whilei

ii+1

SS+i

Endwhile

PrintS

上述伪代码的输出值为_____________.

8.箱中有号码分别为1,2,3,4,5的五张卡片,从中一次随机抽取两张,则两张号码之和为3的倍数的概率为_____________.

9.已知AB是圆O的一条直径,在AB上任取一点H,过H作弦CD与AB垂直,则弦CD的长度大于半径的概率是_____________.

10.一射手对同一目标独立地进行4次射击,已知至少命中一次的概率为8081,则此射手的命中率是_____________.

11.市内某公共汽车站有10个候车位(成一排),现有4名乘客随便坐在某个座位上候车,则恰好有5个连续空座位的候车方式共有_____________种.(用数字作答)

12.某城市的交通道路如图,从城市的东南角A到城市的西北角B,不经过十字道路维修处C,最近的走法种数有_____________(用数字作答).

13.设一辆汽车在前进途中要经过4个路口,汽车在每个路口遇到绿灯(允许通行)的概率为34,遇到红灯(禁止通行)的概率为14.假定汽车只在遇到红灯或到达目的地才停止前进,随机变量ξ表示第一次停车时已经通过的路口数,则P(ξ=3)=_____________.

14.已知C1006n=C1007n,(2x-3)n=a0+a1(x-1)+a2(x-1)2+…+an(x-1)n,x∈R,则a12+a222+a323+…+an2n的值为_____________.

二、解答题:本大题共6小题,共计90分

15.(本题满分14分)

从标号为A、B、C、D四个相同的小球中任取两个分别放到甲、乙两个盒子中,若每个小球被取到是等可能的,求:

(1)共有多少种放法?

(2)D球恰好放在甲盒中的概率是多少?

(3)A、B两球同时被放到两个盒中的概率是多少?

16.(本题满分14分)

在参加世界杯足球赛的三十二支球队中,随机抽取20名队员,调查其年龄分别为:25,21,23,25,27,29,25,28,30,29,26,24,25,27,26,22,24,25,26,28.

①完成下面的频率布表;

②画出频率分布直方图;

③据此估计全体队员在哪个年龄段的人数最多,占总数的百分之几?

17.(本题满分15分)

甲、乙、丙三个同学一起参加某高校组织的自主招生考试,考试分笔试和面试两部分,笔试和面试均合格者将成为该高校的预录取生(可在高考中加分录取),两次考试过程相互独立.根据甲、乙、丙三个同学的平时成绩分析,甲、乙、丙三个同学能通过笔试的概率分别是0.6,0.5,0.4,能通过面试的概率分别是0.5,0.6,0.75.

(1)求甲、乙、丙三个同学中恰有一人通过笔试的概率;

(2)设经过两次考试后,能被该高校预录取的人数为ξ,求随机变量ξ的期望E(ξ).

18.(本题满分15分)

现有5名男生、2名女生站成一排照相,

(1)两女生要在两端,有多少种不同的站法?

(2)两名女生不相邻,有多少种不同的站法?

(3)女生甲要在女生乙的右方(可以不相邻),有多少种不同的站法?

(4)女生甲不在左端,女生乙不在右端,有多少种不同的站法?

19.(本题满分16分)

某公园准备建一个摩天轮,摩天轮的是一个周长为k米的圆.在这个圆上安装座位,且每个座位和圆心处的支点都有一根直的钢管相连.经预算,摩天轮上的每个座位与支点相连的钢管的费用为8k元/根,且当两相邻的座位之间的圆弧长为x米时,相邻两座位之间的钢管和其中一个座位的总费用为[(1024x+20)x100+2]k元.假设座位等距离分布,且至少有两个座位,所有座位都视为点,且不考虑其他因素,记摩天轮的总造价为y元.

(1)试写出y关于x的函数关系式,并写出定义域;

(2)当k=100米时,试确定座位的个数,使得总造价最低.

20.(本题满分16分)

规定Cmx=xx-1…x-m+1m!,其中x∈R,m是正整数,且C0x=1,

这是组合数Cmn(n,m是正整数,且m≤n)的一种推广.

(1)求C5-15的值;

(2)组合数的两个性质:①Cmn=Cn-mn;②Cmn+Cm+1n=Cmn+1是否都能推广到Cmx(x∈R),

m是正整数的情形?若能推广,则写出推广的形式并给出证明;若不能,则说明理由;

(3)已知组合数Cmn是正整数,证明:当x∈Z,m是正整数时,Cmx∈Z.

参考答案

一、填空题:

1.0.3;2.40;3.C311(165)4.207;5.2;6.15;7.5049;8.25;9.32;10.2311.480;12.66;13.27256;14.1

二、解答题:

15.(1)共有12种.

(2)D球放到甲盒中包含3个基本事件,概率为3/12=1/4

(3)A、B两球放到盒中包含2个基本事件,概率为2/12=1/6

16.(1)

(3)在(24.5,26.5)内人数最多,占总数40%.

17.解:(1)分别记甲、乙、丙三个同学笔试合格为事件A1、A2、A3;

E表示事件“恰有一人通过笔试”

则P(E)=P(A1A2A3)+P(A1A2A3)+P(A1A2A3)

=0.6×0.5×0.6+0.4×0.5×0.6+0.4×0.5×0.4

=0.38

(2)解法一:因为甲、乙、丙三个同学经过两次考试后合格的概率均为p=0.3,

所以ξ~B(3,0.3),故E(ξ)=np=3×0.3=0.9.

解法二:分别记甲、乙、丙三个同学经过两次考试后合格为事件A,B,C,

则P(A)=P(B)=P(C)=0.3

所以P(ξ=1)=3×(1-0.3)2×0.3=0.441,

P(ξ=2)=3×0.32×0.7=0.189,P(ξ=3)=0.33=0.027.

于是,E(ξ)=1×0.441+2×0.189+3×0.027=0.9.

18.解:(1)两端的两个位置,女生任意排,中间的五个位置男生任意排,

A22·A55=240(种);

(2)把男生任意全排列,然后在六个空中(包括两端)有顺序地插入两名女生;

A55·A26=3600(种);

(3)七个位置中任选五个排男生问题就已解决,因为留下两个位置女生排法是既定的;

A57=2520(种);

(4)采用去杂法,在七个人的全排列中,去掉女生甲在左端的A66个,再去掉女生乙在右端的A66个,但女生甲在左端同时女生乙在右端的A55种排除了两次,要找回来一次.

A77-2A66+A55=3720(种).

19.(1)设摩天轮上总共有n个座位,则x=kn,即n=kx,

y=8kkx+kx[(1024x+20)x100+2]k=k2(10x+1024x+20100),

定义域{x|0

(2)当k=100时,令y=100(1000x+1024x+20),

f(x)=1000x+1024x,

则f′(x)=-1000x2+5121xx32=12564x=(12564)23=2516,当x∈(0,2516)时,f′(x)

当x∈(2516,50)时,f′(x)>0,即f(x)在x∈(2516,50)上单调增,

ymin在x=2516时取到,此时座位个数为1002516=64个.

20.解:(1)C5-15=-15-6…-195!=-C519=-11628.

(2)性质①不能推广,例如当x=2时,C12有意义,但C2-12无意义:性质②能推广,它的推广形式是Cmx+Cm-1x=Cmx+1,

有C1x+C0x=x+1=C1x+1;当m≥2时,

Cmx+Cm-1x=xx-1…x-m+1m!+xx-1…x-m+2m-1!

=xx-1…x-m+2m-1!(x-m+1m+1)

=xx-1…x-m+2x+1m!

=Cmx+1.

(3)当x≥m时,组合数Cmx∈Z;当0≤x<m时,Cmx=0∈Z;

当x<0时,-x+m-1>0,所以

Cmx=xx-1…x-m+1m!

=-1m-x+m-1…-x-1-xm!

单元测试篇2

关键词:单元测试;嵌入式软件;RTRT

信息技术的飞速发展带动在嵌入式系统中软件越来越多地取代硬件的功能,研究嵌入式软件测试技术用以保证软件质量成为近年来关注的热点。单元测试作为软件测试过程中的第一阶段,是软件测试的基础,效果会直接影响后期测试;另外,从修复软件缺陷与花费的成本关系考虑,在单元测试阶段修复缺陷将比在后一个阶段发现缺陷节约5~10倍的成本,可见无论从质量还是成本的角度单元测试都是非常关键的。但在实际测试中,仅依靠人工编写函数并统计分析结果的测试方法已不能满足测试准确性和测试效率的要求,要引进自动化的测试工具。RTRT是一个跨平台组件和运行时分析测试工具,支持测试的各个阶段,其单元测试自动生成测试用例模板,自动生成测试桩程序,自动运行测试程序,自动生成测试报告。

一、单元测试基本理论

(一)单元测试定义

单元测试是对每个最小的软件模块进行的正确性检验的测试,在于发现各模块内部可能存在的各种差错。包含模块接口测试、局部数据结构测试、路径测试、错误处理测试和边界测试,依据详细设计说明书和源程序清单,从程序的内部结构出发设计测试用例。主要采用白盒测试的测试用例,辅之以黑盒测试,使之对任何合理和不合理的输入,都能鉴别和响应。

(二)单元测试环境

单元是软件的基本组成模块,但本身不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,必须为每个单元测试开发驱动模块和桩模块。驱动模块相当于被测模块的主程序,它接收测试数据,把这些数据传送给被测模块,然后输出实测结果。桩模块是指用来替代被测模块调用的子模块。所以被测模块、与它相关的驱动模块及桩模块,同时包括测试用例是共同构成一个单元测试测试环境必需的要素。基于交叉开发环境,嵌入式软件单元测试环境分为基于宿主机和目标机环境两种。宿主机中单元测试与通用软件测试相同。目标机中的单元测试被测模块运行在目标机中,所有驱动模块和被测模块的数据传递都需要网线或者串口线完成,测试工具还要将测试结果再传送到宿主机中。单元测试都可以在宿主机平成,对特别指定在目标机中进行的测试必须在目标机完成。

(三)单元测试的覆盖评测

单元测试中主要的评价方法是覆盖评测,指所测试的源代码占代码总数的百分比。为了保证软件代码都被执行到,防止从不执行到的代码存在潜在的缺陷,导致产品失效。主要包括语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖等。语句覆盖指设计较少的测试用例,使被测程序中每个语句至少执行一次;判定覆盖,即程序中每个判定的每个可能的结果都应该至少执行一次;条件覆盖,要求程序中每个判定的条件的所有可能值至少执行一次。由上述内容可知,一个完整的单元测试若完全利用人工来执行,则需要开发相应的测试驱动和桩程序,根据需求设计不同测试用例或大量测试用例组合,在宿主机和目标机环境下运行测试程序,判断测试用例是否正确,是否达到需要的测试覆盖率,最后编写测试报告。在代码修改的情况下,还要进行回归测试。测试过程比较繁琐且不受控,这导致很多程序员迫于时间和成本压力,逃避单元测试,结果本应单元测试解决的软件缺陷在后续的测试中较难查找和定位,花费更多的时间和成本来修复问题。自动化测试工具解决了由传统手工测试带来的困扰,典型的嵌入式软件测试工具包括CodeTest、Testbed和RTRT,即RationalTestRealTime的首字母缩写,具有强大的测试分析功能。

二、IBMRTRT嵌入式软件单元测试

(一)RTRT简介

RTRT是IBMRatioanl提供的嵌入式软件代码级自动化测试工具集,成功地提供了自动化的、可重复的、可追踪判定的、标准化的测试,对提高嵌入式软件可靠性和开发测试速度起着巨大的帮助作用。所具有的突出特性如下:

1.支持广泛的测试功能,覆盖测试的各个阶段,包括静态度量、代码规则检查、单元测试、内存分析、覆盖率分析、代码运行时跟踪、性能分析和基于消息的系统测试。

2.为单一的测试环境中的宿主机和目标机进行自动化的单元测试、运行时分析。

3.自动创建和部署单元的测试桩模块和测试驱动程序。

4.绘制内存和性能曲线并对运行时追踪进行可视化显示。

5.支持代码的静态分析和基于MISRA标准的代码规则检查。

6.直接在目标机上进行测试和分析,支持所有从8位微芯片到64位RTOS。

(二)RTRT单元测试工作原理分析

RTRT单元测试工具支持C、C++、Jave和Ada语言编写的代码,提供全自动化的解决方案,大幅度提高了测试效率。分析RTRT的单元测试工作原理如下图1(以.c文件为例)。

图1显示了RTRT单元测试时测试程序经编译、链接、运行到测试报告产生的整个过程。开发人员在自动生成的测试脚本的编辑环境中根据需求开发测试用例,设计输入和预期输出。在模拟环境或目标机环境下自动运行测试程序,测试报告产生器自动生成测试报告,展示通过或失败的测试用例和代码覆盖率分析报告,发现错误可直接修改,自动进行回归测试。RTRT的变量测试包括所有的全局变量、函数间传递参数和函数返回值。RTRT基于TDP的目标机部署技术,通过对该技术进行定制可以支持全面的嵌入式目标系统,使RTRT可以同时对宿主机和目标机进行测试和调试,并对两者进行有效协调。RTRT单元测试阶段支持绝大多数项目要求的语句覆盖率、决策覆盖率、MC/DC覆盖率。

(三)基于RTRT的单元测试步骤设计

通过以上分析结合几个项目单元测试之后,我们总结了使用RTRT进行单元测试的基本步骤如下图2所示。

三、RTRT单元测试实例

以电器嵌入式软件豆浆机代码为例。目前电器产品由传统机械式控制向嵌入式的智能化控制转型,电器产品的安全也不仅限于传统的电气、电磁、机械及环境等方面,软件也成为需要检测的重点。选取豆浆机Relay单元,主要功能为继电器控制。部分代码如下:

voidRelay(void)

{if(irq_r)//处理继电器动作请求

{if(lr_on)//转换继电器开

{

if(!f_lr_on)

{

f_lr_on=1;

hms3=2;//延时200ms

t2ms=0;

}

else

{

if(!hms3)//转换继电器确认打开

…………….

}

RTRT自动生成relay函数的测试例用设计模板,包含函数中出现的每个全局变量,编写上述if语句为真的测试用例,只需要编写测试输入与预期输出。如下:

VARirq_r,init=1,ev=init

VARlr_on,init=1,ev=init

VARf_lr_on,,init=0,ev=1

VARhms3,init=2,ev=init

VAR2ms,init=0,ev=init

预期值与实际测试运行结果比较,生成测试报告会自动判断测试用例是否通过,可根据代码路径的覆盖要求,在测试模板中设计不同测试用例,达到需要的覆盖率,并在测试覆盖率报告中查看覆盖率百分比。为获得可靠的代码质量保证,继续根据未执行到的代码情况,编写合适的测试用例,使代码覆盖率得以提高。

四、总结

本文首先分析了嵌入式软件单元测试的基本理论,测试过程复杂,工作量较大,所以在实际的测试中,完全依靠人力确保单元测试有效实施存在困难,自动化的测试工具RTRT提供了全套自动的解决方案,自动生成测试脚本、测试程序、桩,减少了测试工作量,能自动进行回归测试,并且自动生成测试报告,以图形的形式使测试结果一目了然。不仅提高了测试效率,而且保证了测试质量。强大的TDP定制使RTRT可以支持大多数嵌入式产品的软件测试,在嵌入式领域已逐渐被广泛应用。

参考文献:

[1]蔡建平.嵌入式软件测试实用技术[M].北京:清华大学出版社,2010.

[2]姜龙,王冬星.使用IBMRationalTestRealTime进行嵌入式软件测试[J].电脑学习,2010,32(3):135-136.

[3]徐润德,陈亚,赵慕奇.基于LDRATestbed的软件单元测试[J].海军航空工程学院学报,2011,26(3):356-360.

[4]/software/awdtools/realtime.

[5]马可.嵌入式车载电子系统软件测试方法的研究与应用[D].重庆:重庆大学,2008.

单元测试篇3

1.最早通过实验测定出空气组成的科学家家是()。

A.法国的拉瓦锡B.英国的汤姆生

C.瑞典的舍勒D.意大利的阿伏加德罗

2.下列变化,属于化学变化的是()。

A.酒精挥发B.潮湿的衣服变干

C.海水晒盐D.火药爆炸

3.下列物质属于氧化物的是()。

A.空气B.氧气C.氧化铝D.高锰酸钾

4.下列四种性质中,有一种与其他三种有本质区别,这种性质是()。

A.颜色B.状态C.硬度D.可燃性

5.下列物质属于纯净物的是()。

A.五氧化二磷B.医用的生理盐水

C.高锰酸钾加热制氧气后的剩余物D.雪碧饮料

6.下列有关氧气性质的叙述错误的是()。

A.氧气是一种化学性质比较活泼的气体

B.它能跟所有的物质发生化学反应

C.在氧化反应中一般都有热量放出

D.物质跟氧气的反应都能发光放热

7.下列物质在盛有氧气的集气瓶中燃烧,集气瓶底部应放少量水或细沙的是()。

A.木炭B.硫粉C.铁丝D.红磷

8.早期化学家为了认识空气的本质,将一些物质放在密闭的容器中进行实验,结果发现,每次实验都有约五分之一的空气不知去向。有时化学家把这约五分之一的空气称为“有用空气”,这种“有用空气”是指()。

A.氮气B.氧气C.二氧化碳D.稀有气体

9.下列反应属于分解反应的是()。

A.硫+氧气二氧化硫

B.高锰酸钾锰酸钾+二氧化锰+氧气

C.铁+氧气四氧化三铁

D.蜡烛+氧气二氧化碳+水

10.暂时存放一集气瓶氧气,正确的方法是()。

A.瓶口朝下,盖上玻璃片B.瓶口朝下,不要玻璃片

C.瓶口朝上,盖上玻璃片D.瓶口朝上,不要玻璃片

11.下列变化不属于缓慢氧化的是()。

A.铁生锈B.酿酒C.蜡烛燃烧D.食物腐烂

二、填空题

12、按体积计算,空气中含量最多的气体是,它大约占空气体积的百分比是;含量居第二位的气体是,它大约占空气体积的百分比是。

13、根据事实,写出有关化学反应的文字表达式及其所属的基本反应类型。

(1)点燃镁条作信号弹:。

(2)燃烧红磷制造烟幕弹:。

(3)燃烧木炭:。

(4)高锰酸钾受热:。

三、实验题

14.实验室制取氧气时,如果用排水法集气时,当气泡放出时就可以收集。当停止反应时,如果先熄灭酒精灯,再把导管从水槽里撤出,造成的后果是。如果用向上排空气法收集时,如何证明该瓶内的氧气已满:

。如何证明一瓶无色气体是氧气:。

15、已知在通常情况下,过氧化氢二氯化锰水+氧气,且反应迅速。据此设计两套用下图所示仪器组装成的制取和收集氧气的装置,并绘制出装置图。

单元测试篇4

关键词:分类;规则;面向对象;继承;封装;多态

中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)08-2010-02

TheStudyofObjectOrientedoftheUnitTestBasedonRule

ZHANGKe-hong

(SchoolofStatistics,LanzhouCommercialCollege,Lanzhou730030,China)

Abstract:TheObjectOrientedoftheunittestdependonrule,whichisrequiredandanalysedbythesoftwaresystemofTestingcase.Thetraditionalunittestsanalysistheinternallogicstructureofprograms,butTheObjectOriented'sunittestIamtalkingaboutstressthetestsoftheinherit,encapsulationanddiversityoftheclassinObjectOrienteddevelopmentbesidesthefunctionoftheones.ThisdocumentdependsonDataMiningofruleclassification.

Keywords:classification;rule;objectoriented;inherit;encapsulationdiversity

面向对象的测试技术是面向对象开发的重要一环,也是软件质量和成熟度的保证。单元测试的指导思想是:能自生编译运行的最小程序单元[4]。这一理论对面向对象开发的软件也是适用的,但它的不足是没有明确在面向对象的测试中把方法还是把类看作单元,如果把方法看作单元会给以类为单元的面向对象的开发和测试带来混乱,所以在软件系统测试用例库的单元测试中以类为单元进行测试。

数据挖掘是指在数据中发现有效的、新颖的、潜在有用的、最终可理解的模式。为了从大量数据的低层数据中抽取高层知识,数据挖掘利用其他学科知识:机器学习、模式识别、数据库、统计理论、人工智能、专家系统中的知识获取、数据可视化,高性能计算等[9]。基于规则的分类是数据挖掘的分类方法中比较有效的一种技术,它是适用于从少量信息和知识中获取有用的信息,它的这一特点也可以在以类为单元进行测试中得到应用,也是对软件测试技术的改进。

1软件系统测试用例库介绍

软件测试项目的管理活动包含测度、度量、估算、风险分析、进度安排、跟踪和控制[6]等,而软件测试项目管理的基本内容是计划、组织和监控,从另一个角度来说它有八个工作领域,即测试范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理和过程管理[10]。

软件系统的开发工作有很大的工作量,软件测试的工作占有很大的比重,因为软件测试工作存在于软件系统测试用例库软件开发的各个阶段,所以软件测试项目的管理活动也不是锁定在那一个阶段,而是存在于需求分析、概要设计、详细设计、编码阶段、安装与维护的各个阶段[3]。

在软件系统每一个测试阶段,需要设计与之相关的测试用例,而测试用例设计和执行是软件系统测试工作的核心,直接关系到测试的效率、结果,也是工作量最大的任务之一,同时BUG的管理一般由数据库系统来支持,如果在软件系统中没有很好的测试管理系统也就不能提高测试的效率。软件系统测试用例库的建设也是基于上述目标,当然测试用例库的建立有利于跟踪和统计执行测试结果的报告,也有利于实现软件系统测试用例的标准化、回归测试和系统的质量分析。

软件系统测试用例库包括基本测试数据维护、测试信息查询、安全、帮助、测试数据库管理六个模块,通过UML画出软件系统测试用例库的用例图1。

2软件系统测试用例库单元测试中类测试的充分性

类测试充分性是面相对象中类测试的重要条件,也是质量的保障,我们在设计软件系统测试用例库单元测试用例的时候能不能保证对执行的语句每一条都考虑到,能不能找到程序中的每一个Bug,同时也要考虑到相反的问题,那就是在效率优先的前提下有没有必要做到找出所有的Bug,也要考虑到类的继承、多态、封装等特点以及这些特点给测试带来的在传统测试中从没遇到的新困难。为了有效地进行面向对象的单元测试就要考虑类测试的充分性,它有3个标准[6]:

1)基于类的状态转换的充分性:类的状态有很多,在设计测试用例的时候要考虑到要充分考虑了的状态转换,如果在测试用例中没有体现出至少一次的状态转换,那就意味着测试是失败的,同时也要说明就是测完所有的状态也可能存在着Bug。

2)基于限制的充分性:对每一个操作来说它都可能存在前置约束条件和后置约束条件。在设计测试用例时就要考虑到这些约束条件对操作的影响,特别是要注意约束条件出现的可能性。

3)基于路径的充分性:在设计测试用例时还要考虑基于路径的测试是否完全,也就是说在测试用例都执行完时,程序中的每行代码都尽可能执行一边。但此时要强调测试的效率问题。

3基于规则的单元测试技术研究

基于规则的分类法使用一组IF-THEN规则进行分类,其表达式为:IF条件THEN结论,规则的IF部分乘坐规则前件,THEN部分是规则的结论。条件是由一个或多个连接词AND连接的属性测试组成,规则的结论是包含一个类预测,如果给定的测试用例,其规则前件中的条件都成立,则规则前件被满足,说明规则覆盖该测试用例。一般规则的提取有决策树和顺序覆盖算法,规则可以用覆盖率和准确律来评价,其定义为[8]:

其中ncovers为规则覆盖的测试用例数,ncorrect为规则正确分类的测试用例数,|D|为测试用例库中D的测试用例数。

在设计软件系统测试用例库类的测试用例时,用基于规则的思想考虑路径的测试是否完全,也就是说在测试用例都执行完时,程序中的每行代码都尽可能执行一遍。但此时要强调测试的效率问题。例如:软件系统测试用例库的模糊查询voidCMainDialog::BlurTestSch(),主要是关键字KEY填写和四个查询类别的选择,四个查询类别是项目编号(XMBH)、优先级(FIRST)、是否通过(YN)、和时间(TIME),优先级又包括致命(D)、严重(S)、一般(U)、微小(M),用决策树提取模糊查询的规则如表1。

通过上述的规则,有关软件系统测试用例库的模糊查询voidCMainDialog::BlurTestSch()

的测试通过voidCMainDialog::OnTest()实现,其主要步骤如下:

voidCMainDialog::OnTest()

{

CTestingSetm_testingset;//定义CTestingSet类的对象

if(!m_input.IsEmpty())

{

if(pare("项目编号")==0)

{

CMainDialog::BlurTestSch();

MessageBox("选择项目编号关键字成功!");

}

if(pare("优先级")==0)

{

CMainDialog::BlurTestSch());

MessageBox("选择优先级关键字成功!");

}

if(pare("是否通过")==0)

{

CMainDialog::BlurTestSch();

MessageBox("选择是否通过关键字成功!");

}

if(pare("时间")==0)

{

CMainDialog::BlurTestSch();

MessageBox("选择时间关键字成功!");

}}

else

{CMainDialog::BlurTestSch();

MessageBox("请填写查询关键字成功!");

}}

通过测试程序的运行,我们发现通过基于规则的分类方法设计的测试用例是非常有效的,例如在本次测试中设计测试数据集D=10,其中规则2时人为设计的错误的规则,主要用于XMBH为空的测试。

它们的覆盖率为:ncovers(1)=…=ncovers(9)=1/9。(下转第2022页)

(上接第2011页)

它们的正确率有区别,主要是规则2覆盖两个测试用例,它的正确率ncorrec(2)=1/2,其余的正确率是ncorrec(1)=1/1,ncorrec(3)=…=ncorrec(9)=1/1。

从这些数据说明基于规则的分类方法使面向对象的测试的效率方面有很大的提高,这也是对软件测试技术中白盒测试的比较有意义的探索,也是数据挖掘的方法和软件测试技术有益的尝试,从而促进软件测试技术的发展。

4结束语

从软件的生存周期看,单元测试是指在程序文档结束以后进行的测试,它在测试技术中主要是白盒测试,也就是说它是针对程序的逻辑结构进行的测试。从另一方面来说面向对象的开发技术下的面向对象的测试也是和传统意义的测试有很多的不同点,尤其是面向对象类的继承、封装、和多态给测试造成了很大的困难,所以在本文中结合数据挖掘中的基于规则的分类技术这些特征的设计。又因为不管是传统意义的测试还是面向对象的测试,设计测试的依据是软件系统测试用例库规格说明书、软件系统测试用例库设计文档和软件系统测试用例库使用说明书,如果是设计文档错误,不管哪种测试软件质量就难以保证,当然测试的设计也就没有保障。即使测试以后发现是设计的错误,这时修改的代价是相当昂贵的。因此,较理想的做法是深入了解软件的特点,按软件工程各阶段形成的文档,分别进行严格的审查和测试。总之应通过各种方法和新技术提高测试效率和软件系统测试用例库的健壮性、正确性和有效性!

参考文献:

[1]郭宁.UML及建模[M].北京:清华大学出版社,2007.

[2]国刚,周峰,孙更新.UML与RationalRose2003软件工程统一建模原理与实践教程[M].北京:北京电子工业出版社,2007.

[3]FentonNE,PfleegerSL.软件度量[M].2版.北京:机械工业出版社,2004.

[4]JorgensenPC.软件测试[M].2版.北京:机械工业出版社,2003.

[5]PriestleyM.面向对象设计UML实践[M].2版.北京:清华大学出版社,2005.

[6]古乐,史九林.软件测试技术概论[M].北京:清华大学出版社,2004.

[7]宫云战.软件测试[M].北京:国防工业出版社,2006.

[8]HanJiawei,KamberM.数据挖掘的概念与技术[M].北京:机械工业出版社,2008.

单元测试篇5

关键词:Ku波段;射频单元;便携测试架;卫星通信

中图分类号:TN927文献标识码:B文章编号:1004373X(2008)1506502

DesignandImplementationontheRFUnitofKu-bandPortableEquipment

ZHANGZhenquan,XUYanhong,WEIMing,ZHANGZhenhua

(Unit69046,Urumqi,830002,China)

Abstract:Withthedevelopmentofsatellitecommunication,thehighfrequencyandhighintegratedsatelliteequipmentarewidelyused.Theoperatorcan′tjudgethefaultislocatedwhetherRFunitorhostmachinewhentheyappearthetroubles.Inthisarticle,thedesignandimplementofRFmeasureinstrumentisintroduced,whichcanfleetly,wellandtrulyandisnodangerorharmtojudgethefaultontheRFunitofKu-bandportableequipmentusingthemicrowavetechnologyandhighfrequencypartsofanapparatus.

Keywords:Ku-band;RFunit;portabletestequipment;satellitecommunication

随着通信技术的进一步发展,卫星通信技术得到了突飞猛进的飞跃,卫星通信装备目前被广泛使用。卫星通信装备逐渐向小型化、智能化、集成化的方向发展。使用频段已经从C波段向更高的频段拓展,Ku波段便携式卫星设备射频单元就是和主机分离开来的微波器件,当整个设备出现故障时,操作人员无法科学判断设备故障在于射频部分还是在于主机部分,因此利用微波知识研制的Ku波段便携设备射频单元测试架,可以利用现有仪表对Ku波段便携站进行精确测量,可以完全分离主机与射频单元,从而可以对射频单元、主机部分分别独立进行测试;同时使用该测试架,可以进行单载波发射,从而准确调试天线及馈源极化方式及极化角。

1测试架测试原理

对于Ku波段卫星便携式设备其射频单元一般由HNB和LNA共同组合完成信号的发送和接收功能。要准确判断故障在射频单元,就要完成对上行和下行两部分的测试,Ku便携站射频单元上行测试连接图如图1所示。

发射测试接口位于被测设备与测试仪表之间,通过该接口,为被测上行(发射)设备提供直流24V电源及10MHz参考频率信号,使该上行被测设备正常工作,同时通过接口输入L波段信号(950~1450MHz),经过被测设备变频至Ku频段(14~14.5GHz),并经过高功率放大器输出到测试仪表进行测试,如果输出信号频率、电平正常,则该上行(发射)设备工作正常,否则,可以判断该上行(发射)设备故障,如图2所示。

接收测试接口仍位于被测设备与测试仪表之间,通过该接口,为被测下行(接收)设备提供直流15V电源及10MHz参考频率信号,使该下行(接收)被测设备正常工作,同时通过波导/同轴转换接口输入Ku波段信号下行信号(12.25~12.75GHz),经过被测设备低噪声放大器放大,并经过变频器变频至L频段(950~1450MHz),输出到测试仪表进行测试,如果输出信号频率、电平正常,则该下行(接收)设备正常,否则,可以判断该下行(接收)设备故障,如图2所示。

从上行(发射)测试接口、下行(接收)测试接口的测试连接图可以看出:

测试接口在测试连接图中起到一个桥梁的作用,在正常情况下,无法直接使用仪表测试该射频单元,从而判断射频单元故障与否;使用该接口,可以很方便地实现对射频单元的测试,从而判断射频单元工作情况。

该测试接口主要实现被测设备正常工作需要的工作信号及输入信号的合成,使得以前无法使用仪表直接测量的设备可以直接使用现有仪表进行方便的测量。

2测试架技术设计框图及实现

在图3中,虚线框内的射频部分采用微带电路实现,虚线框内的中频部分采用传统高频电路实现,虚线框内的直流部分采用铁芯绕线电感及穿心电容实现。

从总体技术方案图中可以看出,接收和发射测试接口在结构上基本一致,不同的地方仅在于射频信号流向及直流供电电压、电流,在实际研制过程中,考虑到使用综合信号源作为提供测试接口工作的信号,而综合信号源具有很宽的电平调节范围,基本可以不用考虑信号衰减的问题,因此,课题组制作的接收测试接口和发射测试接口可以互换使用。

2.1射频部分高通滤波器的设计及实现

根据射频部分输入(或输出)频率范围为950~1450MHz,选择低端截止频率fc1=800MHz,可以保证在950~1450MHz频段的衰减值基本为常数,具有增益(衰减)稳定性、平坦性,其中起主要作用的是电容,合理选择高通滤波器电容是高通滤波器设计的关键。

2.2中频部分带通滤波器的设计及实现

根据中频端口输入信号频率范围为10MHz这一特性,利用高频电路原理,设计利用电感与电容组合形成的带通滤波器,带通滤波器高端截止频率设计为100MHz,低端截止频率设计为1MHz,即1MHz≤fc2≤100MHz,使信号在1~100MHz的频率范围内具有增益(衰减)平坦性,在10MHz频段衰减基本为定值,同时,起到隔离直流信号和射频信号的作用,电容选择50pF,考虑到直流及射频部分对于中频信号具有衰减性的影响,理论计算的电感量距离实际需要的电感量差距较大,电感值无法使用公式直接计算,因此,电感根据实际测量值选择。

2.3直流部分低通滤波器的设计及实现

直流部分需要保证15V及24V直流电源通过,同时阻止射频信号及中频信号。由于24V直流电源工作于大电流(约1.5A),因此,绕线电感必须保证压降尽量小,绕线线径尽量粗,同时,绕线线径太粗,形成的分布参数大,易形成寄生高频电容,对高频、中频信号影响大,合理选择直流通路的电感成为直流通路设计的关键,在直流输入端,采用穿心电容,滤除高频成分,保证电源部分供电质量,电容实际选择值为1000pF,电感值根据实际测量值选择。

3实验结果及分析

该测试架综合微波信号、中频信号、电源信号,实现多种信号的合成传输,在设计及实现上,创造性地采用微带电路与传统高频电路相结合,针对射频信号、中频信号、直流信号的特点,分别采用高通、带通、低通滤波器,巧妙地解决了多频段信号合成传输的问题,图4是该测试架的实物图,通过实验该测试架性能稳定、有效地使用在本单位的设备维修工作中。

参考文献

[1]梁昌宏.微波技术基础\.西安:西安电子科技大学出版社,2003.

单元测试篇6

关键词:遗传算法;模拟退火算法;自动化;单元测试

中图分类号:TP311.53

随着计算机技术的发展,计算机智能技术也逐渐得到了开发应用,生物智能、人工智能以及算计智能的联合应用和优势互补,使智能技术的应用更加有效。随着计算机的普及,软件产品已经深入人们生活工作的各个领域,成为日常工作、生活、娱乐的必不可少的组成部分。而对于软件安全性能的要求则在很大程度上促进了软件测试的发展。软件测试是软件安全性能和良好的使用性能的重要哦保证,贯穿于软甲开发过程的始终,保证软件开发每个阶段的质量。

软件的质量需要经过软件功能测试才能得到保障,而单元测试则是软件功能测试的基础和前提,是软件测试的起步环节。单元测试针对的对象是程序中最小的软件模块,一般是软件开发人员通过编写小段代码,针对被测试代码的某个较小较明确的功能进行测试,看其是否可以正常运行。

1参数化单元测试

单元测试作为软件测试的起步环节,同时也是不可或缺的环节,对软件的质量起着至关重要的作用。在实际测试中,单元测试代码的手动编写工作是一件极其复杂且耗时的工作,并且所选测试实例不能保证覆盖较大的代码,具有很大的随机性,进而降低单元测试的效率。

参数化单元测试将程序规格与测试用例生成分离,解决了传统单元测试存在的弊端。运用参数化单元测试方法,程序要实现的功能需要人工书写代码,然后测试工具就会通过对测试代码的分析和检测,自动根据测试的实际路径生成对应的实例和测试代码,实现代码的高覆盖率。

2基于遗传算法的搜索策略

在退火算法的运行过程中溶入遗传算法,称为退火遗传算法,依旧是说,所谓的退火遗传算法,实际上是由退火算法和遗传算法两个部分组成,结合双方各自的优点和特性,所得到的新的综合性计算方法。

2.1遗传算法依据

遗传算法的提出源于计算机发展初期提出的所谓“人工进化系统”,它是根据生物进化的特点,借鉴优胜劣汰的自然遗传法则,参照达尔文进化论的理论思想而形成的一种不依赖具体问题的直接搜索方法,在运用遗传算法进行数据计算时,不仅要用到进化学的概念,同时也要符合遗传学说的基因遗传原理。

运用遗传算法进行计算时,一般要经过几个基本步骤,即:初始化数据、数据的择优选择、随机对选中的两个数据进行交叉互换、根据遗产学说的基因变异原理所进行的个体数据变异、全局最优收敛,进而得出需要的结论或数据。

2.2模拟退火算法依据

模拟退火算法是根据固体退火过程和组合优化问题之间的相似性而提出的。在对物质进行加热处理时,物质组成中粒子之间的布朗运动加强,当加热到一定程度时,温度达到物质熔点,固体物质会转化为液体形态。这时,对物体进行退火处理,使温度降低,则物体的粒子运动减弱,并且会逐渐趋于平衡和有序,最终达到物质性质的稳定。

模拟退火算法运用温度参数进行控制,当温度较高时,数据运动变化剧烈,从而使解的区间变化较大,容易接受到较差解;当温度降低,数据运动逐渐减缓时,解的区间也会逐渐趋于稳定,这时候就可以得到较为优良的解果,从而对遗传算法的不足进行弥补。

2.3退火遗传算法依据

退火遗传算法,是指以遗传算法为主要运算方法,并在运算过程中引入模拟退火算法,使两者达到优势互补,进一步对群体进行优化调整。退火遗传算法可以分为两个组成部分:首先,运用遗传算法的进化理论,产生一个相对较为优良的群体,然后利用模拟退火算法,对群体中的个体进行优化和调整。

(1)针对遗传算子进行改进

所谓遗传算子,是指在遗传算法中,用来维持遗传多样性所使用的算子,遗传多样性是生物或数据演化过程中不可或缺的一个必要性质,遗传算子在遗传算法中类似于自然中的适者生存原则,对于个体的进化会产生巨大的影响。

初始进化阶段,为了保持种群的多样性,便于从中进行选择,应该加大对于个体间相互交叉和互换的概率;在进化的终极阶段,频繁的交叉互换不利于种群的稳定和最优解的产生,因此需要适当地减小个体间的联系和活动,减少最优解的求解难度,缩短求解过程。针对种群中的个体而言,在进行变异操作时,对优势个体进行较小的变异,劣势个体进行较大的变异,可以使其更加趋近于最优解。

(2)合理构造适应值函数

适应值函数可以针对遗传算法的求解过程进行指导,对最优解的数值区间进行限定,在适应值函数的构造过程中,引入关键分支的概念。关键分支,指在选定的路径中,对存在的结点的真实性进行判定,求解过程可能会在这些结点处产生偏离,引发错误,而这些会导致求解过程偏离目标路径的结点,就是关键分支。

适应值函数在遗传算法中是用来区分个体优劣的标准,是进行自然选择的唯一依据。原始适应值函数是对问题最初求解目标的反映。适应值对个体的判断有两个截然相反的情形:适应值越大,个体性能越好和适应值越小,个体性能越好。在遗传算法中,对适应值函数是有限制的,即适应值函数必须为非负数,这就需要选择较大的适应值函数来选择较为优良的个体。

为了使被测数据中每个参数都可以得到评估,根据相关数据对判断结点进行数据转换,在保证个体数据得到充分计算的情况下,不会对程序主体造成破坏

3实验结果与分析

为了对退火遗传算法的性能进行验证,采用判断三角形的相关测试程序,将退火遗传算法与单纯的遗传算法进行对比,对进化每一代的最大适应值进行记录。

从实验数据可以看出,初始进化阶段,个体的产生具有随机性,在对实验进行多次运行后,可以看出,最高适应值之间差异十分明显。进化过程初期,两种算法的最高适应值都存在较大的波动,而随着遗传的不断进行,退火遗传算法的最大适应值范围逐渐趋于稳定,而遗传算法的最大适应值范围仍不稳定。因此可以得出结论,将模拟退火算法与遗传算法相互配合,可以有效避免单一遗传算法的不足,加快对最优解的计算速度,减少计算所需时间。根据实验的数据,对多次实验的结果进行统一总结,可以看出,相对于单一的遗传算法而言,退火遗传算法的进化速度大大加快,减少了计算时间。

4结束语

经过实验和分析,我们可以看到,生成高代码覆盖率的测试用例是自动化测试的关键问题,是提高自动化测试性能的主要手段。针对遗传算法存在的缺陷,将遗传算法和模拟退火算法相互结合,实现优势互补,针对群体数据中的遗传算子以及适应值函数作出改进,最终通过对比实验,验证了退火遗传算法的有效性和优越性。

参考文献:

[1]赵慧娟,孙文辉.基于退火遗传算法的单元测试方法[J].计算机工程,2013,39(1):49-53.

[2]杨学红.自动化单元测试概述[J].信息通信技术,2012,(1):66-68.