单元测试方法汇总十篇

时间:2023-01-24 13:46:06

单元测试方法

单元测试方法篇(1)

中图分类号:TP311.53

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

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

1 参数化单元测试

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

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

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

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

2.1 遗传算法依据

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

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

2.2 模拟退火算法依据

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

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

2.3 退火遗传算法依据

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

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

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

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

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

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

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

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

3 实验结果与分析

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

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

4 结束语

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

参考文献:

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

单元测试方法篇(2)

上世纪90年代后,随着铁路空调客车的飞速的发展,车顶单元式空调器的产量逐年增加。据不完全统计,目前国内拥有空调器约20000多台。值得注意的是投入运用的空调器早已到了大修期,其中绝大部分为车顶单元式空调器。为保证检修后的空调器的性能,客车车顶单元式空调器的检修试验就显得十分重要。

一、客车车顶单元式空调器的性能试验装置

1、空调器的型号

目前,我国铁路客车用空调器的主要型式是车顶单元式。该型空调器自1980年从日本引进,仿制改进,至今已经运用20多年,通过不断地改进完善,现在已经形成标准化,系列化。空调器的结构型式主要有三种:平底侧出风口型,代号为“—”;圆底下出风型,代号为“Y”;平底侧出风口型,代号为“P”。平底侧出风型空调器安装于客车车顶端部,新造客车安装的绝大部分都是这种型式。

2、空调器的构造

车顶单元式空调器是将机械制冷部分的压缩机、冷凝器、干燥过滤器、毛细管(或膨胀阀)、蒸发器、气液分离器、冷凝风机、蒸发风机和空气预热器等集中装在一个箱体内,组成一个单元,可方便地安装在车顶部。与空调器配套的电气控制柜安装在车内配电室,空调器与电气控制柜通过电气连接器(插头、插座)连接,由发电车集中供电(亦可由本车悬挂式发电机供电)。空调器出风口与车内主风道之间通过软风道连接,空调器处理后的空气经车内主风道由送风口送入客室内,达到调节车内空气温度的目的。由此可见,客车车顶单元式空调器性能试验装置的重要性。

3、设计原则

1)试验装置结构力求紧凑,占地面积尽量小,以求适应于各类生产车间的工艺布局;

2)外形应该美观,设备整体性强;

3)工艺布置应该灵活,工艺设计应该简单;

4)操作方便,参数的测试及数据处理要求准确

4、设计方案的确定

目前现场使用的车顶单元式空调器性能装置有闭路式和开路式两种原理方法:

1)闭路式测试原理方法

该方式需要一间室外侧试验室一间室内试验室,被试空调器安装于室外侧试验室内,该室内的空气温度需要调节到名义工况下空调器冷凝器进风温度,经空调器制冷后的空气由送风道引入置于室内侧试验室的空气流量测试装置进行空气流量测量,接着进入空气调节装置,调节后的空气再由回风道被空调器吸入,即完成了一次循环。空气 参数调节及空气流量测量均在风道内进行,该方式的特点是测试环路必须密闭,热湿损耗较小。

2)开路式测试原理方法

该方式与闭路式的区别在于,空气经过流量测量装置后直接排入室内侧试验室内,在房间内进行空气调节。其优点是室内侧试验室的空气参数易于稳定,但热湿损耗较大。

对于这两种方式,均需要设置独立的试验房屋,房屋面积随实际情况而定。被试空调器的安装可采用固定式安装架或试验小车。如果采用固定式安装架,则一般采用箱式结构,室外需设置空调器吊装设备。若采用试验小车则一般采用房间式结构(即由几间相互隔热的房间构成)可在有起重机的检修间将空调器吊装到小车上,试验小车推入室外侧试验室,接上管道即可进行试验。

相比于房间式结构,箱式结构相对构造简单,占地面积较小,它的工艺布置也相对灵活,工艺设置简单,不需要大量的土建工程。所以,本设计“以箱体式空调器试验装置”作为总体设计方案。针对箱体式试验装置的特点,其室内可以安装加热加湿装置,弥补室内的热湿损耗,所以我们选用开路式测试原理。综上所述,我们本次设计方案最后确定为:“箱体结构式的开路式测试”车顶单元式空调器性能装置

二、制冷量的测量方法设计

1、设计原则

1)测量精度高,范围宽,系统环节少;

2)测量装置结构力求紧凑,体积小,以适应在箱体内布局;

3)装置安装操作维护应该方便,参数的读取和数据的处理应该力求简单方便。

2、测量方案确定

目前,由于某些设计单位设计的试验装置仅仅采用一种方法测试制冷量,不能有效地控制室外侧空调器的冷凝器的进风温度,造成试验工况的不稳定,影响了测试精度。

《客车空调三机检修及运用管理规程》中规定,空调器制冷量达不到原参数的90%时,应该分解制冷系统。这就要求所建的试验装置工况要稳定,测试数据应该准确。TB/T2432-93《铁道客车车顶单元式空调器试验方法》中规定,空调器制冷量试验方法采用室内侧空气焓差法为主测试方法,室外侧空气焓差法为辅测试方法。对于检修性能试验装置也可以只采用室外侧空气焓差法。但是为了保证试验装置测试制冷量的的精度及使所测试空调器性能的稳定性,我们采用室内侧空气焓差法为主测试方法,室外侧空气焓差法为辅测试方法测试制冷。两种方法测试的结果相对偏差不大于6%,若超出6%,则要进行管路损耗修正。它的特点是稳定性好,不受外界因素变化的影响。

3、测量原理方法

所谓室内侧空气焓差法,即在规定工况下通过测得流经空调器室内侧空气焓差及量流量,经过计算获得有效制冷量的方法。

所谓室外侧空气温差法,即在规定工况下通过测得流经空调器室外侧空气温差及重量流量,经过计算获得有效制冷量的方法。

三、制热量的测量方法设计

1、设计原则

1)测量精度高,范围宽,系统环节少;

2)测量装置结构力求紧凑,体积小,以适应在箱体内布局;

3)装置安装操作维护应该方便,参数的读取和数据的处理应该力求简单方便。

2、测量方案确定

我国车顶单元式空调器运行在制热状态时候一般在冬季,采用的制热方式一般是直接加热。当空调吸入的新鲜空气和室内的回风在空调器加热室内被混合加热后,将其直接送入客室内即可,它相对于制冷状态而言比较简单,所以我们测试其制热量时候可只用一种方法——室内空气焓差法测试即能满足要求,为了保证热损失在控制要求的范围以内,要用输入电加热器的瓦数所制得的热量来验算(验算公式为qd=3.41·x,x为输入电加热器的瓦数,x可以在试验装置控制柜上读出来),若误差大于6%则要进行管路损失修正。若需要修正,修正方法为将两种结果的差值加给室内空气焓差法计算的制热量。

结 语

目前车顶单元式空调器在铁道客车上的运用已经越来越多,但是空调器性能试验装置的价格都非常高。因此,空调器的检修和性能测试的是急需解决的问题,它直接关系铁道客车运营情况的好坏。车顶单元式空调器性能试验装置能得到广泛的应用,有助于提高客车空调器的性能,从而提高铁道客车乘坐的舒适度,也就在一定程度上提高了铁道客车和其它交通工具的竞争力。

参考文献

单元测试方法篇(3)

中图分类号:G642文献标识码:A文章编号:1009-3044(2008)35-2435-02

Object-oriented Unit Testing of the Case Teaching Method

ZHENG Li-xiang

(Quanzhou Senior Technical School, Quanzhou 362000, China)

Abstract: This article describes a software testing in the curriculum, students have learned the combination of Java-related knowledge, the case teaching method used to explain the object-oriented unit testing the contents of teaching so that students can understand the theory of knowledge can master the practical skills and to improve their interest in learning to cultivate the ability of students.

Key words: Java class; object-orient unit test; test case

1 引言

面向对象的单元测试(简称为OO Unit Test)是检验面向对象程序最小单位,即检查类有无错误的测试工作。因为类是面向对象程序中最基本的单位,所以对于类的测试必须要100%通过,这样面向对象单元测试就显得非常重要了。面向对象的概念及程序设计方法本身就是一个难点,那么要帮助学生理解和掌握面向对象单元测试就更困难了。学生们对此也觉得很枯燥,听不懂,学不会,最后放弃了。为了让学生掌握这方面的知识和技能,我采用的方法是以Java类为例,讲解面向对象单元测试的基本操作过程,以案例代替概念,理论与实践相结合,采用案例教学法。

为什么要采用Java类作为案例进行教学呢?这主要是考虑到以下两点:

一是Java语言是当前应用前景非常好的软件设计开发语言,现在的计算机专业一般都会开设这一课程,并且是在《软件测试》之前开设,学生有知识基础。

二是Java语言是纯面向对象的语言,它摒弃了C/C++中的一些不易掌握的结构,如指针等,其最小处理单位就是类,而且Java语言的程序非常简洁,理解起来比较容易。

当然作为案例的Java类不能太难了,否则一开始学生就看不懂该Java类的功能,更不用说理解该类的测试过程了。

为了让学生能够掌握面向对象单元测试技术,我根据学生的知识水平,选用合适的被测试的Java类,为其设计测试用例,执行测试并生成测试文档,用完整的案例进行教学。

2 针对面向对象语言的特征,选择自动化的单元测试方法

在一个典型的软件项目中,有两种类型的测试最为重要:程序员测试和用户测试,或称为单元测试和验收测试。单元测试由程序设计师自行编写测试代码,目的在于验证程序设计师所撰写的代码是否依据其所设想的方式执行而产生符合预期的结果。即验证程序代码的正确性。如果是对采用面向对象方法设计的软件进行单元测试,就是面向对象单元测试了。

通常,在进行面向对象的单元测试前,我们都要分析几个问题:

1) 面向对象的单元测试的对象是谁?

2) 采用人工测试还是自动化测试?

3) 如果是自动化测试,那么使用什么样的工具合适?

4) 如何进行面向对象的单元测试?

对于不同的程序代码来说,以上的问题可能都有不同的答案与之相对应,那么如果使用的是Java语言所编写的代码的话,该怎样决定呢?

首先,我们知道Java语言是一种高级的、通用的、完全面向对象的程序设计语言,其程序的基本处理单位是类。所以单元测试的对象就是类,即Java的单元测试指的是面向对象的单元测试。

其次,随着软件的复杂程度越来越高,面向对象单元测试的工作量也随之增加了,若采用人工测试恐怕难以完成。因此,自动化的单元测试要比人工测试要来得适用。再者,自动化测试的另一个好处是能生成测试文档,这样也可以减少文档的撰写工作。

当然,如果选择了自动化测试就需要工具来支持了,使用何种工具比较合适呢。在此,推荐使用JUnit,这是一种轻量级的测试框架。JUnit是一个开发源代码的Java测试框架,用于编写和运行可重复的测试。它是用于单元测试框架体系xUnit的一个实例(用于Java语言)。主要用于白盒测试,回归测试。JUnit一般不需要另行安装,通常集成的程序设计平台,如Eclipse、JBuilder等都会装有JUnit。

3 设计简单的Java类的单元测试用例来解析面向对象单元测试

3.1 选取待测试的Java类

为使学生更易理解,案例的选择要先易后难。我们可以用HelloWorld为例说明JUnit是如何进行单元测试的,因为每一种语言在其学习用书的第一个例子通常都是HelloWorld,它最简单了。以下是代码:

// HelloWorld.java

packageHelloWorld ;

public class helloWorld {

public String sayHello( ) {// 返回测试字符串的方法

returnstr;

}

private String str;

}

3.2 设计测试用例,帮助学生掌握测试步骤

为了对HelloWorld类进行测试,我编写了以下测试用例,它本身也是一个Java类文件。代码如下:

// HelloWorldTest.java;

package hello.Test ;

import helloWorld.*;

import junit.framework.*;// 引入junit.framework包

public class HelloWorldTest extends TestCase{

//继承TestCase类

public HelloWorldTest ( String name ) {

super ( name );

}

public static Test suite ( ){

returnnewTestSuite ( HelloWorldTest.class );

}

public static void main ( String args[] ) { //主方法

单元测试方法篇(4)

一、前言

目前,随着建筑节能法规的出台,我国对建筑节能越来越重视。导热系数是评价保温材料绝热性能的主要技术依据,因此,准确测定该参数是十分必要的,现有防护热板法装置所测试件的尺寸≤600 X 600(mm),只局限测定试件的厚度≤60mm;无冷却装置或用水冷却,目前常用的防护热板法装置热面温度:室温~+60℃,冷面温度:室温~+5℃,且制冷不直接,冷却不均匀,这种水冷尤其是不能测试低温下导热系数,而且这种水冷冷却方式使热稳态时间加长,工作效率低。为了克服现有的防护热板法装置,只测定小试件、薄试件,而导致试件结构测量范围受限制;尤其采用水冷的冷却方式造成测试温度受限制及工作效率低等问题,设计了新型防护热板法检测装置,该装置所测试件的尺寸1000 X 1000厚度15-120 (mm),检测在密闭型可制冷的调控空间进行,冷却单元采用直冷式的制冷方式。

二、工作原理

双试件防护热板法装置的工作原理:热稳态条件下,在防护热板中央计量区域内,有两块表面平整且平行设置的均匀板状试件中,建立类似于以两块平行均匀温度板为界的无限大平板中存在的一恒定热流。

双试件防护热板法装置的主要结构:加热单元、冷却单元、试件;加热单元包括:计量单元和防护单元。计量单元外形尺寸:484mmx484mm;防护单元外形尺寸:1000mmx1000mm;冷却单元外形尺寸:1000mmx1000mm。由于加热单元、冷却单元外形尺寸加大使得所测试的试件面积加大,测试的试件厚度范围加大。

冷却单元采用直冷式的制冷方式,主要是将制冷系统的蒸发器嵌入专用功率模块,降温速度快,可冷面温度降低到:-10℃以下。

加热单元应分为在中心的计量单元和由隔缝分开的环绕计量单元的防护单元,并装有绝热装置和外加有可以制冷环境空间。

热单元采用双热面加热器,冷板与双热面对称布置,根椐试件的厚度设定移动冷板的空间,将被测试件垂直放置在两个相互平行具有恒定温度的平板中,在稳定状态下,试件中心测量部分具恒定热流,通过测定稳定状态下流过计量单元的一维恒定热流量Q、计量单元的面积A、试件冷、热表面的温度差T,可计算出试件的热阻R,根据试件的厚度,就可以准可确算出试件的导热系数入值。

三、结构设计与特点

1.工作面积大,测试温度范围宽,测试材料种类多,制冷效果好,达到稳态时间短,温控精度高,性能稳定可靠,参数测定准确。

2.双试件装置,双面热板,双面冷板采用世界最先进的高分子材料,它具有耐高温柔软,导热等功能,与试件可紧密接触提高测定导热系数值的精确度。

3.制冷系统釆用全封闭进口压缩机组运转噪声小,降温速度快,使用寿命长等优点。

4.导热系数测定仪冷却单元与制冷系统的蒸发器连成一体化的冷却方式,不但节约了原材料,而且提高了制冷效果。

5.装夹试件完全自动化,根据试件的厚度设定移动冷却单元与热单元的空间只需点一下电脑装夹命令,即可夹紧。

6.微机控制系统:由高配置工控计算机,打印机组成,完成检测信号采集处理,温控、时控、报表打印等功能。

下图是工作箱内结构图。

工作箱内结构示意图

(1)冷凝管;(2)双试件装夹支架;(3)气缸夹紧系统;(4)活动推力板;(5)检测中心区域;(6)冷却单元;(7)试件;(8)试件保温层;(9)前门凸轮锁紧装置图中:1.工作箱上面、左侧、右侧是冷凝管,冷凝管是由一套制冷系统控制温度,能测试低温下导热系数。

2.气缸夹紧装置,夹紧力主要是调节气压传动系统中的压力值,根据压力值、气缸的活塞面积计算气缸的推力值,应达到标准所规定的压力值。

3.活动推力板是由气缸推动,使轴杆向前滑动压紧弹簧,冷却单元紧密的贴紧试件。

4.检测中心区域,主要是由加热器、紫铜板、温度传感器组成。

5.冷却单元采用直冷式的冷却方式,将蒸发器嵌入模块中,能尽快使冷单元的温度达到稳态。

6.双试件垂直放入检测中心区域和两个冷却单元的之间,加热单元的温度和两个冷却单元的温差T,根据热流,试件的厚度计算导热系数值。

7.保温层主要是保持加热单元和冷却单元的温度不受环境温度的干扰。

8.前门凸出轮锁紧装置,前密闭门采用横向滑动式,试件装夹后用凸轮锁紧,密封性良好。

四、结束语

本文阐述介绍的检测装置设计完全符合标准要求,在检测大型试件绝热材料导热系数、鉴别材料保温性能质量的方面,对于合理选材、节约能源提供了保障。

参考文献:

单元测试方法篇(5)

    2.用户界面测试

    通过用户界面测试来验证用户与系统的交互情况。界面测试的目标是确保系统向用户提供适当的访问和浏览被测对象功能的操作。测试方法,为每个窗口创建或修改测试,以核实各个应用程序窗口和对象都可正确进行浏览,并处于正常状态。完成标准,证实各个窗口与基准版本保持一致,或符合接受标准;需考虑的特殊事项,并不是所有定制或第三方对象的特征都可访问。

    3.性能测试

    性能测试采用了主观评测和软件评测相结合的方法,先部署上系统,在环保局内部试运行,通过工作人员的使用来了解系统的反应速度是否满足客户的需求。系统的性能需求主要是对系统web访问的response时间和系统负载能力的要求。在性能测试过程中,我们利用Loadrunner模拟用户向系统发送请求,并监控系统的CPU,Memory等参数。

    4.安全性测试

    本系统采用先登录,后操作的方式。因此,必须测试有效和无效的用户名和密码,并注意到是否大小写敏感。本系统是有超时的限制,也就是说,用户登录后在一定时间内(20分钟)没有点击任何页面,需要重新登录才能正常使用。所以,也必须对其进行测试。

单元测试方法篇(6)

中专学生的基础知识令人吃惊,其不良的学习习惯已经使他们不知道什么是学习。面对连走路都在玩手机的中专生来说,简单的课堂说教已经毫无意义。学生技能的学习才是我们真正的突破口。经过一个学期“单元过关教学方法”的改革尝试,课堂教学效果有了很大的改观。

一、单元过关实施过程

电子专业“单元过关”教学方法,本着知识够用、学生会用、扩展实用、企业能用的目标,经过专业课老师共同研究,对每门电子专业课(主要是实训课)都制订严格的训练计划和单元过关项目,从具体的元器件符号的识别到元器件质量好坏的检测;从电路图的识读、手工焊接强化训练到电子整机装配;从电子产品的制作到电子电路的检测等,要求每一个项目都有过关实施方案和过关测试任务指导书,使每位学生都能学有所得、做有所获、修有所成。

1.制订切实可行的单元过关计划

由于电子专业知识抽象,且多数学生基础差、无兴趣,所以需要任课教师仔细研究教材内容,以学生的实际“需要”为动力,“够用”为原则,根据自己所教学科,每位教师制订出一套符合学生认知规律的、切实可行的单元过关教学计划。教学计划的内容包括:(1)单元过关训练方案;(2)单元过关测试内容;(3)单元过关测试时间、地点、学生分组情况;(4)单元过关实施方案(包括任务书、评分标准)等。比如:任课教师根据所学内容精选的单元过关项目有:《基本元器件识别》《手工焊接》《PCB电路板的设计》《单片机电路仿真》《USB小功放的装配与调试》等。负责单元过关的教师对每一次单元过关测试都写出相应的单元过关计划,这样为单元过关的顺利进行提供了保障。

2.分组测试是单元过关顺利进行的有效保障

我校电子专业学生每个班级40左右人,工艺实验室试验台最多16个,开设两个实验室,学生不好控制,开设一个实验室学生分组测试比较合理。一年级专业课教师根据班内的实际情况,将成绩优秀、动手能力强和成绩差、行为习惯不好的学生平均分成3个实验小组,每小组15人左右。二年级由于是装配和调试不用分组。根据我校校内电子实训室设备的设置,保证学生都能参与单元过关实训操作,同时人数少又保证了实验室的课堂纪律。

3.单元过关测试过程控制

单元过关测试不但是对学生的一次过关课测评,而且是对学生单项能力的训练,通过过关测试,使学生能够掌握基本操作技能。经任课老师商量决定,对于较简单的测试内容,比如:《万用表的使用》《基本元器件的识别》等,测试过程中让学生独立完成,对于难度较大的过关测试内容,比如:《七彩手机充电器的安装》《USB小功放》电路板贴片元件的焊接等,为了提高测试效率,在测试过程中,需要任课教师详细地演示,每一个步骤、每一个动作都应给学生作好示范,讲解注意事项、基本的操作要领、如何正确填写任务书等。任课老师在巡回指导过程中可以及时发现问题并给予纠正,引导学生按规范要求进行操作,从而提高了单元的过关率。完成所有单元过关后,学生的实际动手能力和综合职业素质方面收到了显著成效。

4.单元过关测评结果展示

单元过关的测评是很重要的一个基本环节,它是对学生成绩的肯定。本环节要求学生课堂过关率达90%以上,对于课堂上不能过关的学生,课下自主训练后主动找老师测评过关,最后要求学生人人过关。个别单元过关测评结果展示如下:

(1)《万用表的用法》技能过关测试:在学生认识了基本元器件的基础上,又学习了万用表的基本功能和用法的前提下,进行本单元过关测试。本次过关是让学生先挑出待过关元器件的类别,用相关的万用表量程检测,目的是检查第一次未按时过关的两名同学掌握的情况。把理论知识和实际技能有机地结合起来,充分调动学生的积极性,提高学生解决实际问题的综合能力。本次过关分四组进行,每组时间为20分钟,抽签确定过关内容,过关率为97%。

(2)《手工焊接》技能过关测试:这个过关项目是教师把学生必须掌握的知识点和操作技能整合好后,先让学生了解相关工具的用法,之后教师逐个手把手演示,学生练习,最后在规定时间内考核。本次过关时间为每人3分钟,过关率为94%。

二、单元过关测评中的收获和困惑

1.单元过关测评可以充分激发学生的学习兴趣和动机

记得一位名人说过:“人是最容易受到激励情感的高级动物。”我们是中专生也不例外,在单元过关测评中,多数学生获得了成功,他们便会产生积极的情绪和情感,没有人认为自己不行,愿意落后,人人都想当个成功者,学生也不例。总之,单元过关测试能让学生从自己的学习中体验成功,产生满足感,增强自信心,教学目标的实现才有保证。

2.单元过关测评可以改变教学思想,从而改变课堂教学模式

单元过关教学模式改变了以往项目教学模式中的不足,项目教学虽然也是以学生动手操作为主,课堂上学生也动手练习了,但是学生练习的如何、操作要点是否掌握、是否将学过的知识转化为技能等,对于项目内容测评不到位。单元过关教学方法,学生平时不仅加强练习,而且还要通过测评,过关了才算成绩合格。所以,教师一定要更新观念、改进教学方法,在教学过程中让学生人人过关,在单元过关测评过程中提高学生的技能。

3.单元过关测评可以发现教学中的薄弱点

通过单元测评,可以检查出学生知识点的薄弱环节。通过对不同成绩段学生的成绩分析,可以知道学生哪些知识已经掌握,哪些知识点还没有掌握。作为任课老师一定要帮助成绩不好的学生找到没学好的原因,并为他们制订出一系列适合这些学生的方案,然后采取什么样的措施让学生掌握这些知识。任课老师只要做到了这一点,那么我们的教学效果就会有很大的提升。

4.单元过关测评中的困惑

单元过关测评教学模式,由于受实验室条件的限制,为了顺利完成测试,有些测试项目是分组进行的,比如测试分3组,第1组先进行测试,其他两组学生只得等待,纪律有点乱,不好控制。另外班级中同学水平参差不齐,无法完成当场全部过关,以上这两个问题在以后的教学工作中,我们一定会想办法加以弥补和完善。

单元测试方法篇(7)

中图分类号:TP311.52

一、JUnit概述

Junit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Erich Gamma是GOF之一,Kent Beck则在Windows XP中有重要的贡献。JUnit是一个开源的java测试框架,它是XUnit测试体系架构的一种实现,XUnit是专门进行单元测试的程序框架。

JUnit具有的一些特点有:

1. 提供的API可以帮助写出测试结果明确的可重用的单元测试用例。

2. 使用JUnit可以快速的编写测试并检测程序代码,并逐步随着程序代码的增长增加测试。测试可以很好的检查程序代码是否完整。

3. Junit测试可以自动执行并且检查结果。当执行测试时,将获得简单且立即的回馈。比如测试是通过或失败,而不再需要人工检查测试结果的报告。

4. Junit可以合成一个有层次的测试系列架构,Junit的合成行为允许组合多个测试并自动的回归,从头到尾测试整个测试系列,也可以执行测试系统层级架构中任何一层的测试。

5. 开发测试成本低,超轻量级并且使用简单。

6. 整个框架设计良好,易扩展。提供了单元测试用例成批运行的功能。

二、Junit中常用的接口和类

1. Assert:当条件成立时候assert方法保持沉默,但若条件不成立就抛出异常。

2. TestResult:包含了测试中发生的所有错误或失败。

3. TestListener: 测试中若产生(开始,结束,错误,失败)会通知TestListener。

4. TestCase:定义了可以用于运行多项测试的环境(实现了Test接口)。

5. TestSuite:运行一组test case(他们可能包含其他 test suite),它是Test的组合(实现了TestSuite)。

6. BaseTestRunner:用来启动测试的用户界面,BaseTestRunner是所有test runner的超类。

三、JUnit单元测试框架

单元级测试在面向对象的开发中变得越来越重要,而一个简明易学、适用广泛、高效稳定的单元级测试框架对成功的实施测试有着至关重要的作用。在java编程环境中,Junit Framework是一个已经被多数java程序员采用和实证的优秀的测试框架。开发人员只需要按照Junit的约定编写测试代码,就可以对自己要测试的代码进行测试。如下图所示:

1. junit.framework.Test:测试接口。

2. junit.framework.TestCase:测试用例类,业务类的测试用例类只需要承继这个TestCase,根据情况编写若干个public void testXxx()方法,在方法中通过assertYyy()定制若干测试规则就可以了。

3. junit.framework.TestSuite:测试套件类,它可以将多个测试用例类捆绑在一起运行,也可以捆绑另一个测试套件。

四、Junit测试过程

1. TestCase实例被运行时,依照以下步骤运行:

1) 创建测试用例的实例。

2) 调用setUp()方法,执行一些初始化工作。

3) 运行testXxx()测试方法。

4) 调用tearDown()方法,执行销毁对象的工作

2. JUnit会以以下顺序执行测试

try {

HelloTest test = new HelloTest(); // 建立测试类实例

test.setUp(); // 初始化测试环境

test.testAAA(); // 测试某个方法

test.tearDown(); // 清理资源

}

catch…

3. 如果测试用例类中有多个testXxx()方法,且它们都需要使用到相同的一组对象,我们可以在setUp()中实例化这组对象,并在tearDown()中销毁它们。

1) 创建TestCase类的子类。

2) 在子类中声明若干个测试所用的对象。

3) 覆盖setUp()方法,在方法中实例化这些对象。

4) 覆盖tearDown()方法,释放这些对象的资源。

五、使用Ant批量运行Junit单元测试用例

Ant是一个类似make的、用java实现的构建工具,项目的构建、包装和过程中几乎每一件事都可以由Ant的任务来处理。Ant凭借出色的易用性、平台无关性以及对项目自动测试和自动部署的支持,已成为众多项目构建过程中不可或缺的独立工具,并已经成为事实上的标准。

随着项目的进展和项目的规模在不断的膨胀,为了保证项目的质量,有计划的执行全面的单元测试是非常有必要的。利用Ant集成Junit可以通过配置批量运行所指定的测试用例并生成测试报告,可以让开发人员及时发现代码中所隐藏的bug,及时进行修改,极大的提高工作效率,从某种意义上做到持续集成。

Ant 内置了对 JUnit 的支持,它提供了两个 Task:junit 和 junitreport,分别用于执行 JUnit 单元测试和生成测试结果报告。使用这两个 Task 编写构建脚本,可以很简单的完成批量运行单元测试并生成测试报告的任务。

首先把junit的包加载到ant的编译目录下,然后编写 Ant 构建脚本 build.xml。接下来把此build.xml文件放到工程的根目录下,修改test属性的值为我们要运行的单元测试用例的包路径名,如果为空默认运行工程所有的单元测试,在Eclipse下打开此build.xml文件,在右边的outline视图下右击ant的junit任务,选择Run As Ant Build,就可以运行此ant文件的junit任务,然后我们就可以在Eclipse的控制台上看到Ant任务的执行信息,任务执行完后,就会在工程的report目录下的“framework-${DSTAMP}-${TSTAMP}”临时文件夹下生成html类型的测试报告。

六、总结

经济或社会效益:

第一个是简化测试的编写,这种简化包括测试框架的学习和实际测试单元的编写;第二个是使测试单元保持持久性;第三个则是可以利用既有的测试来编写相关的测试。

单元测试方法篇(8)

DOI:10.3969/j.issn.1005-5517.2013.4.005

ISO26262标准概述

功能安全标准(ISO26262)是从电子、电气及可编程器件功能安全基本标准IEC61508派生出来的,主要定位在汽车行业定的电气器件、电子设备、可编程电子器件等专门用于汽车领域的部件,旨在提高汽车电子、电气产品功能安全的国际标准。

ISO26262从2005年11月起正式开始制定,经历了大约6年左右的时间,已于2011年11月正式颁布,成为国际标准。中国也正在积极进行相应国标的制定。

ISO26262主要内容包括:

·提供了汽车生命周期(管理,研发,生产,运行,服务,拆解)和生命周期中必要的改装活动。

·提供了决定风险等级的具体风险评估方法(汽车安全综合等级,ASILs)。

·使用ASILs方法来确定获得可接受的残余风险的必要安全要求。

·提供了确保获得足够的和可接受的安全等级的有效性和确定性措施。

功能安全受研发过程(包括具体要求,设计,执行,整合,验证,有效性和配置),生产过程和服务流程以及管理流程的影响。

安全事件总是和通常的功能和质量相关的研发活动及产品伴随在一起。ISO26262强调了研发活动和产品的安全相关方面。

符合性要求

1)如果要宣称符合ISO26262,那必须是符合其每个要求,除非有如下情况之一:

·根据ISO26262-2中,对不适用的要求进行安全行为的裁剪:

·针对不符合项,提出其说明理由,并对理由根据ISO26262-2进行评估:

2)所有安全行为的输出物都在ISO26262中有明确的规定。

3)下文中出现的列举各测试方法的表中,有不同的序号表示方法:

·连续的序号,比如1.2.3:所有的方法应被用于对应的ASIL等级,如果出现所列表中之外的方法背用于测试,则需要进行说明。

·可选的序号,比如1a,1b,1c:可以选择某个或多个方法进行测试,并优先考虑更高推荐指数的方法。如果多个方法被组合选择用于测试,则需要进行说明。

4)针对ASIL的各级,表中的每个方法都有对应推荐指数:

·“++”:最高的推荐指数

·“+”:建议使用

·“0”:不建议使用或不需使用

测试概述

ISO 26262-8中的第9节描述了“Verification”的目标、要求和建议、工作输出等。Verification是用于确保实现与需求的一致性,在安全生命周期的几个阶段中都会用到。包括概念阶段、产品开发阶段、生成和运营阶段。本文主要描述在产品开发阶段中的测试环节中,需要用到的各种测试要求和建议。

测试计划

1)在测试执行前,都需要建立测试计划,其主要包括几部分:

·测试范围:用于测试的产品内容:

·测试方法:用于测试的各种方法:

·测试标准:测试通过或失败的标准:

·测试环境:如果需要用到各种测试环境,比如仿真环境等,需要进行说明:

·测试工具:用到的各种测试工具:

·出现异常后的对策:

·回归策略:在测试对象发生变更时,指定其如何进行回归测试,比如全部回归、部分回归、和其他测试案例一起回归等。

2)测试计划的制定还需考虑到以下几个方面:

·测试方法的完整性:

·测试对象的复杂度:

·测试经验:

·测试技术的成熟性和风险。

测试规格

1)测试规格需要选择和指定用于测试的方法,并包括测试案例、测试数据和测试对象。

2)每个测试案例需要包括:

·序号:唯一的ID

·测试对象的版本号

·测试对象的条件和配置:针对测试对象的不同配置,需要选择合理的测试案例进行测试

·测试环境

·输入值和顺序

·期望行为:报刊输出值、输出范围、功能表现等

3)测试案例需要根据测试方法来分类。针对每个测试方法,除了测试案例外,还需考虑以下几方面:

·测试环境:

·相关性:

·测试资源。

测试执行和测试报告

4)按照上述章节中制定的测试计划和测试规格,进行测试的执行。

5)针对测试结果,其测试报告需包括以下几个方面:

·测试对象的ID:

·测试计划和测试规格的引用:

·测试环境、测试工具、标定数据:

·测试结果和期望值的符合度:

·测试通过或失败的结论,如果失败,还需要指明失败原因和修改建议:

·针对没有执行的测试案例,说明原因。

ISO26262中的测试阶段

ISO26262中涉及到测试的阶段共包括“硬件集成和测试”、“软件集成和测试”、“产品集成和测试”这三部分。下面章节分别介绍这三部分的要求和建议。

硬件集成和测试

ISO26262中“Part 5:ProductDevelopment:HardwareLevel”针对产品开发的硬件部分提出了专门的集成和测试要求和建议。

1 硬件集成和测试需要按照安全计划和验证要求来按计划进行:

2 硬件集成和测试需要按照产品集成和测试计划来进行:

3 针对变更,需要按照标准规定中的变更管理来对测试策略进行影响分析:

4 测试的设备可以按照国际标准(比如ISO17025)或公司标准来进行标定:

5 硬件集成测试的测试案例需要按照表1的方法进行设计:

6 针对硬件安全需求,硬件集成和测试需要对其安全机制实现的完整性和正确性进行验证,其方法如表2所不。

7 硬件集成和测试需要按照表3的方法进行外部压力环境下的鲁棒性测试。

软件集成和测试

软件单元测试

软件单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。ISO26262中规定了其相对应的要求和建议:

1 软件单元测试需按照“ISO26262-8节9中”的验证要求来有计划的定义和执行。软件单元测试的对象是具体的软件实现单元,在基于模型的软件开发过程中,软件单元测试的对象是其单元模型。

2 软件单元测试需要按照表4中列的方法进行,以完成以下目标:

·检查是否符合软件单元设计的具体要求:

·检查是否符合软硬件接口要求:

·检查功能是否正确实现:

·检查是否有异常功能:

·检查软件实现的鲁棒性,比如错误处理效率等:

·检查功能所需资源的完整性。

3 软件单元测试中的测试案例需要按照下表5中的方法进行分析设计。

4 软件单元测试中,对于需求的覆盖度、代码的覆盖度都需要进行衡量,具体方法如表6所示。如果覆盖度不够,还需要增加其他测试案例。

·代码的覆盖度都可以借助一些软件工具来实现:

·如果是基于模型的开发,其软件单元测试需要利用类似的模型的结构化覆盖指标来衡量:

·如果通过代码的打桩来进行测试覆盖度的衡量,必须保证打桩的代码和正常的代码的执行功能是一致的:

·对于覆盖度衡量目标,都需要给出一个合理理由来表示其不同的级别,对于无法覆盖的代码,可以通过检查等其他方法来进行验证。

5 软件单元测试需要尽可能的在真实的目标环境上执行,如果利用其他环境,则需要评估其与真实环境的差异、源代码和目标代码的差异,分析设计测试案例,以便在接下来的测试阶段中得到执行。

·测试环境的不同,会导致源代码或目标代码的不一致,比如不同处理器的位数不一样,会导致编译后的目标代码不一致。

·如果能利用目标环境中的相同处理器来运行软件单元测试案例,那是最有效的,但如果不行,则可以用处理器模拟器来代替,否则软件单元测试只能在开发系统中进行测试。

·软件单元测试可以在不同的环境中执行,比如模型在环测试(MIL)、软件在环测试(SIL)、处理器在环测试(PIL)、硬件在环测试(HIL)等。

·在基于模型的开发系统中,软件单元测试可以在模型级别进行,但模型与代码的执行比较测试必须要做,以保证模型与自动生成的代码的结果一致性。

软件集成和测试

软件集成和测试主要对实现的各软件模块进行集成,并验证其嵌入式软件实现是否符合软件架构设计。该阶段的要求和建议如下:

1 软件集成计划应该描述层次化的集成单个软件单元进软件组件中,直到嵌入式软件完全集成,并且应该考虑如下:

·软件集成功能的相互关系:

·软件集成和软硬件集成的相互关系。

注意:对于基于模型的开发,可以先集成各模型,然后对集成好的模型进行自动代码生成以完成整体软件的集成。

2 软件集成测试根据ISO26262-8:2011,第9节计划,定义并且执行。软件集成测试的测试对象是软件组件。对于基于模型的开发,测试对象可以是和软件组件相关的模型。

3 软件集成测试需要按照表7的方法进行,以完成以下目标:

·检查集成的软件是否和软件架构设计一致:

·检查集成的软件是否满足软硬件接口规格:

·验证功能的正确性:

·检查其鲁棒性,比如错误检测、错误处理机制的有效性:

·检查是否有足够的资源来支持。

4 测试案例需要按照表8中的方法进行分析设计。

5 对于软件架构级别的需求测试覆盖度,可以用来衡量测试的完整性,以及用于证明没有设计之外的功能实现。如果有需要,可以增加新的测试案例,或者提供一个合理的理由说明。

6 为了评估测试案例的完整性,同时确保没有多余的功能,根据表9列出的指标需要衡量出其结构覆盖率。如果覆盖率不够高,要么需要添加额外的测试案例,或者提供一个合理的理由说明。例如,结构覆盖率的分析可以用于发现测试案例的不足、无用代码、无效代码或者多余功能等。

·结构覆盖率可以利用工具计算出来。

·如果是基于模型的开发,结构覆盖率可以通过模型级别的模型结构覆盖率来统一计算。

7 作为产品的一部分,嵌入式软件需要被验证其包含设计的所有功能。如果嵌入式软件包含了设计之外的功能(比如用于调试的代码),则这些功能需要被验证是不影响软件的安全需求的。如果这些设计之外的功能在真实产品中保证不会被激活执行,那也是符合这个要求的:否则删除这些功能,也需要按照需求变更流程来统一处理。

8 软件集成测试需要尽可能地在真实环境中运行,如果不行,则需要评估测试环境与真实环境的差异性,并针对这些差异,在后续的阶段的真实环境的测试中设计专门的案例来执行。

·测试环境的不同,会导致源代码或目标代码的不一致,比如不同处理器的位数不一样,会导致编译后的目标代码不一致。

·针对各种测试,需要建立合适的测试环境。比如目标处理器的测试环境、仿真处理器的测试环境、开发测试环境等。

·软件集成测试可以利用模型在环测试(MIL)、软件在环测试(SIL)、处理器在环测试(PIL)、硬件在环测试(HIL)等测试手段进行测试。

软件安全需求验证

本阶段的目标是验证嵌入式软件符合软件安全需求,其所规定的要求和建议如下:

1 软件安全需求的验证需要制定计划,定义再执行。

2 为了验证嵌入式软件实现了软件安全需求,表10列了所需的测试环境。注意:已有的测试案例,例如在软件集成测试阶段使用的可以重用。

3 对于软件安全需求实现的测试需要在目标硬件平台上完成。

4 软件安全需求验证的结果需要考虑下面这些因素来评估:

·和预期结果一致:

单元测试方法篇(9)

中图分类号:TP311 文献标识码:A 文章编号:1009-2374(2013)18-0027-02

嵌入式软件作为嵌入式系统的重要组成部分,嵌入式软件质量问题可能会带来设备的损坏和人员的伤亡,因而用户对其质量有较高的要求。软件测试是对软件质量检验的一个非常重要的手段。而软件测试中动态测试最基础的测试就是单元测试。如何开展单元测试以及如何提高单元测试的效率是一个值得研究的问题。

1 软件单元测试的要求及重点

软件单元测试是对软件基本组成单元进行测试,测试软件单元是否正确地实现规定的功能,是否满足软件性能和接口要求。并验证程序与详细设计说明的一致性。因此在单元测试时,需要模拟被测单元与其他模块之间的交互,开发驱动模块和桩模块两种辅助模块,构建一个可执行的环境,驱动模块用于模拟被测单元的上层模块,测试执行时由驱动模块调用被测单元使其运行;桩模块用于模拟被测单元在执行过程中所调用的模块。

单元测试重点考虑的测试类型有:(1) 接口测试。接口测试主要检查实参与形参的数目是否相等、实参与形参的属性是否匹配、实参与形参的单位是否一致、传到被调用模块的实参的属性是否与形参的属性匹配、是否把常量当作变量传递等内容。(2)功能测试。功能测试主要是对照软件单元的设计说明,验证软件是否完成了所需的功能。(3)重要执行路径测试。应设计测试用例以发现错误的计算、不正确的比较和不正常的控制流向等错误。在计算中比较常见的错误是:误解或错误处理算术运算的优先次序、混用不同类的操作、计算精度不够等。另外在控制软件执行流程的比较操作中比较常见的错误有:不同数据类型的比较、不正确的逻辑操作符或不正确的优先次序、因精度不够使本应相等的数不相等(如浮点数)等。(4)软件单元的局部数据结构测试。软件单元的局部数据结构是一个主要的错误来源,应设计测试用例来发现不正确的或不一致的数据说明、初始化有错或没有赋初值、不正确的变量名、不一致的数据类型、上溢/下溢或引用错误等类型的错误。(5)错误处理路径测试。一般软件错误处理路径测试应考虑下面几种可能的错误:对错误的描述不易理解、指出的错误并不是所遇到的错误、出错时还没有进行出错处理就先进行系统干预、错误边界条件的处理不正确、描述错误的信息不正确从而不足以确定出错的原因等。(6)边界测试。边界测试是检测软件在其输入/输出域、过程参数、状态转换、功能界限等具有一定范围的边界或端点条件下的运行情况,考核软件的功能或性能在其边界条件下或边界的邻近区域内是否依然满足设计要求。按照上去要求进行单元测试时,为达到要求的覆盖条件,还需采取一定的技术手段对测试覆盖率进行记录和分析,确保达到相应的覆盖率指标。采用TBrun单元级测试工具,能自动产生软件测试驱动、桩模块,提供友好的输入输出人机交互和覆盖率统计功能,能有效提高单元测试的测试效率。

2 Testbed在单元测试中的应用

使用 Testbed/TBrun的基本方法是:设计测试用例;在Testbed/TBrun中加载被测单元文件,通过Testbed/TBrun对被测软件进行源程序自动插装;根据测试用例设定输入和预期的输出,执行插装好的源程序单元;分析输入数据、预期输出和实际输出;得到被测软件在当前的测试用例执行过程中代码的覆盖率。需要注意的是,每执行一个测试用例就需要重新编译并执行。Testbed/TBrun的覆盖率统计只具有累加的功能,因此不能查询每一测试用例执行后的覆盖率信息。在执行完所有的测试用例后会生成一个总的覆盖率文件,Testbed/TBrun通过对覆盖率文件的分析得出软件单元相应语句的覆盖情况,根据这些覆盖情况可以较快确定冗余的测试数据并增补遗漏的测试数据,从而指导新的测试用例设计。在实际应用Testbed单元测试时,需注意以下三个方面:(1)数组和指针类型的变量的输入。数组可以通过在Testbed/TBrun插装后的源代码中插入数组的初始化语句对数组赋值或者在 Testbed/TBrun 环境中对数

组的一部分赋值。因指针不能被直接赋一个地址,所以输入指针可采用映射的方式来赋值,将指针变量映射成相应的自定义变量,然后对自定义变量赋值。在测试执行的过程中,这个自定义变量的值就是指针的输入值。(2)被测单元代码的必要修改。在实际的测试过程中,有的代码单元不能直接使用Testbed/TBrun直接执行测试。须在分析之前对代码单元做少量修改。如Testbed/TBrun 插装源代码时会生成 main()函数,因此被测单元中的 main()函数要改为其他的名称以避免造成名字冲突;Testbed/TBrun 执行分析时会执行被测单元,因此被测单元中的 while(1)之类的死循环结构要去掉,否则分析将无法结束。(3)模块测试后显示最终整体覆盖率,不能查询每一测试用例执行后的覆盖率信息。

3 结语

Testbed有效地支持了测试人员的测试工作,相对于完全人工测试提高了测试效率。该工具仍存在不足,还需在实践中不断完善使用方法。

单元测试方法篇(10)

 <?XML:NAMESPACE PREFIX = O />

    (福建省上杭县湖洋中学  林华春)

    根据教育测量学的原理,语文单元过关考试是一种诊断性的水平考试,是以取得教学反馈信息、检查教学目标的达成度、促进学生学习积极性为目的的成绩考试。

    无论何种考试,都只是一种抽样测量。这是因为,测试的内容(如一个单元或一册课本)是十分丰富的,包含大量有测试价值的具体内容,每一具体内容又可以从不同角度以及不同难易度编制成许多测试题目,但是,由于一次测试的时间不可能过长,所以不可能完成从待测的内容中编出的全部问题(被测的总体),而只能从全部待测问题中选取部分内容(被测的样本)用于测试,从对样本的测试结果来推断总体的特征(即考生对被测总体的掌握情况)。这样,抽样的科学性、合理性、准确性,也就是试卷“效度”的控制,就成为编制试卷的关键。

    效度,是指考试结果的有效性,它是评价考试质量的一个基本指标,是对考试准确性程度的估计,也就是指实际所测的东西与所要测量的东西间的吻合程度。

    由于语文单元过关考试是一种诊断性的水平考试,目的在于检查学生对单元教学目标的达成度,检查学生学习中存在的问题及其原因,以便进行补偿性教学,因此,语文单元过关试卷编制中的效度控制是否得当就直接影响能否达到单元过关的根本目的。

    效度可分为内容效度、结构效度和效标效度,对于语文单元过关考试,我们着重应探讨的是内容效度。

    内容效度是指考试作为一种抽样测量,样本对总体的代表性如何,也就是一项考试能够测量出其所欲测量的内容及预期行为反应的程度。

    以语文单元过关考试为例来说,“所欲测量的内容”是指符合教学大纲要求的本单元的全部教材内容,“预期行为反应”是指教学大纲所要求的、学生学完这些教材后所产生的行为变化,也即行为目标,例如对单元内容的记忆、理解、应用、分析等目标,如果测试题目恰当地代表了教学大纲所规定的全部内容和所要求达到的行为目标,理解这份单元过关试卷就有较高的内容效度。要使单元过关试卷有较高的内容效度,必须采取如下措施:

    1.试题编制者必须明确单元教材内容和行为目标要求、划分单元双向细目表。

    作为试题编制者,必须对教学大纲和本单元教材全面掌握,明确教学大纲对该单元的内容和行为目标的具体教学要求,明确该单元的重点、难点所在,罗列出该单元的全部知识点(被测的总体),并按“识记、理解、应用、分析、综合、评价”这六个水平层次目标,将全部知识点进行分类。同时将学习内容与教学目标联系在一起,根据学习内容的复杂程度和教育目标的层次高低,列出该单元学习内容、教学目标的二维层次模型。根据二维层次模型,具体划分双向细目表。

    下面以义务教育教材初中语文第一册第一单元为例加以说明。本单元共四篇课文,《这不是一颗流星》(下称《这》)、《羚羊木雕》。(下称《羚》)、《北影》(下称《背》)和《短文二篇》。其双向细目可列表如下(表附后)。

    (附图  {图})

    2.试题必须是所界定的内容和行为目标范围内的代表性取样。

    所谓代表性取样,必须包括:

    ①知识覆盖面:

    命题的知识覆盖面是评估效度的一个主要环节,单元试卷能否在规定时间内测量出学生对所学的该单元知识的掌握的深广度,要参照教材及大纲规定的该单元的知识点的个数和命题中出现的知识点的个数的权数比值,权数越接近1,命题的知识覆盖面就越大,效度就越高。

    ②方法覆盖面:

    命题对测量学生在分析、综合、归纳、演绎、概括、抽象、类比等方法上的掌握程度,是考查能力的一个必要条件,对这一内容的评估要参照教材及大纲要求学生掌握方法点的个数及命题中出现方法点的个数的权数比值,权数越接近1,命题方法覆盖面就越大。

    ③重点覆盖面:

    命题作为从学生所学知识的总体中抽取具有代表性的样本,能否代表知识总体,重点内容的考查将是至关重要的问题,一般说来,大纲及教材规定的重点内容,都是培养能力的关键性内容,所以命题力求避免考查那些偏僻的非重点内容,而应着重考查教学重点。

上一篇: 登记合同 下一篇: 一问责八清理工作汇报
相关精选
相关期刊