嵌入式系统课程报告dragon嵌入式软件测试技术.docx

上传人:b****5 文档编号:7047695 上传时间:2023-01-16 格式:DOCX 页数:12 大小:255.21KB
下载 相关 举报
嵌入式系统课程报告dragon嵌入式软件测试技术.docx_第1页
第1页 / 共12页
嵌入式系统课程报告dragon嵌入式软件测试技术.docx_第2页
第2页 / 共12页
嵌入式系统课程报告dragon嵌入式软件测试技术.docx_第3页
第3页 / 共12页
嵌入式系统课程报告dragon嵌入式软件测试技术.docx_第4页
第4页 / 共12页
嵌入式系统课程报告dragon嵌入式软件测试技术.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

嵌入式系统课程报告dragon嵌入式软件测试技术.docx

《嵌入式系统课程报告dragon嵌入式软件测试技术.docx》由会员分享,可在线阅读,更多相关《嵌入式系统课程报告dragon嵌入式软件测试技术.docx(12页珍藏版)》请在冰豆网上搜索。

嵌入式系统课程报告dragon嵌入式软件测试技术.docx

嵌入式系统课程报告dragon嵌入式软件测试技术

高级软件工程课程报告

 

题目嵌入式软件测试技术研究

姓名程伟

学号21021064

学科、专业计算机技术

任课教师顾宗华

EMAILchengshiwei2006@

嵌入式软件测试技术研究

摘要:

本文首先从嵌入式软件的测试阶段、嵌入式软件的测试环境建立方法、嵌入式软件的测试策略以及嵌入式软件测试辅助工具三个方面简述了嵌入式软件的测试的相关理论,然后在理论的基础上,研究了嵌入式软件的覆盖测试技术以及嵌入式软件测试自动化技术,并且简单介绍了基于模型的嵌入式软件测试的现有典型方法。

引言

随着嵌入式技术的发展和计算机硬件技术的进步,硬件元件的集成度大大增加,从而使嵌入式设备的硬件性能得到了极大的提高。

与此同时,通过采用成熟的嵌入式操作系统,使系统可以在一个可靠、高性能的软件平台上运行。

诸多技术的飞速发展使得嵌入式系统复杂性大大的增加,需要功能强大、性能稳定的应用软件与之相适应,所以在嵌入式系统开发中,软件代码的质量对嵌入式系统的质量起到了决定性的作用。

另一方面,嵌入式系统及嵌入式软件的应用已经逐渐渗入到各行各业当中,尤其是在一些特种领域如航空航天、工业控制、交通、医疗和军事、汽车电子等领域。

这些领域对产品质量要求非常严格,由软件产生的任何微小的问题往往会对生命财产导致无可挽回的、致命的损失。

比如1963年,美国金星探测火箭控制系统程序中的一个极小的错误(即将逗号误写为一小数点),就造成了飞行失败,经济损失达1000万美元。

再者,1996年,欧洲耗资7亿美元的Ariane-5火箭发射后解体爆炸,时候发现其原因是惯性参考系统中的一个软件设计错误,由于认为这个软件不会发生错误而未对它进行充分的测试。

即使在安全要求不高的系统或应用中,软件错误或不可靠都有可能造成一定程度的损失和危害。

以上种种对嵌入式软件的质量和可靠性提出了较高的要求。

目前,从技术上将,解决嵌入式系统软件质量的途径很多,如研究适合嵌入式软件特点的软件开发新方法、研究适合实时嵌入式软件的质量度量方法和测试技术等,但笔者认为软件质量保证最有效最直接的方法是软件测试。

事实上,整个软件行业对软件测试都十分重视。

据研究机构统计分析表明,国外软件开发机构40%的时间是花在软件测试上,而软件测试费用也占开发总费用的30%~50%。

对于可靠性、安全性有较高要求的软件,测试费用可能更高。

要成功开发出高质量的软件产品,必须重视加强软件测试工作。

对于嵌入式软件来说,由于嵌入式系统的自身特点,如专用型、对硬件极强的依附性、实时性、内存有限性、可发工具昂贵等原因,使嵌入式软件的测试比一般软件的测试更加复杂,从而向已有的测试技术提出了新的要求。

当前对嵌入式软件的质量控制多停留在以硬件为主,软件为辅的阶段,随着越来越多的领域使用软件和微处理器控制各种嵌入式设备,提高测试的效率、减少测试的成本,对日益复杂的嵌入式软件进行有效测试方法的研究将具有重要的意义。

本文主要工作就是研究嵌入式软件的测试技术。

嵌入式软件测试概述

上文提到正是由于嵌入式系统的实时性、嵌入性、可靠性等特点,嵌入式系统软件不可避免地也继承了这些特点,在测试时必须考虑到这些特点。

因此,在进行嵌入式系统软件测试的过程中,除了要遵循普通软件测试原则,还应注意以下几点:

一是必须进行软件在硬件平台上的测试;二是在特定环境下的系统可靠性测试。

三是实时性测试。

嵌入式系统一般有实时性的要求,因此除了对嵌入式系统软件进行功能测试之外,还应对系统的实时性进行测试。

最后还包括其它测试,如内存测试、GUI测试等。

总之,在测试目的和原则上,嵌入式系统软件测试同普通软件测试有相似之处,但又在一定程度上高于普通软件测试。

下面从嵌入式软件测试阶段、嵌入式软件的测试环境以及嵌入式软件的测试策略等几方面来概述嵌入式软件测试。

2.1嵌入式软件测试阶段

嵌入式软件的测试按测试阶段可分为需求测试、设计测试、单元测试、集成测试、确认测试和系统测试,各个测试阶段之间关系如图1所示。

下面对图中主要的四个阶段分别进行论述。

图1测试阶段关系图

单元测试是对软件基本组成单元模块进行的测试,这里的基本单元模块指的是程序中的单个子程序或过程。

目的是检验每个单元能否正确地实现其功能,满足其性能和接口要求。

单元测试是处于模块层次的测试,针对编码产生的源代码结构。

它基于路径覆盖原理,目的是最大限度地检测出程序中的错误。

由于单元测试针对程序单元,而程序单元并不是一个独立可运行的程序,同时在对每个单元进行单元测试时,也不能完全忽视它们和周围模块的相互关系,为了模拟这一关系,为程序单元的执行构成一个完整的环境,需要添加驱

动模块用以模拟被测试单元的上层模块。

集成测试是指经过单元测试的模块按照软件的结构组合在一起,作为一个子系统来综合测试,因此集成测试又叫联合测试。

在所有单元都通过了单元测试后,各个单元都能正常工作,在把它们集成在一起,它们是否能够正常地工作,主要取决于模块问的接口,接口问题包括诸如数据通过接口时可能丢失,这个单元可能会破坏另一个单元的功能,全局数据结构问题。

确认测试又称为有效性测试。

它的主要任务是验证软件的正确性和有效性,即验证被测软件是否满足需求规格说明书列出的需求,验证软件的功能和性能及其他特性是否与用户的要求一致。

对软件的功能和性能要求在软件需求规格说明书中已经明确规定,它包含的信息就是软件确认测试的基础。

确认测试通常在模拟的环境下采用黑盒测试法进行。

系统测试是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的组装测试和确认测试。

系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方。

系统测试的测试用例应根据需求分析说明书来设计,并在实际使用环境下来运行。

2.2嵌入式软件测试环境

嵌入式软件与其他软件相比,具有专用性,它只能在需求所指定的硬件平台上运行。

嵌入式软件的开发环境和运行环境往往互相分离,即采用交叉开发的方式:

开发工具即编辑和编译软件运行在宿主机上,编译好的软件需要下载到目标机上,主机和目标机建立起通讯连接,并传输调试命令和数据,如图2所示。

由于主机和目标机往往运行着不同的操作系统,而且处理器的体系结构也彼此不同,这就提高了嵌入式软件开发的复杂性。

图2嵌入式软件交叉开发方式

上述嵌入式系统软件基于宿主机/目标机的开发模式,使得嵌入式系统软件的测试也分为宿主机环境测试和目标机环境测试,这也是嵌入式系统软件与普通软件测试不一样的地方。

此外,嵌入式系统在运行过程中,软件、硬件,以及外部设备之间交互频繁,嵌入式系统软件测试的环境与实际运行环境存在一定的差异,根据这种差异,嵌入式系统软件的测试环境分为以下三类[1]。

第一类是全实物仿真测试环境,包含硬件平台、嵌入式系统软件、物理设备,并建立起真实的连接,形成一种闭环进行测试。

这种测试环境完全采用实物,可以对被测程序的功能进行测试,能够真实反映软件的实际运行能力和与硬件匹配的能力,但构造全实物仿真测试环境的费用较高,且程序运行的中间信息难以提取,只能用于黑盒测试。

第二类是半实物仿真测试环境,主要是利用仿真模型来仿真被测系统的交联系统,而被测系统采用真实系统。

所有与被测系统有输入输出关系的设备以及它们之间的I/O接口所构成的硬件与软件的总和称为被测系统的系统。

测试环境需要对被测软件进行自动的、实时的、非侵入性的闭环测试,要求能够逼真地模拟被测软件运行所需的真实物理环境的输入输出,能够组织被测软件的输入来驱动被测软件运行,同时接收被测软件的输出结果。

第三类是全数字仿真测试环境是指用软件来仿真嵌入式系统软件运行的硬件平台和外围设备,如嵌入式微处理器、控制芯片、I/O、中断、时钟等,构造嵌入式系统软件运行所需的硬件环境。

这种方法的优点是信息的收集与处理较为方便,但这种测试平台通用性较差,且采用软件来模拟硬件的运行,与在实际环境中的运行将会存在差异。

2.3嵌入式软件测试策略研究

有效的测试策略对于嵌入式软件的测试来说是至关重要的。

目前可以讲嵌入式软件测试策略分为静态测试策略和动态测试策略。

嵌入式软件的静态测试与非嵌入式软件的静态测试相同,是指不运行软件程序,通过进行扫描分析,检查源程序的文法、结构、过程、接口等来检查程序的正确性,借以发现编写的程序的不足之处。

静态测试结果可用于进一步的查错,并为测试用例选取提供指导。

静态分析包括代码审查和静态分析两个部分。

代码审查的测试内容包括:

检查代码和设计的一致性、检查代码的逻辑表达的正确性、检查代码结构的合理性。

代码审查由程序准备、阅读、审查会、跟踪及报告4个步骤组成。

为了提高审查的效率,充分利用软件工具作为辅助是有效途径。

静态分析是一种对代码的机械性的、程序化的特性分析方法。

静态分析常需使用软件工具进行。

一般包括控制流分析、数据流分析、接口分析、表达式分析。

控制流分析是使用控制流程图系统地检查程序的控制结构的工作。

数据流分析是用控制流程图来分析数据发生的异常现象,这些异常包括被初始化、被赋值或被引用过程中行为序列的异常。

接口分析是程序静态分析以及设计分析共同研究的题目。

接口一致性的设计分析涉及模块之间接口的一致性以及模块与外部数据库之间的一致性。

对表达式进行分析,则可以发现和纠正在表达式中出现的错误。

与静态测试相反,动态测试运行被测代码,观察代码运行时所体现的功能、逻辑、行为、结构等。

嵌入式动态测试策略根据平台的不同分为:

数字仿真环境下嵌入式软件测试和host-target交叉测试策略。

数字仿真环境下嵌入式软件测试[2]指利用嵌入式软件仿真测试环境对嵌入式软件进行自动的、实时的、非侵入式的系统测试。

这类测试通常借助于嵌入式软件的通用测试环境进行。

目前这类通用化测试环境已经以产品的形式出现在市场上,而且得到了广泛的应用,例如北京奥吉通科技有限公司自制研发的CRESTS系列,德国TechS.A.T公司研发的ADS-2系统,北京航空航天大学研发的GESTE系统等。

利用仿真技术进行嵌入式软件的测试确实是一个有效地策略,但是仿真平台自身有很多的不利因素,如对于测试软件,可能会造成与开发者争夺时问的瓶颈,避免它只有提供更多的目标环境。

另外一种动态测试策略交叉测试可以解决这方面的问题。

由于嵌入式软件的开发模式就是交叉开发,这给交叉测试环境的建立带来便利。

将开发环境认为是主机平台,软件运行环境看作目标平台,那么相应的测试就称作host-target交叉测试。

Host-target测试策略的步骤如下:

(1)在主机环境中使用测试工具的插装功能执行静态测试分析,并且为动态覆盖测试准备好已插装的程序代码。

(2)利用程序代码在宿主机环境执行功能测试,修正程序中的错误和测试脚本中的错误。

(3)使用插装后的程序代码执行覆盖测试,添加测试用例和修正软件的错误,保证达到所要求的覆盖率目标。

(4)在目标环境下重复第2步,确认软件在目标环境中执行测试的正确性。

Host-target交叉测试是在嵌入式软件开发的所有阶段都通用的测试策略。

2.4嵌入式软件的测试工具

    测试工具对于软件测试直观重要,在软件测试过程中,使用合适的测试工具可以提高测试效率。

用于辅助嵌入式软件测试的工具很多,下面对几类比较有用的有关嵌入式软件的测试工具加以介绍和分析。

内存分析工具

    在嵌入式系统中,内存约束通常是有限的。

内存分析工具用来处理在动态内存分配中存在的缺陷。

当动态内存被错误地分配后,通常难以再现,可能导致的失效难以追踪,使用内存分析工具可以避免这类缺陷进入功能测试阶段。

目前有两类内存分析工具——软件和硬件的。

基于软件的内存分析工具可能会对代码的性能造成很大影响,从而严重影响实时操作;基于硬件的内存分析工具价格昂贵,而且只能在工具所限定的运行环境中使用。

性能分析工具

    在嵌入式系统中,程序的性能通常是非常重要的。

经常会有这样的要求,在特定时间内处理一个中断,或生成具有特定定时要求的一帧。

开发人面临的问题是决定应该对哪一部分代码进行优化来改进性能,常常会花大量的时间去优化那些对性能没有任何影响的代码。

性能分析工具会提供有关的数据,说明执行时间消耗的详细信息。

根据这些数据,确定哪些例程消耗部分执行时间,从而可以决定如何优化软件,获得更好的时间性能。

对于大多数应用来说,大部分执行时间用在相对少量的代码上,费时的代码估计占所有软件总量的5%-20%。

性能分析工具不仅能指出哪些例程花费时间,而且与调试工具联合使用可以引导开发人员查看需要优化的特定函数,性能分析工具还可以引导开发人员发现在系统调用中存在的错误以及程序结构上的缺陷。

GUI测试工具

    很多嵌入式应用带有某种形式的图形用户界面进行交互,有些系统性能测试是根据用户输入响应时间进行的。

GUI测试工具可以作为脚本工具有开发环境中运行测试用例,其功能包括对操作的记录和回放、抓取屏幕显示供以后分析和比较、设置和管理测试过程。

很多嵌入式设备没有GUI,但常常可以对嵌入式设备进行插装来运行GUI测试脚本,虽然这种方式可能要求对被测代码进行更改,但是节省了功能测试和回归测试的时间。

覆盖分析工具

    在进行白盒测试时,可以使用代码覆盖分析工具追踪哪些代码被执行过。

分析过程可以通过插装来完成,插装可以是在测试环境中嵌入硬件,也可以是在可执行代码中加入软件,也可以是二者相结合。

测试人员对结果数据加以总结,确定哪些代码被执行过,哪些代码被遗漏了。

覆盖分析工具一般会提供有关功能覆盖、分支覆盖、条件覆盖的信息。

对于嵌入式软件来说,代码覆盖分析工具可能侵入代码的执行,影响实时代码的运行过程。

基于硬件的代码覆盖分析工具的侵入程度要小一些,但是价格一般比较昂贵,而且限制被测代码的数量。

3嵌入式软件测试技术研究

上文从理论上研究了嵌入式软件的一般测试阶段、测试环境以及常用的整体测试策略。

本节具体研究嵌入式软件的测试技术。

3.1嵌入式软件的覆盖测试技术

无论是非嵌入式软件还是嵌入式软件,测试覆盖都是对测试完全程度的评测,它建立在覆盖测试基础上,因此覆盖测试同样也可以应用于嵌入式软件的测试中。

测试覆盖是由测试需求和测试用例的覆盖或已执行代码的覆盖表示的。

测试覆盖包括测试计划和测试用例的覆盖和代码执行的覆盖。

覆盖属于白盒测试技术范畴,以程序的内部结构为基础,进行设计测试用例。

图3列出5种典型的覆盖策略。

从图中可以看到,覆盖测试的目的就是让软件的所有代码都被执行过至少一次,力争在测试过程中发现那些隐藏的漏洞,从一定程度上确保软件的可靠性。

覆盖测试一般采用覆盖率为标准,覆盖率是用来度量测试完整性的一个手段。

被测代码的覆盖率越高,则我们认为测试所达到的目的越好。

足够高的覆盖率可以提高软件的可靠性。

覆盖率代表测试过程中被执行的程序的百分比。

图3常用覆盖策略

一般用于代码覆盖率分析的技术为软件插装技术,其原理是,根据程序流程结构在程序

的特征点即函数入口、出口和程序分支插装代码,然后编译执行,执行的过程中,插装代码将执行历史数据写入到本地文件中形成历史文件,通过对这个历史文件进行分析,从而得到代码覆盖率。

嵌入式软件覆盖测试技术与一般的软件覆盖测试本质是一样的,但它还具有三个嵌入式覆盖测试所特有的三个方面:

在目标机上,应用任务与专门负责收集/上传覆盖信息的任务是通过消息队列来传递数据的,该消息队列可使用嵌入式操作系统的相应机制实现。

收集/上传覆盖信息任务必须有嵌入式操作系统的支持,因为任务管理是后者的基本功能之一。

目标机与宿主机之间的通讯可以采用串口或以太网方式,对串口的驱动或网络协议均可使用嵌入式操作系统的相应程序组件。

嵌入式软件覆盖测试的原理图如图4所示。

图4嵌入式软件覆盖测试技术原理图

3.2嵌入式软件的自动化测试技术

目前对于传统的软件测试可以通过利用有效的功能强大的测试工具来进行,使软件测试自动化。

然而,对于嵌入式软件的测试却很难利用通用的测试工具进行自动化测试。

虽然目前也存在一些可用于嵌入式软件测试的工具,但由于高额费用和其操作的复杂性,使得嵌入式软件测试变的困难。

如果要想对嵌入式软件进行完整的测试可能就需要花费大量的人力、物力和财力。

嵌入式软件测试自动化工具能够取代嵌入式软件测试过程中的手工劳动,降低测试工作中带来复杂性,尽可能的将自动化技术在测试过程中的作用最大化。

在当前嵌入式软件测试工具中能够实现自动化功能比较稀少,主要是因为嵌入式软件测试更多的依赖于硬件,嵌入式软件测试自动化工具设计起来比较复杂,费用比较高。

嵌入式软件测试自动化工具是基于嵌入式软件测试自动化技术基础上设计的,优秀的嵌入式软件测试自动化工具一定是以完善的嵌入式软件测试自动化技术为基础。

本节主要讨论嵌入式软件自动化测试技术相关问题。

嵌入式软件测试自动化过程模型研究

嵌入式软件测试自动化模型按照功能可分为测试驱动自动化、数据操作自动化和测试报告成生自动化。

下面分别地介绍这三种自动化模型。

测试驱动指的是在测试环境下,数据的驱动测试。

为了覆盖到尽可能多的测试区域,测试人员要使用不同的大量的数据来完成测试工程中的交互。

当测试过程中录制完脚本后,只是获得录制时输入的数据脚本,但当程序发生变化时,可能这些数据可能使修改后的程序出现错误。

而数据驱动的自动化可以产生不同的数据输入来测试程序,确保程序在各种输入情况都能考虑到,避免了因为被测试的程序发生变化而导致测试的出错。

这里的方法是把数据从脚本分离出来,从外部存储单元里读入数据,例如从一个文件或数据库中读取,这样分离不但能够使得测试的逻辑变的简单,而且实现了自动化的功能。

其原理图如图5所示。

由图可知测试驱动程序在测试过程中起着选择输入数据和测试用例的功能,实现代替人工选择的工作,完成驱动自动化的功能。

图5嵌入式软件测试驱动自动化原理

测试数据生成的自动化[3]是嵌入式软件自动化测试技术中重要的一环。

在做任何测试工作的时候,都离不开测试数据,测试过程中需要往数据库里填写大量不同的测试数据以实现系统在大量数据下运行情况的测试,而这些操作如果仅仅靠人工来实现,是一种非常落后的手段。

测试数据的自动生成将有效地减轻劳动强度,降低开发成本,拓展测试人员的能力,在许多测试领域发挥着不可替代的作用。

提高测试的效率和质量,数据操作自动化就是能够帮助测试人员自动牛成数据库表中的测试数据。

在设计数据操作自动化的过程中需要解决如下的几个问题:

如何组合数据,来保证测试数据的覆盖;如何来设置测试数据的优先级问题;如何使得数据之间产生互斥关系;如何设置数据间的逻辑关系。

在测试工作完成后,测试工作人员需要提供一份详细的测试报告。

测试报告是把测试的过程和结果写成文档,并对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。

软件测试报告根据测试功能的不同而有很多的类型,如:

单元测试、集成测试、功能测试、性能测试和压力测试等测试报告。

在报告内容中要体现出已经执行或未执行的用例数目,用例通过的百分比,未执行的测试用例,必须写明不能执行的原因,不同类型的人,递交不同版本的测试报告,有时候还需要用测试图表反映出测试的性能等等。

对于测试报告中的数据,基本上都是在被测试的过程中产生出来的,因此,

实现测试报告生成自动化机制非常方便,我们只需要在程序被测过程中测试工具提供相应的接口,用文档或者页面将数据信息显示出来,嵌入式测试工具CRESTS在执行测试工作过程,生成类似Logiscope的超文本(包括静态分析和动态测试结果与统计等信息与链接)的测试报告。

基于脚本的自动化测试技术

脚本技术是实现嵌入式软件测试自动化的有效手段。

在嵌入式软件测试中,使用脚本技术,可以大大提高测试的效率。

脚本实际上可以看作一系列命令的集合。

测试脚本中的这些命令可以组成一个测试用例执行的全过程。

脚本的实现通常有两种手段:

一种是借助于工具录制脚本,另一种是手工编写脚本。

借助工具来录制生成脚本一般包含录制测试过程成为自动化测试脚本、增强和改进录制的自动化测试脚本、执行自动化测试脚本完成自动化测试三个步骤。

第一个步骤是根据测试用例录制测试活动的过程。

当测试人员在被测试的应用程序中进行测试的活动时,自动化测试工具将捕获测试人员与应用程序之间的所有交互,并根据这些交互生成可重用的测试脚本。

测试人员在这个阶段需要考虑的首个关键问题就是,使用的测试工具是否有能力在应用程序的环境中捕获所有与应用程序的交互。

此外,与测试应用有关的所有环境也是考虑的因素。

第二个步骤是增强和改进已录制的测试脚本。

对录制好的脚本代码进行适当的需改。

当录制一个脚本时,自动化测试工具将记录输入的所有数据。

第三个步骤是执行自动化测试脚本完成自动化测试。

执行单个或者少量的测试脚本是十分简单的,但是当回归测试不断的增加时,情况就变得复杂多了。

需要注意协调测试脚本之间的关系,并能够从多台机器上按照多种配置来执行测试脚本。

当工具录制脚本满足不了测试需要时,可以通过手工编写的方式生成脚本。

有很多功能强大的脚本语言支持脚本编程,如Perl、Python、tel,这些脚本语言的应用技术可以参考很多资科来获得,这里不作多述。

一种嵌入式软件结构化测试数据的自动生成技术[4]

嵌入式软件的测试数据可以通过自动生成技术来生成数据。

JoachimWegener,KerstinBuhr,HartmutPohlheim等人提出了一种基于Evolutionary测试技术的数据自动生成技术,将这种技术用于嵌入式软件的测试中,可以实现测试用例的自动生成。

该方法的具体细节可参见。

3.3基于模型的嵌入式软件测试技术[5]

随着国内外对嵌入式软件测试的重视,越来越多的嵌入式软件测试技术和方法应运而生。

除了上文介绍的两种方法外,目前还存在这多种嵌入式软件测试技术和框架,本文不再一一详细介绍。

下面再概要介绍一类重要的嵌入式软件测试方法——基于模型的测试技术。

基于模型的嵌入式软件测试方法。

软件模型是对软件行为和软件结构的抽象描述。

基于模型的软件测试是指通过系统需求和功能说明的模型自动生成有效的测试程序和测试向量。

基于模型的软件测试属于基于规则的软件测试范畴,其特点是在产生测试用例和进行测试结果评价时,都是根据被测试应用程序的模型及其派生模型进行的。

目前基于模型的测试技术在嵌入式软件测试中越来越受重视。

如图6所示的是基于模型的测试技术的一般流程[6]。

目前主要有基于UML模型的嵌入式软件测试策略、基于场景模型的测试技术、基于V模型以及改进V模型的测试技术[7]等。

图6基于模型的测试(本图来自[6])

另外,基于模型的嵌入式软件测试可以通过一些工具进行,UPPAAL-TRON就是一个新的可用于进行基于模型的测试的工具[8-10]。

该工具结合时间自动机理论,主要用于对嵌入式实时系统的软件在线进行基于黑盒的一致性测试(基于模型),具体技术细节可参考[8-10].

4总结与展望

本报告主要工作包括两方面:

概述了嵌入式软件测试的相关理论,包括嵌入式软件的测试阶段、嵌入式软件的测试环境建立方法、嵌入式软件的测试策略以及嵌入式软件测试辅助工具四个方面。

理论阐述的基础上,简单研究了几种嵌入式软件测试的具体技术,包括覆盖测试技术、嵌入式软件测试自动化技术、基于模型的嵌入式软件测试技术。

总体来说,本文属于介绍性质,对于各种测试技术细节涉及不多,对嵌入式软件测试的研究起引导综述作用,这也是本文的局限之一。

未来的工作可以在本文的基础上,深入研究涉及的各种嵌入式软件测试技术以及具体的应用实例,特别是基于模

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1