嵌入式软件自动化单元测试研究及应用

合集下载

嵌入式软件测试方法详解

嵌入式软件测试方法详解

嵌入式软件测试方法详解嵌入式软件测试是指针对嵌入式系统中的软件进行测试的过程。

嵌入式系统是指集成了软件和硬件的复杂系统,这些系统通常嵌入在一些设备中,如手机、汽车、电视等。

为了确保嵌入式系统的正常运行和稳定性,嵌入式软件测试变得极其重要。

本文将详细介绍嵌入式软件测试的方法。

一、静态测试方法静态测试方法是在嵌入式软件开发的早期阶段就进行的测试方法。

它主要通过代码审查和静态分析来发现潜在的问题和错误。

代码审查是指通过人工检查代码的规范性、可读性和实现逻辑等方面的错误和问题。

静态分析是指使用工具对代码进行扫描,以发现潜在的问题和错误。

静态测试方法可以帮助开发人员在开发的早期阶段就发现并修复问题,从而减少后期测试阶段的工作量。

二、单元测试方法单元测试方法是对嵌入式软件中的各个模块进行独立测试的方法。

它通常是使用白盒测试技术,开发人员可以直接查看代码并编写测试用例。

单元测试旨在检查模块是否按照预期执行,并验证其输出是否正确。

单元测试方法可以帮助开发人员在开发过程中对每个模块进行细致的测试,以确保其功能的正确性和稳定性。

三、集成测试方法集成测试方法是对嵌入式软件的各个模块进行整合测试的方法。

在嵌入式系统中,各个模块通常是独立开发的,集成测试旨在测试模块之间的接口和交互是否正常。

通过集成测试,可以发现并解决模块之间的兼容性问题、数据传输问题以及接口交互问题。

集成测试可以确保整个系统的功能正常运行,并保证各个模块之间的协调性。

四、系统测试方法系统测试方法是对整个嵌入式系统进行测试的方法。

系统测试旨在验证系统是否满足需求规格说明书中的要求,并检查系统在不同环境下的性能和稳定性。

系统测试一般包括功能测试、性能测试、兼容性测试、安全性测试等多个方面。

通过系统测试,可以发现并修复系统中的问题,确保系统的完整性和可靠性。

五、回归测试方法回归测试方法是在系统发生变更后对系统进行重新测试的方法。

嵌入式软件开发过程中,经常需要对系统进行改进和升级,回归测试旨在验证系统的改动是否对原有功能和模块产生了影响。

浅谈Testbed在嵌入式软件单元测试的应用

浅谈Testbed在嵌入式软件单元测试的应用

浅谈Testbed在嵌入式软件单元测试的应用嵌入式软件作为嵌入式系统的重要组成部分,嵌入式软件质量问题可能会带来设备的损坏和人员的伤亡,因而用户对其质量有较高的要求。

软件测试是对软件质量检验的一个非常重要的手段。

而软件测试中动态测试最基础的测试就是单元测试。

如何开展单元测试以及如何提高单元测试的效率是一个值得研究的问题。

1 软件单元测试的要求及重点软件单元测试是对软件基本组成单元进行测试,测试软件单元是否正确地实现规定的功能,是否满足软件性能和接口要求。

并验证程序与详细设计说明的一致性。

因此在单元测试时,需要模拟被测单元与其他模块之间的交互,开发驱动模块和桩模块两种辅助模块,构建一个可执行的环境,驱动模块用于模拟被测单元的上层模块,测试执行时由驱动模块调用被测单元使其运行;桩模块用于模拟被测单元在执行过程中所调用的模块。

单元测试重点考虑的测试类型有:(1)接口测试。

接口测试主要检查实参与形参的数目是否相等、实参与形参的属性是否匹配、实参与形参的单位是否一致、传到被调用模块的实参的属性是否与形参的属性匹配、是否把常量当作变量传递等内容。

(2)功能测试。

功能测试主要是对照软件单元的设计说明,验证软件是否完成了所需的功能。

(3)重要执行路径测试。

应设计测试用例以发现错误的计算、不正确的比较和不正常的控制流向等错误。

在计算中比较常见的错误是:误解或错误处理算术运算的优先次序、混用不同类的操作、计算精度不够等。

另外在控制软件执行流程的比较操作中比较常见的错误有:不同数据类型的比较、不正确的逻辑操作符或不正确的优先次序、因精度不够使本应相等的数不相等(如浮点数)等。

(4)软件单元的局部数据结构测试。

软件单元的局部数据结构是一个主要的错误来源,应设计测试用例来发现不正确的或不一致的数据说明、初始化有错或没有赋初值、不正确的变量名、不一致的数据类型、上溢/下溢或引用错误等类型的错误。

(5)错误处理路径测试。

一般软件错误处理路径测试应考虑下面几种可能的错误:对错误的描述不易理解、指出的错误并不是所遇到的错误、出错时还没有进行出错处理就先进行系统干预、错误边界条件的处理不正确、描述错误的信息不正确从而不足以确定出错的原因等。

关于嵌入式软件测试的研究

关于嵌入式软件测试的研究

关于嵌入式软件测试的研究作者:滕昭跃来源:《科学与财富》2016年第12期摘要:随着近些年嵌入式软件技术的迅猛发展,为了确保这一软件技术的质量,有必要测试嵌入式软件,本文在此背景下,阐述嵌入式软件测试的概念、环境、策略、特征,可以为测试嵌入式软件提供一定参考。

关键词:嵌入式;软件技术;测试1 嵌入式软件测试基本情况1.1 嵌入式软件测试概念界定为了对嵌入式软件测试进行分析,首先则是应该对其概念了解,基于概念这一层面,可以将嵌入式软件测试看成是交叉测试,不管是嵌入式软件测试还是非嵌入式软件,往往目的都会相同。

硬件在设计嵌入式系统当中逐步被软件替代,为了降低系统成本与增加灵活性,应该通过性能更佳的测试工具与方法测试嵌入式与实时软件[1]。

为确保嵌入式系统作用的发挥,在这里应该让其可靠性存在十分高的要求。

从安全性这一层面进行分析,昂嵌入式系统安全性失效,可能引发十分严重后果。

这就应该严格验证、确认、测试嵌入式软件。

1.2 嵌入式软件测试特征根据对嵌入式软件测试进行分析,其主要存在以下特征:一是嵌入式软件测试实施相应的运行则必须应该立足于相应的某种特定硬件环境当中;二是应该为嵌入式软件所具备的实时性要求提供必要的保证;三是在实施嵌入式软件测试环节当中除了应该做好性能测试之外,还必须测试GUI与覆盖分析,运行嵌入式软件并不应该出现泄漏,应该测试嵌入式软件内存;四是嵌入式产品可以将全部功能满足的过程当中,测试最终目的就是可靠安全运行,这就必须实施产品测试[2]。

2 嵌入式软件测试环境分析2.1 仿真测试环境一是全实物。

被测软件处于这样的绝对真实的仿真测试环境下运行,测试就是直接把整个系统与交联物理设备相助建立真实链接而逐步形成闭环[3]。

其侧重点是测试被测系统和别的设备接口,相对来说拥有比较低的测试环境要求。

二是半实物。

仿真测试的半实物环节则是指凭借着充分有效利用所建立的仿真模型来仿真被测系统交联系统,在这一过程当中,需要值得重点关注的问题是,被测系统则是处于真实性的环境当中。

电子电器产品嵌入式软件单元测试技术研究

电子电器产品嵌入式软件单元测试技术研究

试工具 R T R T( R a t i o n a l T e s t R e a l T i me ) 的 分 析及 利 用 R T R T进 行 实 际 电 器 产 品 软 件 单 元 测 试 的 试 验 , 结果表明 R T R T是

个 可 以有 效 得 应 用 于 电子 电 器产 品 嵌 入 式 软 件 开 发 和 测 试 阶段 的 自动 化 测 试 工 具 , 利用 R T R T进 行 软 件 单 元 测 试 可 以
t o ol an d t e t i qg on t he a c t u al el ec t r i c al pr o du ct s wi t h RTRT, i t sh o ws t h at RTRT ca n e f f ec t i v e l y be ap pl i ed t o embe dde d s of t war e de v el opmen t an d t e s t i ng ph as e s o f el ec t r i c al a nd el e ct r o ni c pr o duc t s So f t wa r e u ni t t e s t i n g by R TRT ca n r e du ce t e s t i n g e f f or t , s pe e d up t h e pr ogr e ss of t h e t e s t an d i mpr o v e s of t war e t e s t i n g qu al i t y. Ke y wo r d s: e l e c t r i c al an d el ec t r o ni c, e m be dded s of t wa r e, u ni t t e s t i n g. Ra t i o na l Te s t Re al Ti me

嵌入式软件单元测试方法研究

嵌入式软件单元测试方法研究

嵌入式软件单元测试方法研究作者:刘佳杨永文李金华来源:《软件工程》2019年第08期摘; 要:嵌入式软件通常采用交叉开发的方式,尽早进行软件测试可以及时发现软件开发初期的不足。

单元测试是嵌入式软件开发过程中最基础级别的测试活动。

本文对嵌入式软件的单元测试进行了分析,主要包括测试工具的选择、测试内容的梳理和测试过程的优化,重点阐述了注意事项及原则。

通过总结分析,提出了适宜操作的嵌入式软件单元测试方法。

实践证明,该方法大大提高了软件测试水平和软件产品代码的质量。

关键词:测试计划;单元测试;测试过程;嵌入式软件中图分类号:TP311.5; ; ;文献标识码:AAbstract:As the cross-development method is usually applied for embedded software,software testing is conducted early,so as to promptly find out the defects and problems at the early stage of software development.Unit testing is the basic testing in the process of embedded software development.This paper analyses embedded software unit testing,including the choice of testing tools,the analysis of testing content and the optimization of testing process,mainly describing the notes and principles.Through the comprehensive summary and analysis,the paper proposes an easy-to-operate and suitable unit testing method for embedded software.Practice indicates that this method greatly improves the level of software testing and software product quality.Keywords:testing plan;unit testing;testing process;embedded software1; ;引言(Introduction)由于嵌入式软件运行在嵌入式计算机系统中,且实时性强。

嵌入式软件测试技术与实践

嵌入式软件测试技术与实践

嵌入式软件测试技术与实践嵌入式软件在现代社会中应用广泛,其对各行各业的重要性不言而喻。

随着嵌入式软件的复杂性不断增加,对其质量的要求也越来越高。

而软件测试作为保障软件质量的重要环节,对于嵌入式软件来说更是至关重要。

本文将介绍嵌入式软件测试的相关技术与实践,旨在提供一些有效的方法和策略。

一、嵌入式软件测试的特点嵌入式软件是集成于其他硬件设备中的软件,其测试具有以下特点:1. 硬件依赖性:嵌入式软件与特定的硬件设备密切相关,测试过程需要考虑硬件和软件之间的交互关系。

2. 实时性要求高:许多嵌入式系统需要实时响应,对软件测试的时效性和准确性提出了更高的要求。

3. 系统复杂性高:嵌入式软件通常包含多个模块和子系统,测试过程需要充分考虑系统整体的一致性和稳定性。

二、嵌入式软件测试的方法与技术1. 黑盒测试:黑盒测试是基于需求规格说明书进行测试,关注软件的功能和输入输出的关系。

在嵌入式软件测试中,黑盒测试可以验证软件的功能是否符合需求,并检测潜在的错误和异常情况。

2. 白盒测试:白盒测试是基于软件内部结构的测试方法,通过分析代码和执行路径来验证软件的正确性。

在嵌入式软件测试中,白盒测试可以对软件的逻辑和数据流进行测试,发现隐藏的错误和漏洞。

3. 单元测试:单元测试是对软件中最小单元的功能进行测试,通常以函数或模块为单位进行测试。

嵌入式软件中,单元测试可以确保每个功能模块的正确性,并在集成测试之前排除单元级的错误。

4. 集成测试:集成测试是将已测试通过的单元模块进行组合,进行功能和接口的集成测试。

通过集成测试,可以验证不同模块之间的交互是否正常,确保整个系统的一致性和稳定性。

5. 性能测试:性能测试是针对嵌入式软件的运行效率和资源消耗进行测试。

通过性能测试,可以评估嵌入式软件在不同负载条件下的稳定性和响应能力。

三、嵌入式软件测试的实践策略1. 设立清晰的测试目标和需求:在进行嵌入式软件测试之前,需要明确测试的目标和需求,包括功能需求、性能需求等。

嵌入式系统的调试与测试技术研究

嵌入式系统的调试与测试技术研究

嵌入式系统的调试与测试技术研究嵌入式系统是一种高度集成的各种硬件和软件系统,其应用范围广泛,包括汽车、医疗设备、航空航天、工业自动化等领域。

嵌入式系统的调试和测试是确保系统可靠性和稳定性的重要步骤。

本文将从嵌入式系统的调试和测试技术入手,深入探讨如何提高嵌入式系统的可靠性和稳定性。

一、嵌入式系统的调试和测试方法嵌入式系统的调试和测试在整个系统开发过程中起着至关重要的作用。

常见的嵌入式系统调试和测试方法包括:仿真测试、单元测试、集成测试、验收测试等。

其中,仿真测试是利用仿真器或者模拟器对嵌入式系统进行各种测试,可以帮助开发人员在没有实际硬件的情况下快速进行开发和调试;单元测试是对嵌入式系统中的各个模块进行测试,确保每个模块的功能正确性;集成测试是对整个系统进行测试,确保各个模块之间的协同工作正常;验收测试是为了验证开发的系统是否符合客户的需求和要求。

二、硬件调试测试技术硬件调试测试技术是指对嵌入式系统硬件进行测试和调试,主要包括CPU分析器、电路分析仪、万用表、示波器等设备。

在进行硬件调试时,一般首先要进行硬件电路图的设计和分析,确保电路图的正确性和稳定性。

其次,要对板子进行功率测试、时钟测试、引脚测试等测试,保证板子的正常工作。

最后,要进行连通性测试,确保各个模块之间的连接正常。

三、软件调试测试技术软件调试测试技术是指对嵌入式系统软件进行测试和调试,主要包括GDB调试、Trace调试、代码覆盖率测试、文本比对测试等技术。

在进行软件调试时,一般首先要对软件进行静态分析和代码审查,发现潜在的错误和问题。

其次,要利用GDB调试器进行调试,对函数的输入、输出进行跟踪和观察。

最后,要进行文本比对测试,确保程序输出结果的正确性和稳定性。

四、嵌入式系统测试工具嵌入式系统测试工具是指针对嵌入式系统进行测试和调试的软件工具,包括MBIST、JTAG debugger、FileScope、Coverity等工具。

MBIST是一种存储器内置自检工具,可以帮助开发人员快速发现存储器中的问题。

嵌入式软件测试方法

嵌入式软件测试方法

嵌入式软件测试方法嵌入式软件测试方法是针对嵌入式系统开发的软件测试方法。

嵌入式系统是指嵌入在各种设备中的计算机系统,如智能手机、家庭电器、汽车、医疗设备等。

嵌入式软件测试的目标是确保嵌入式系统的软件质量和可靠性。

以下是常用的嵌入式软件测试方法:1.静态分析:静态分析是一种基于源代码或二进制代码的分析方法,用于检查代码中的错误和潜在的问题。

它通常包括代码审查、代码规范和代码耦合分析等。

静态分析可以在开发早期识别问题,并且可以帮助改进代码质量。

2.单元测试:单元测试是针对软件模块或功能的测试方法。

在嵌入式系统中,软件通常被分为多个模块,每个模块都有其特定的功能。

单元测试通过对每个模块进行测试,以确保它们按照预期运行。

单元测试可以使用各种测试技术,如白盒测试和黑盒测试。

3.集成测试:集成测试是将不同的模块或功能组合在一起进行测试的方法。

在嵌入式系统中,不同的模块通常需要相互协作才能实现系统的功能。

集成测试通过模拟实际的运行环境,测试模块之间的接口和交互,确保整个系统按照预期工作。

4.验收测试:验收测试是在开发完成后对整个系统进行的一系列测试。

验收测试的目标是确认系统是否符合用户需求和规格说明。

它通常由系统开发人员和最终用户共同进行,以确保系统的功能和性能满足用户的期望。

5.性能测试:性能测试是评估系统在不同负载条件下的性能和响应时间的方法。

在嵌入式系统中,性能测试可以用来评估系统的运行速度、内存使用情况和功耗等。

性能测试可以通过模拟实际的使用情况或使用工具和设备进行。

6.可靠性测试:可靠性测试是评估系统在长时间运行中的稳定性和可靠性的方法。

在嵌入式系统中,可靠性测试可以通过模拟不同的环境和使用条件,以确保系统在各种情况下都能正常工作。

7.安全测试:安全测试是评估系统的安全性和防护措施的方法。

嵌入式系统通常需要保护用户的隐私和数据安全。

安全测试可以通过模拟攻击、检查系统的漏洞和弱点等方式进行。

总的来说,嵌入式软件测试方法是多样的,旨在保证嵌入式系统的软件质量和可靠性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式软件自动化单元测试研究及应用发表时间:2016-06-17T15:56:58.160Z 来源:《电力设备》2016年第5期作者:屠小兵刘杰陆继翔[导读] 嵌入式软件的单元测试是嵌入式软件质量控制的重要技术手段之一,是软件研发过程中不可或缺的环节[1]。

(国电南瑞科技股份有限公司江苏省南京市 210061)摘要:本文研究了一种嵌入式软件自动化单元测试技术,提出了面向嵌入式软件的单元测试框架CppUTest,结合Jenkins(用Java编写的一种开源的持续集成工具),以ARP嵌入式软件平台为例,设计适用于ARP嵌入式软件平台开发的自动化单元测试技术,并验证在项目研发过程中应用的实际效果。

关键词:ARP嵌入式软件平台;自动化单元测试;CppUTest;Jenkins; Abstract:In this paper, an automated unit testing technology of embedded software was studied. It proposed a kind of unit testing framework called CppUTest for embedded software. It combined Jenkins (an open source continuous integration tool written in Java) and used ARP embedded software platform as an example, designed a kind of automated unit testing techniques for ARP embedded software development platform, and verified the actual effect in applications of the project development process. Keywords:ARP embedded software platform; automated unit testing; CppUTest; Jenkins;引言嵌入式软件的单元测试是嵌入式软件质量控制的重要技术手段之一,是软件研发过程中不可或缺的环节[1]。

单元测试在软件开发的前期就已经介入,它是软件测试的基础。

如果做好了单元测试,后期的集成测试和系统测试就很顺利,因此会节约很多时间和成本。

另外,在单元测试过程中,往往能发现一些深层次的问题,有些问题在集成测试和系统测试时很难发现。

所以单元测试是构筑产品质量的基石。

由于嵌入式软件具有较高的复杂程度,传统的手工开发方式已经远远不能满足系统测试工作的要求和发展,这就使得自动化测试应运而生。

自动化测试的出现改革了传统的手工模式,使得测试工作进入自动化的高速发展时代。

项目的测试工作是一项工作量及其繁重的任务,手工测试不仅劳动密集程度过大,错误率也很高。

而自动化测试的出现,弥补了这些缺陷,其优势是显而易见的,能够提高测试的准确率,从而极大地提高测试的效率。

新一代智能变电站建设以“系统高度集成、结构布局合理、技术装备先进、经济节能环保,支持调控一体”为特征,通过电网运行数据的全面采集和实时共享,支撑电网实时控制和智能调节,提升电网运行稳定性和可靠性。

因此,顺应智能电网和智能变电站的发展和建设需求,在目前公司ARP系列产品的基础上,开发高质量的变电站设备,对于后续抢先占领市场,非常关键。

这些设备有硬件和运行在设备上的嵌入式软件组成,因此,不仅要提高硬件的质量,也要提高嵌入式软件的质量。

为了满足嵌入式软件提高质量的需求,文中设计了一种适用于嵌入式软件的自动化单元测试技术,它不仅可以提高测试效率,而且使测试更充分、更精细,为嵌入式软件的质量保障提供更好的支撑。

1自动化单元测试框架设计1.1 自动化单元测试概述从软件开发领域,单元测试并不是一个新概念。

从早期使用Smalltalk编程语言的20世纪70年代开始,单元测试就已经出现,并一次又一次被证明是开发人员提高代码质量,加深理解类或方法功能需求的最佳手段之一[2]。

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证[3]。

单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。

通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。

自动化单元测试是借助于测试工具和测试规范,局部或全部代替人工进行单元测试及提高测试效率的过程。

对于测试工具的选择,需要评估究竟该选择哪种工具才能获得最佳测试结果。

在软件测试过程中,并不是所有的测试工作都适合采用自动化的方式。

由于单元测试用于检测代码的内部结构,因此单元测试的自动化将有效地提高软件开发的效率和软件的质量。

1.2 自动化单元测试框架在ARP嵌入式软件平台开发过程中,项目采用CppUTest作为白盒测试框架,编写自动化单元测试用例,并集成到Jenkins上进行编译和运行,并生成自动化测试报告和覆盖率报告。

CppUTest 是一个功能全面的测试框架,是为了支持在多种操作系统上开发嵌入式软件而特别设计的程序[4]。

它提供了基于JUnit的Jenkins的插件,能很好地集成到Jenkin集成服务器。

它利用宏和断语为特定的测试用例定义了一个可执行的测试。

它接受用户指定的测试用例名(一般取被测对象名)和测试名作为参数,并给出了一个作用域供填充测试宏语句和普通的C++代码。

一系列测试的集合就构成一个简单的测试程序。

同时它还提供对测试集合的配置,已满足不同规模测试的要求。

以往的单元测试,主要是借助测试工具,可以根据设计好的测试用例生成驱动函数,对被测函数进行打桩,插入被测程序,然后编译执行,并收集结果数据进行分析。

文中以ARP嵌入式软件平台为例,提出的自动化单元测试与以往不同,它的关键在于自动化,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量。

自动化单元测试是通过在持续集成工具Jenkins上配置脚本命令,持续构建包括:源码版本自动更新、自动编译与运行、测试结果自动分析与报告生成、以及单元测试的覆盖率分析等任务,实现单元测试的高度自动化[5]。

嵌入式软件自动化单元测试总体框架如图1所示:图1 自动化单元测试总体框架2 自动化单元测试项目实践2.1 自动化单元测试环境搭建在ARP嵌入式软件平台自动化单元测试中,目标机的操作系统是Ubuntu,编译环境是与操作系统版本对应的GCC和G++。

利用目标机编译和运行ARP嵌入式软件平台的源程序模块和单元测试程序模块,安装单元测试框架CppUTest,同时安装tomcat和Jenkins,用来部署自动化单元测试的持续构建。

从UCM Clearcase版本服务器上更新最新的源码到目标机上,选择被测程序模块,对问题函数编写单元测试用例,并对被测程序进行插桩,在目标机上完成编译、链接并运行,运行结果通过Jenkins上的JUnit插件,解析成测试报告,从而得到测试结论。

图2-1 源码版本库自动更新2.2源码版本库自动更新为了使自动化单元测试需对嵌入式软件源码实时进行测试,为保证目标机源码实时更新,配置源码版本库自动更新功能。

在Jenkins上构建源码代码版本库管理任务,实时监测版本变化功能,一旦发现版本变化,便触发版本管理工具更新源码,并记录下版本变化情况。

如图2-1、2-2所示:图2-2 源码版本变化监测2.3单元测试的代码结构设计考虑到单元测试过程中,需要对源码进行打桩,因此在代码结构上将测试代码与源码隔开,测试代码目录为源码子目录,这样既不影响源码结构和编译,也能更方便地对源码进行用例测试。

代码结构如图3所示:图3 自动化单元测试代码结构设计2.4单元测试用例设计以具体的单元测试用例为例,对问题函数initModbusDesc进行分析,发现其存在内存溢出的错误,在CppUTest单元测试框架下,设计Testcase,如图4所示。

图4 单元测试用例举例通过设计测试用例,测试条件覆盖,发现如果1032行if( dp->modbus_send_no_table != NULL )为false,即dp->modbus_send_no_table == NULL,以及1083行if( dp->modbus_write_no_table != NULL)同时为false时,即dp->modbus_write _no_table == NULL,此时1134行dp->send_min_addr[dp->send_min_no++] = (INT32)atol(dp->modbus_send_no_desc[0] );中的dp->modbus_send_no_desc[0]的数组是未初始化的,因此用dp->modbus_send_no_desc[0]进行赋值是会溢出的。

执行此异常用例本身是会导致单元测试程序core的,为了保证其他用例的顺利执行,因此选择Testcase的类型为IGNORE_TEST,单元测试框架识别该用例类型后的处理方式是忽略执行。

2.5单元测试自动编译及运行通过命令行在Jenkins配置单元测试程序的自动化编译和自动执行,并对执行结果以报告形式展示。

自动编译和执行配置如图5-1所示,单元测试执行结果和报告如图5-2所示,单元测试执行结果趋势如5-3所示。

2.6覆盖率设计覆盖率是测量测试完整性的一个手段,是衡量测试是否完整的一个标准,我们编写的代码当中每个分支都应该是被覆盖的,这样才能保证测试是完全的,正确的.覆盖率测试报告是评测测试是否完整的一个重要手段,测试覆盖率低下证明测试覆盖不足,当系统进行迭代开发的时候,就会出现各种各样的问题,而且覆盖率也是QA关注的一项重要指标,QA通过该报告和指标和开发者进行沟通,从而解决开发当中遗留的问题[6]。

在单元测试用例设计中,通过被测函数的单元测试语句覆盖、分支覆盖和条件覆盖的信息分析,来验证单元测试的有效性。

在单元测试程序的makefile中,添加覆盖率编译参数“-fprofile-arcs -ftest-coverage”和链接参数“-lgcov -coverage”,单元测试编译之后,生成覆盖率中间文件.gcno,执行单元测试程序之后,生成覆盖率信息文件.gcda。

然后,通过Gcovr工具,来收集单元测试用例运行后的覆盖率信息,以xml的形式保存覆盖率报告,然后由持续集成平台上的Cobertura插件将xml形式的覆盖率报告解析,并在网页上展示。

相关文档
最新文档