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

2019-09-04 10:00刘佳杨永文李金华
软件工程 2019年8期
关键词:测试计划嵌入式软件单元测试

刘佳 杨永文 李金华

摘  要:嵌入式软件通常采用交叉开发的方式,尽早进行软件测试可以及时发现软件开发初期的不足。单元测试是嵌入式软件开发过程中最基础级别的测试活动。本文对嵌入式软件的单元测试进行了分析,主要包括测试工具的选择、测试内容的梳理和测试过程的优化,重点阐述了注意事项及原则。通过总结分析,提出了适宜操作的嵌入式软件单元测试方法。实践证明,该方法大大提高了软件测试水平和软件产品代码的质量。

关键词:测试计划;单元测试;测试过程;嵌入式软件

中图分类号:TP311.5     文献标识码:A

Abstract: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 software

1   引言(Introduction)

由于嵌入式软件运行在嵌入式计算机系统中,且实时性强。开发人员在编写完一段代码后,很难立即有效地去运行程序,从而导致缺陷越积越多。软件单元测试是软件开发过程中的一项基本活动,也是软件验证、确认的重要手段。通过一系列的单元测试,可改进软件质量,有效地减少软件漏洞的数量,降低程序的风险,找到软件中可能潜在的问题,提高代码的规范性、稳定性、可靠性。

单元测试针对单个函数的测试,工作量大,处于施工设计的重要阶段,时间紧,且发现的软件问题“严重等级”较低,如果依靠人工进行代码审查、静态分析,代码打桩编写执行用例,成本较高,流程不清晰不可控,难以保证测试充分性。本文根据嵌入式软件的特点,基于多年的测试工作经验,参考相关的标准,提出了一套适用的单元测试流程,包含测试工具、测试内容、测试过程的标准化、规范化等要求。

嵌入式软件测试环境分为目标机环境和宿主机环境。但在单元测试层面上,对于嵌入式软件来讲,除非特别指定在目标机环境下进行,都可以在宿主机环境进行。

2   单元测试工具(Unit testing tools)

单元测试的本质是针对代码进行测试,工作量和难度都比较大。采用合适的工具及有效的方法,可或多或少地实现“自动化”,极大提高测试效率,满足单元测试的覆盖率和准确度要求,减少工作量,降低成本。

常见的单元测试工具有PQRA QAC、C++Test、Logiscope、Tessy、LDRA Testbed、PolySpace、Cantata等。

本文采用QAC软件作为静态测试工具,该工具是针对C代码的深度流静态分析器,通过内置的标准规则,以警告消息方式突显代码中存在的违规现象,帮助开发者改善软件开发质量[1]。采用Tessy软件作为动态测试工具,针对嵌入式语言,能够快速进行驱动模块桩模块配置,用例设计可视化,并且可根据测试要求的不同,选择不同的测试环境。Tessy可以实现代码实际运行结果和测试用例中设定的预期结果的自动对比,检查代码功能正确性。在进行功能测试的同时,还对代码测试的覆盖率进行了统计。

3   单元测试内容(Content of unit testing)

在单元测试开展之前,需要对测试过程的各个阶段进行方法设计,以作为具体工作的指导依据。嵌入式软件单元测试要求可分为静态测试阶段和动态测试阶段。

3.1   静态测试阶段

静态测试是借助测试工具或人工检查的方法,对被测程序进行特性分析,查找软件编码的错误,并对软件单元的静态度量指标进行分析。由于静态测试不需要编译或运行代码,因而也不会受到软件内部其他缺陷模块的影响。

静态测试阶段可分为代码审查和静态分析两部分。

3.1.1   代码审查

代码审查主要工作为检查代码和设计的一致性、代码执行标准的情况、代码逻辑表达的正确性、代码结构的合理性、代码的可讀性等[2]。根据适用的规则,项目组内部定制合适的代码审查单,规定内容及标准。

猜你喜欢
测试计划嵌入式软件单元测试
基于改进V模型的软件测试过程研究
实时嵌入式软件的测试技术
全景相机遥控器嵌入式软件V1.0 相关操作分析
惠普ALM工具在软件测试管理中的应用
基于Eclipse的航天嵌入式软件集成开发环境设计与实现
航天嵌入式软件浮点运算误差分析与控制
一年级上册第五单元测试
一年级上册一、二单元测试
软件测试流程研究