第1章绪论
1. 1研究背景
随着嵌入式软件在金融、军事、通讯等重要领域的应用愈来愈广泛,同时对软件质量也提出了更高的要求。为了提高软件开发质量和运行可靠性,在开发阶段需要采取有效的手段进行软件测试。软件测试是确保软件质量主要方法之一,因为它是增强软件质量和可用性的关键。据统计,在软件工程中软件测试的工作量占总工作量的40%左右,而对可靠性要求比较高的嵌入式软件,软件测试开销甚至高达所有其他软件工程阶段的费用总和。
Edward Kit将整个软件开发历史分为三个阶段[f2l:第一阶段是60年代及其以前,当时软件规模较小,复杂程度低。在那时开发人员的Debug过程被认为是唯一的测试活动,在这一阶段也没有专门测试人员。第二阶段是70年代,那时人们已经开始思考开发流程问题,提出了“软件工程”的概念。但人们对软件测试的理解仅限于基本的功能验证和Bug搜寻,而且测试活动仅出现在整个软件开发流程的后期。70年代中期由J.B.Goodenough和S.LGerhart首次先提出软件测试的理论。此后W.E.Howden} Gerhart对此理论进行了总结和进一步完善。第三阶段是80年代及其以后,随着软件趋于大型化,人们为软件开发设计了各种复杂而精密的流程和管理方法。软件测试也有了行业标准((IEEE/ANSI),与开发流程融合为一体,己经成为一个专业。到了90年代随着测试工具的出现,测试支持度、测试成熟度等新概念的提出,进一步表明软件测试技术的不断发展。
软件自动化测试作为软件测试过程中一个重要的组成部分,它可以完成许多手工测试无法实现或者难以实现的任务。所以在测试工作中引入自动化测试技术可以提高软件质量,节省经费,缩短产品发布周期。软件测试自动化就是模拟手动测试步骤,通过自动化测试工具执行用某种程序设计语言编制的测试脚本,控制被测软件的执行,完成全自动或半自动测试的过程。全自动测试就是,在测试过程中,根本不需要人工干预,有程序自动完成测试的全过程。半自动测试就是指在自动测试过程中需要手动输入测试用例或者选择测试路径,再由自动测试程序按照人工指定的要求完成自动测试。
近年来嵌入式系统已广泛的应用到生活的各个领域,并且对嵌入式软件质量的要求也越来越明显了。由于嵌入式软件需要在宿主机开发,而在目标机上运行,与普通软件的开发有很大的不同。在测试的时候,二者的测试策略也不同。传统的软件测试理论和测试工具不能直接用于嵌入式软件的测试。
Chorng-Shiuh Koong等人提出了一种嵌入式测试工具一ATEMES(Automatic Testing Environment for Multi-core Embedded Software) 。这个工具能够自}}J的生成测试用例和测试驱动,并且提供单元测试和覆盖测试,基于交叉测试技术和多轮机制。
Jooyoung Seo提出了一种嵌入式软件测试工具一Justitia。测试人员通过在接口处设计断点调试和排除错误。然而,如果测试人员没有太多的测试经验或者不了解实时嵌入式系统体系结构,则需要很多的时间去学习测试
Yongyun Cho提出了一个嵌入式软件测试工具。该工具基于宿主机一目标机体系结构的客户端/服务器模型。在宿主机端,该工具为测试人员提供图形用户界面,软件测试在嵌入式系统平台下的目标机端执行,包括内存测试,代码覆盖测试和功能测试
在国内,软件测试工具从八十年代末以来就有一些重点大学在研究,但至今未见有高性能的软件测试工具问世。在嵌入式系统的实用性能测试方面与国际先进水平的工具仍有很大的差距,无法真正发挥作用。另外,在测试覆盖率和测试数据处理上也做得不够深入,离用户的实际需求有一定的差距。
综上所述,现有的嵌入式软件测试技术取得了一定的成就,他们提出的测试策略在某些方面有借鉴作用,但是并不能直接应用于本项目。因此本论文在现有软件测试方法和技术的基础上,设计一个基于Qtopia平台的嵌入式软件自动化测试平台,通过机上测试代理,执行基于功能覆盖的测试用例,提高测试的效率和改善测试的质量。
第3章 基于嵌入式系统............ 23-35
3.1 普通软件自动化............ 23-24
3.2 现有测试模型............ 24-29
3.2.1 ATEMES自动............ 24-26
3.2.2 Justitia嵌入式............ 26-28
3.2.3 其它嵌入式............ 28-29
3.3 嵌入式测试相关............ 29-31
3.3.1 测试用例............ 29-30
3.3.2 测试脚本............ 30-31
3.3.3 测试报告生成............ 31
3.4 基于Qtopia的嵌入式............ 31-33
3.4.1 Qt/Embedded............ 31-32
3.4.2 基于Qtopia的............ 32-33
3.5 本章小结............ 33-35
第4章 测试系统的设计............ 35-53
4.1 测试技术框架............ 35-36
4.2 测试系统的设计............ 36-41
4.3 测试系统的实现............ 41-52
4.3.1 机上单元测试............ 41-43
4.3.2 测试用例的定制............ 43-45
4.3.3 测试用例选择............ 45-46
4.3.4 设备端测试代理............ 46-51
4.3.5 测试结果分析以............ 51-52
4.4 本章小结............ 52-53
第5章 实验分析............ 53-63
5.1 试验环境............ 53-54
5.1.1 试验平台............ 53
5.1.2 目标端硬件............ 53-54
5.2 Qtopia程序开发............ 54-58
5.3 运行结果............ 58-61
5.4 本章小结............ 61-63
总结
本文对嵌入式软件检测自动化体系展开了研究,首先分析了软件测试界现有的经典模型的优缺点,结合嵌入式软件测试和SCC50螺杆压缩机组远程诊断系统的特点,提出了基于Qtopia的嵌入式软测试模型,测试系统由宿主机端模块和目标端模块共同完成。宿主端与目标端通过TCP/IP进行通信。并在此模型的基础上,实现了基于Qtopia的嵌入式软测试系统QEST,通过搭建测试环境,在嵌入式平台下做测试实验,实验表明该系统能够很好的完成测试任务。
本论文主要研究的工作与成果是:
(1)分析软件自动化测试技术的特点,重点研究了shell脚本测试技术和关键字驱动。