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

(整期优先)网络出版时间:2017-12-22
/ 2

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

岳倩

厦门歌乐电子企业有限公司福建厦门361008

摘要:本篇文章从对单元测试内容和要求出发,首先明确了对于单元的测试过程以及所形成的文档要求,并加以结合日常的积累的经验,简单整理了单元测试以及嵌入式软件的相关概念,以及基础,单元测试类型的一些要求,嵌入式软件测试的关键技术。本文通过论述关于电子电器产品嵌入式软件单元测试的相关知识,得到了一些研究结论。

关键词:电子电器;嵌入式软件;单元测试

1前言

单元测试作为嵌入式软件测试中的重要测试阶段,能够测试和验证软件单元是否正确实现设计文档中的功能、性能、接口、边界和其他设计约束等要求,发现软件的错误,考核覆盖率的达标情况,为以后软件的升级和维护提供支撑。而单元测试开展之前,测试工具的选取尤为重要,如何在众多的单元测试工具中,选取一款便捷、合适、高效的测试工具直接关系到单元测试的充分性、完整性和高效性。

2软件测试的相关概念

软件测试需要在模拟的实际运行环境下进行检测,通过执行某个特定的程序或系统发现被测软件系统或程序中存在的漏洞和错误,它是有针对性、有目的地对软件产品的自检,即发现问题。软件自动化测试是软件测试新的分支,即由机器代替人的手工操作,按照测试工程师预先设定的计划,利用特定的自动化测试工具和编写好的测试脚本,模拟人工手动测试步骤来执行测试用例,完成对目标应用程序的半自动或全自动测试,用以验证各种软件测试的需求。从本质上讲,测试自动化是“再测试”技术。

软件测试的分类方法:根据测试方法分为黑盒测试、白盒测试;根据软件开发的阶段分为单元测试、集成测试、验收测试、系统测试;根据是否借助测试工具分为人工手动测试、自动化测试;根据是否需要执行被测软件分为静态测试、动态测试。

3嵌入式软件单元测试基础

3.1单元测试基本环境

单元测试又称模块测试,是针对程序设计的每个最小的软件模块进行的正确性检验的测试,但本身不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,可以用一些辅助模块模拟与被测模块相联系的其它模块。辅助模块分为驱动模块和桩模块,驱动模块模拟被测模块的上级模块,它接收测试数据,把这些数据传送给被测模块,最后输出实测结果。当被测单元能完成相关功能时,也可以不要驱动单元。桩模块模拟被测模块所调用的模块。

3.2与一般软件单元测试区别

嵌入式软件单元测试与一般软件单元测试的区别在于不同的测试环境,一般情况下被分为两种环境:主机和目标机。主机是运行软件开发环境的PC终端。目标机是软件开发后的实际操作的环境。主机环境的单元测试步骤与普通软件测试相同,但是在目标环境的测试中要比主机难,主要是由于嵌入式系统,目标环境资源有限,测试结果不容易上载。而目标机器上运行的目标环境测量模块,所有驱动模块和数据传输模块都需要进行电缆或串口线的测量,测试自动化测试工具也将测试发送到主机环境的结果。根据嵌入式软件测试策略,嵌入式系统单元测试可以在主机平台测试中完成,然后在目标环境中进行简单的测试验证,在目标环境中进行目标环境测试。

3.3测试用例设计

单元测试的关键是要设计测试用例,所谓测试用例就是在测试活动中为特定目的开发的一组测试输入、执行条件和期望结果。测试用例的目的就是指导测试怎么测单元测试工作是一项繁杂的任务,完全依靠测试人员进行手工测试不仅效率低而且容易产生错误,某些情况下,手工测试已经超出了问题的范围。使用自动化的测试工具可从根本上提高测试质量与效率,已成为必然的发展趋势。RTRT作为典型的嵌入式软件测试工具,满足开发团队建立复杂交互系统的测试平台的所有需求。

4嵌入式计算机软件测试的关键技术

4.1对宿主机进行测试

4.1.1静态测试

过去,在对计算机软件的检测就是技术人员人工检测,对软件进行一项一项故障进行排查,但是随着计算机结构的复杂化,人工检测的方向已经不再适用了。们可以通过静态检测方法来对软件进行测试,具体是通过静态测试系统对嵌入式计算机的软件的逻辑和功能进行分析,根据测试的结果对软件进行改善。利用软件测试系统能够快速和全面的检测系统的问题,同时还能提高测试的精度提高测试的正确率。

4.1.2动态测试

采用动态测试主要是对嵌入式计算机软件的代码进行测试,分析代码的全面性和功能。能够精确的了解到代码的执行情况,优化代码的功能,推动软件的发展。动态测试还能检测系统软件代码完成的程度,对开发的数据进行分析。动态测试技术还能对系统内存的存储情况进行检测。

4.2对仿真机进行测试

4.2.1获取测试数据

现今,在技术上比较难实现对仿真机的数据检测,而在测试的过程需要提供软件的源代码,这就使系统中的数据量很大。如果要提升系统的精确性,就必须对这部分数据进行精确的检测。仿真机监测技术保证了系统数据的完整性,能够对数据进行修改,而且在测试完成之后,可以对系统的数据进行读取。

4.2.2仿真测试技术

在测试过程中,需要对测试的数据进行集中的管理。仿真测试技术就能实现数据的仿真和模拟,而且在运行的过程中我们还能清晰的看到数据的使用过程。

4.3对目标机进行测试

4.3.1故障注入

嵌入式计算机软件在运行的过程中,可以进行认为的设置,比如说时间、运行方式等,但是前提是要求目标机具有这一功能。故障注入技术是指通过对特定模块的检测,有效的检测目标机的功能。

4.3.2内存分析

嵌入式计算机在运行的过程中会产生大量的数据,所以对系统内存的分析是非常重要的。使用内存分析技术可以很好的保证系统的正常运行。在运行的过程中能够高效的找出内存问题,对内存进行合理的划分。

4.3.3性能分析

计算机在运行的过程中对程序性能的要求是非常重要的,所以在运行过程中我们需要我们采用程序性能分析技术对系统数据进行分析和决断,节省系统的运行时间,加快运行速度。对程序性能分析技术的采用,能够清晰的显示系统每一模块运行的时间,对时间近进行排序,利于工作人员对程序的分析

5结束语

单元测试技术对于测试程序的组件(如子例程、子函数、类和进程)的大型程序特别有用。单元测试和其他类型的测试有着相同的目标:即找出程序不符合规范的地方。

单元测试在测试用例的设计过程中,使用一个或多个逻辑结构的白盒的测试方法去分析模块,然后用黑盒测试方法来控制模块规格,以补充测试用例。

除了描述输入数据外,一个测试用例需要准确地描述相应输入数据中的正确输出结果。这样的话,就有可能避免可能出现的被解释为正确结论的结果是的情况。

当测试用例导致模块输出的实际结果与预期结果不匹配时,有两种比较可能的解释:一是模块有错误,二是预期的结果不正确。为了最小化这种混淆,应该在测试执行之前检查或验证测试用例集。在进行单元测试之前,需要进行仔细的阅读该模块的程序规范和源代码。系统有一个总体的测试思路,针对各个模块,根据优先级制定相应的单元测试充分性标准和单元测试策略,从而更合理地分配单元测试工作负载,达到较好的测试结果。

参考文献:

[1]朱江.电子计量产品嵌入式软件质量评估方法研究[D].杭州:中国计量学院,2012

[2]吴晓葵.基于CodeTEST的嵌入式软件测试技术[J].电子设计工程,2010,18(9):74-76

[3]郭莹,刘纪元,康志.Testbed套件在航天嵌入式软件中的应用[J].火控雷达技术,2010,39(1):20-23