嵌入式软件全面测试过程模型
2017-03-15安笛郑纯
安笛+郑纯
摘 要 详细分析了嵌入式系统的特点,介绍了在宿主机和目标机环境下的嵌入式软件测试技术,结合软件测试V模型的不足,提出嵌入式软件全面测试过程模型,该模型将软件测试从需求阶段引入,并且对嵌入式软件系统架构进行性能估算,避免在软件实现后期再去解决由于体系结构和设计方案的原因产生的性能问题,最后使用嵌入式软件测试工具实现软件测试自动化,收集系统测试覆盖率,监控了内存的动态分配和释放,防止内存泄露。
【关键词】嵌入式软件 软件测试过程模型 软件测试 软件测试自动化
随着嵌入式软件技术的发展,嵌入式软件应用的不断普及使得嵌入式软件在航空、航天、航海和军事安全等诸多领域发挥着愈来愈重要的作用, 嵌入式软件功能和性能的正确实现对软件质量起到了决定性的作用,软件测试是软件质量保证的重要手段。然而,如何准确地和尽早地发现软件中的缺陷就需要一个精确的软件测试过程模型。
一个好的嵌入式软件测试过程模型应该具有以下特点:
(1)尽可能早地被发现需求、设计阶段的问题。
(2)不同的开发阶段,具有相应的测试技术,合理地在基于目标机测试和基于宿主机测试之间进行折衷。
(3)将嵌入式软件测试工具引入模型,实现嵌入式软件测试自动化,提高软件测试的效率。
(4)缺陷修正之后,进行缺陷影响域分析,设计测试用例,合理地进行回归测试,避免引入新的缺陷。
针对以上需求,本文分析了嵌入式系统的特点,结合软件测试过程V模型、嵌入式软件测试技术和嵌入式软件测试工具,建立嵌入式软件全面测试过程模型。
1 嵌入式系统的特点
1.1 嵌入性
嵌入式软件在宿主机环境下测试再充分,也不能说保证在目标机环境下该软件运行正常。嵌入式软件还面临着目标环境的测试。
1.2 及时性
嵌入式软件系统对及时性要求的符合程度。
1.3 资源有限性(内存使用率)
2 软件测试V模型不足
(1)容易使人理解为测试是软件开发的最后一个阶段,主要是针对程序进行测试寻找错误,而需求分析阶段隐藏的问题一直到后期的验收测试才能被发现。
(2)V模型把软件的开发视为需求、设计、编码等一系列串行的活动,没有充分考虑软件测试与软件开发的并行性。
(3)V模型没有明确地说明在单元测试、集成测试和系统测试中发现的缺陷,修正缺陷之后进行回归测试,测试是一个迭代的过程。
3 嵌入式软件测试方法
3.1 基于宿主机的测试
3.1.1 嵌入式软件静态分析
借助软件静态分析工具进行代码规则检查和质量评价,对违背代码规则的语句进行修改。
3.1.2 嵌入式软件单元测试
单元测试是针对软件设计的最小单位——程序模块,进行正确性检验工作。
3.1.3 嵌入式软件集成测试
集成测试主要是找出各模块之间进行数据传输和消息传递的错误和系统组成后的逻辑错误。
3.2 基于目标机的测试
根据软件需求规格说明书,设计测试用例覆盖所有的功能和性能,验证软件的功能和性能及其它特性是否与用户的要求一致。
4 嵌入式软件全面测试过程模型
针对在引言中描述的一个好的嵌入式软件测试模型所具有的特征,本文提出了嵌入式软件全面测试过程模型,如图1所示,其具体测试过程如下:
4.1 软件需求评审
保证需求的正确性、完整性、一致性可追溯性等。
4.2 系统体系结构设计评审
在体系结构和设计阶段所做出的性能改进对嵌入式软件性能的影响远远超过实现阶段,软件一旦实现,再去解决体系结构和设计方案的原因产生的问题将是极其困难的。
4.3 嵌入式软件单元和集成测试
进入编码阶段后,搭建自动化单元测试环境,调用单元测试用例脚本,进行自动化单元测试。
4.4 嵌入式软件确认测试
验证软件的功能和性能是否满足用户的需求,同时对内存使用进行动态监控,是否存在内存泄露。
4.5 嵌入式软件回归测试
对各阶段发现的缺陷都要进行修正,进行影响域分析,设计测试用例,进行回归测试,直到所有的缺陷关闭,如图1所示。
5 嵌入式软件全面测试模型应用实例
在嵌入式电子海图软件系统项目中使用该模型,开发环境主机平台Pentium D 3.0G/512M/120G,目标机平台Pentium 933M/64M/10G,开发工具为Tornado 2.2集成开发环境,目标机操作系统为Vxworks 5.4。
通过使用本文提出的测试过程模型,其测试结果如下:
(1)提前发现了隐藏在需求中2个错误,对系统体系结构设计的性能进行了定量的分析。
(2)在静态、单元和集成测试过程中,共发现严重代码规则检查错误307处,其中主要表现浮点数进行相等比较、除数可能为0,数组越界等。
(3)在确认测试过程中共发现功能错误20处,主要表现海图汇算功能存在误差等。
(4)语句覆盖率为88%,没有达到100%的原因是存在部分冗余代码、文件打开异常处理等。同时发现存在内存泄露。
6 结束语
本文提出了一种新的嵌入式软件全面测试过程模型。使用该测试过程模型成功地对嵌入式电子海图软件系统进行测试。实践表明该测试模型是有效的,具有一定的实际应用价值。
参考文献
[1]Connie U.Smith, Lloyd G.Williams. Performance Solutions A Practical Guide to Creating Responsive, Scalable Software[M].Boston,Pearson Education,2003
[2]柳纯录.软件评测师教程[M].北京:清华大学出版社,2005.
[3]康一梅等.嵌入式软件测试[M].北京:机械工业出版社,2008.
作者简介
安笛(1986-),女。工程师。主要研究方向为嵌入式软件开发、测试等。
作者单位
1.天津航海仪器研究所 天津市 300451
2.天津航空機电有限公司 天津市 300308