基于模块化设计的嵌入式软件测试方法_郭远东
- 格式:docx
- 大小:23.02 KB
- 文档页数:10
嵌入式模块自动测试系统软件设计摘要对于嵌入式系统测试中存在的问题,本文提出了一种基于测试驱动开发的嵌入式模块自动测试系统软件设计方法。
该方法兼顾可测试性和设计模式,采用了自动测试工具和测试框架,自动测试用例生成,覆盖度评估等手段,有效提高了嵌入式模块测试效率和质量。
使用该方法实现的测试系统获得了较好的测试结果和用户反馈。
本文针对嵌入式系统测试需求,设计了测试用例覆盖、测试效率和测试结果可靠性三个方面的自动测试系统软件设计模型,并给出了详细的实现方案和测试结果分析。
关键词:嵌入式系统、自动测试、测试驱动开发、测试框架、测试用例覆盖、测试效率、测试结果可靠性1. 介绍嵌入式系统是指将计算机处理能力集成到某种特定应用场景中的一种计算机系统。
由于在硬件结构和操作系统等方面存在着很大的差异,嵌入式系统的开发和测试难度较大。
对于嵌入式系统的测试来说,有以下几个问题:首先,嵌入式系统往往是高度定制化的产品,开发周期短,面临着很多的软硬件联合问题,测试难度很大。
其次,嵌入式系统的测试无法像软件测试那样采用人工进行测试,需要一定的自动测试工具和测试框架的支撑。
此外,由于嵌入式系统的测试需要面对传感器、执行器等设备等很多硬件设备,导致测试效率很低,测试结果的可靠性也很难得到保证。
为了解决这些问题,本文提出了一种基于测试驱动开发的嵌入式模块自动测试系统软件设计方法,旨在提高嵌入式系统测试效率和质量。
本文设计了测试用例覆盖、测试效率和测试结果可靠性三个方面的自动测试系统软件设计模型,并给出了详细的实现方案和测试结果分析。
2. 相关工作测试驱动开发(Test Driven Development,TDD)是一种先编写测试用例,再实现代码的开发方法。
在TDD方法中,测试被视为开发过程的一部分,测试结果可帮助开发人员快速发现和修复潜在的问题。
TDD方法已成为了软件测试领域的主流方法。
目前,已有许多研究者针对嵌入式系统测试进行了深入的研究。
嵌入式软件的测试方法与技术引言嵌入式软件的测试方法与技术是保证嵌入式系统质量的关键环节。
随着科技的发展,嵌入式系统在各个领域得到了广泛应用,从家用电器到汽车,从医疗设备到航空航天,都离不开嵌入式软件。
而这些应用领域对于系统的可靠性和安全性要求越来越高,因此对于嵌入式软件的测试方法与技术也提出了更高要求。
一、嵌入式软件测试方法概述1.1 黑盒测试黑盒测试是一种基于功能需求和接口规范来进行测试的方法。
在黑盒测试中,我们不关心被测系统内部是如何实现的,只关注其输入和输出之间是否符合预期。
这种方法可以很好地验证系统是否满足需求,并且可以提前发现潜在问题。
1.2 白盒测试白盒测试是一种基于代码内部结构来进行测试的方法。
通过分析代码逻辑、覆盖率等指标来评估被测系统是否符合预期。
白盒测试可以发现代码中隐藏的逻辑错误和漏洞,并且可以提供更详细的测试覆盖率信息。
1.3 灰盒测试灰盒测试是黑盒测试和白盒测试的结合,既关注系统功能,也关注系统内部结构。
在灰盒测试中,可以利用黑盒测试的方法验证系统功能,同时通过白盒测试的方法发现潜在问题。
这种方法可以综合利用黑白两种方法的优点。
二、嵌入式软件测试技术2.1 静态分析技术静态分析技术是一种通过分析源代码或二进制代码来发现潜在问题的方法。
静态分析可以帮助开发人员在编码阶段发现错误和漏洞,并且可以提供代码质量评估和优化建议。
2.2 动态分析技术动态分析技术是一种通过运行时监测来评估系统行为和性能的方法。
动态分析可以帮助开发人员了解系统运行时状态,并且可以提供性能优化建议。
2.3 模糊测试技术模糊测试是一种通过生成大量随机输入来验证系统鲁棒性和安全性的方法。
模糊测试可以帮助开发人员找到输入错误处理不当或存在漏洞的地方,并且可以提供安全防护建议。
2.4 测试自动化技术测试自动化技术是一种通过编写测试脚本和使用自动化工具来提高测试效率和准确性的方法。
测试自动化可以帮助开发人员快速执行大量的测试用例,并且可以提供准确的测试结果。
如何做好嵌入式软件开发测试嵌入式软件测试是确保嵌入式系统的稳定性和可靠性的关键步骤之一、嵌入式软件的特点是运行在嵌入式系统中,并受到硬件限制、资源限制以及实时性要求的约束。
因此,嵌入式软件测试需要特别的关注点和方法。
下面是一些关键的步骤和技巧,以保证嵌入式软件开发测试的质量。
1.理解需求和软件架构:在进行嵌入式软件测试之前,必须对软件系统的需求和架构有充分的理解。
这将有助于测试人员了解系统的功能和性能要求,从而制定相应的测试策略和计划。
2.制定详细的测试计划:测试计划是一个指导测试活动的重要文档。
它应该明确规定测试的范围、目标、方法、资源和时间等方面的内容。
测试计划还应该包括测试的策略、用例和检查点等详细信息。
3.设计和制定测试用例:测试用例是测试的基本单元,用于验证系统的各种功能和性能。
在嵌入式软件测试中,测试用例的设计和制定可能会受到资源和实时性要求的限制。
因此,测试人员应该注意测试用例的覆盖率和效率,以确保尽可能多地测试到系统中的错误。
4.搭建适当的测试环境:在进行嵌入式软件测试之前,必须搭建适当的测试环境。
这包括硬件、软件、工具和数据等方面的准备。
嵌入式系统的测试环境应尽可能接近实际使用环境,以确保测试结果的准确性和可靠性。
5.进行功能测试:功能测试是嵌入式软件测试的核心。
它涉及对软件的各种功能进行验证和确认,以确保其满足需求和规范。
功能测试应包括正常情况下的功能测试和异常情况下的功能测试,以确保软件在各种情况下都能正常工作。
6.进行性能测试:性能测试是确定系统响应时间、吞吐量和资源利用率等方面的测试。
在嵌入式软件测试中,性能测试可能针对处理速度、内存占用和能耗等方面进行。
性能测试应尽可能接近实际使用情况,以确保软件在实际运行时能够满足性能要求。
7.进行安全测试:安全测试是确保嵌入式系统的安全性和可靠性的关键测试。
在进行安全测试时,测试人员应注意系统的漏洞和错误,以及可能的攻击和破坏方式。
嵌入式软件测试方法嵌入式软件测试方法是针对嵌入式系统开发的软件测试方法。
嵌入式系统是指嵌入在各种设备中的计算机系统,如智能手机、家庭电器、汽车、医疗设备等。
嵌入式软件测试的目标是确保嵌入式系统的软件质量和可靠性。
以下是常用的嵌入式软件测试方法:1.静态分析:静态分析是一种基于源代码或二进制代码的分析方法,用于检查代码中的错误和潜在的问题。
它通常包括代码审查、代码规范和代码耦合分析等。
静态分析可以在开发早期识别问题,并且可以帮助改进代码质量。
2.单元测试:单元测试是针对软件模块或功能的测试方法。
在嵌入式系统中,软件通常被分为多个模块,每个模块都有其特定的功能。
单元测试通过对每个模块进行测试,以确保它们按照预期运行。
单元测试可以使用各种测试技术,如白盒测试和黑盒测试。
3.集成测试:集成测试是将不同的模块或功能组合在一起进行测试的方法。
在嵌入式系统中,不同的模块通常需要相互协作才能实现系统的功能。
集成测试通过模拟实际的运行环境,测试模块之间的接口和交互,确保整个系统按照预期工作。
4.验收测试:验收测试是在开发完成后对整个系统进行的一系列测试。
验收测试的目标是确认系统是否符合用户需求和规格说明。
它通常由系统开发人员和最终用户共同进行,以确保系统的功能和性能满足用户的期望。
5.性能测试:性能测试是评估系统在不同负载条件下的性能和响应时间的方法。
在嵌入式系统中,性能测试可以用来评估系统的运行速度、内存使用情况和功耗等。
性能测试可以通过模拟实际的使用情况或使用工具和设备进行。
6.可靠性测试:可靠性测试是评估系统在长时间运行中的稳定性和可靠性的方法。
在嵌入式系统中,可靠性测试可以通过模拟不同的环境和使用条件,以确保系统在各种情况下都能正常工作。
7.安全测试:安全测试是评估系统的安全性和防护措施的方法。
嵌入式系统通常需要保护用户的隐私和数据安全。
安全测试可以通过模拟攻击、检查系统的漏洞和弱点等方式进行。
总的来说,嵌入式软件测试方法是多样的,旨在保证嵌入式系统的软件质量和可靠性。
基于ARM的嵌入式远程测控系统的设计
郭正红;王锐;王元强
【期刊名称】《微计算机信息》
【年(卷),期】2008(24)14
【摘要】本文研究和设计了一种基于S3C4510B芯片和嵌入式实时系统的远程测控系统.主要包括系统硬件设计与嵌入式操作系统的选择.硬件系统主要由三部分组成,首先是S3C4510B及其存储器部分、包括必要的辅助电路.存储器部分包括
16MB DRAM和2MB的Flash.DRAM作为操作系统内核及应用程序运行的空间.其二是对设备的采集和控制电路.主要包括两个串行口和通用I/O接口.其三是以太网数据交换电路与JTAG接口电路.
【总页数】3页(P141-142,258)
【作者】郭正红;王锐;王元强
【作者单位】075000,河北,张家口,河北北方学院;075000,河北,张家口,河北北方学院;075000,河北,张家口,河北北方学院
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于ARMlinux的嵌入式远程测控系统设计 [J], 祝红军;朱霞
2.基于ARM的嵌入式远程测控系统网关的设计 [J], 谢东
3.基于ARM9的嵌入式pH值测控系统设计 [J], 谷海涛;宋绍剑
4.基于ARM的嵌入式网络化远程测控系统的设计 [J], 马胜利;贺苗苗
5.基于ARM7和嵌入式MODEM的远程测控系统的设计 [J], 邹向阳;刘戎;李锋因版权原因,仅展示原文概要,查看原文内容请购买。
图片简介:本技术介绍了一种基于软件工程化的嵌入式软件自动化测试系统,包括需求开发与管理模块、设计开发与管理模块以及测试管理模块,通过软件工程化将需求开发与管理、设计开发与管理、测试管理集成到一个统一平台进行管理。
平台集成独立的三方软件,实现需求、设计、编码、测试、执行不分离。
通过驱动脚本,实现测试自动化执行;同时,该方法实现了文档的自动生成、自动统计功能,实现了追踪矩阵的自动建立,能够快速实现影响域分析,避免遗漏,从而提高软件质量。
技术要求1.一种基于软件工程化的嵌入式软件自动化测试系统,其特征在于,包括需求开发与管理模块、设计开发与管理模块以及测试管理模块,其中:所述需求开发与管理模块包括需求分解单元、需求追踪管理单元;其中:需求分解单元用于根据用户提出的用户需求建立系统需求以及软件需求,将系统需求、软件需求作为输入,按照所述系统需求、软件需求所要实现的功能,对系统需求、软件需求进行分解处理,并将分解后的需求进行原子化处理,从而建立需求数据元;需求追踪管理单元用于根据软件需求追踪系统需求,建立软件需求和系统需求之间需求的映射关系;所述设计开发与管理模块包括软件详细设计单元、软件接口设计单元、软件编码实现单元、设计追踪管理单元,其中:软件详细设计单元用于根据所述的软件需求的需求数据元逐项展开对应于所述需求数据元的功能设计,形成详细设计数据元;软件接口设计单元用于根据所述的软件需求的需求数据元逐项展开对应于所述需求数据元的接口设计,形成接口设计数据元;软件编码实现单元用于根据所述详细设计数据元、接口设计数据元通过编码进行软件详细设计和软件接口设计,从而形成软件源码数据元;设计追踪管理单元用于建立详细设计数据元到软件需求的需求数据元之间的映射关系、软件源码数据元到所述详细设计数据元之间的映射关系;软件源码数据元到接口设计数据元之间的映射关系;测试管理模块包括测试策划单元、测试用例编制单元、测试追踪管理单元、测试执行单元、测试结果记录单元、缺陷管理单元、回归测试单元,其中:测试策划单元用于根据软件需求的需求数据元建立软件系统测试项数据元和软件配置项测试项数据元;依据所述详细设计数据元、接口设计数据元建立软件集成测试项数据元和软件单元测试项数据元;测试用例编制单元用于根据系统测试项数据元编制系统测试用例数据元;依据配置项测试项数据元编制配置项测试用例数据元;依据集成测试项数据元编制集成测试用例数据元,依据单元测试项数据元编制单元测试用例数据元;测试追踪管理单元用于建立软件单元测试项数据元到详细设计数据元和接口设计数据元之间的映射关系,建立软件集成测试项数据元到详细设计数据元和接口设计数据元之间的映射关系,建立软件配置项测试项数据元到软件需求的需求数据元之间的映射关系,建立软件系统测试项数据元到系统需求的需求数据元之间的映射关系,并建立各测试用例数据元到对应的测试项数据元之间的映射关系;测试执行单元用于按照各测试用例数据元规定的执行步骤,执行对应的测试用例;测试结果记录单元用于记录各测试用例数据元执行后的结果,并与预期结果比较,根据比较结果的不同执行对应的处理方式;缺陷管理单元用于针对执行失败的测试用例数据元,确定存在的软件缺陷,形成缺陷数据元并按照模板生成问题报告单,以使软件设计开发人员根据所述问题报告单进行问题的修复;回归测试单元用于对于已修复的问题,如果系统需求的需求数据元、软件需求的需求数据元、详细设计数据元、接口设计数据元发生改变时,根据映射关系追踪并标识出受影响的测试项数据元和测试用例数据元,以使测试人员对受影响的测试项数据元和测试用例数据元进行增补或更改。
基于模块化设计的嵌入式软件测试方法
郭远东;黄荣瑛;陈友东;王田苗
【期刊名称】《单片机与嵌入式系统应用》
【年(卷),期】2005(000)001
【摘要】分析嵌入式软件的特点,综述传统的软件测试方法;针对嵌入式软件的特点,提出嵌入式软件的四级测试流程和集成测试的测试模型,并结合开发数控系统的实例进行分析.
【总页数】4页(P17-20)
【作者】郭远东;黄荣瑛;陈友东;王田苗
【作者单位】北京航空航天大学;北京航空航天大学;北京航空航天大学;北京航空航天大学
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于Simulink的嵌入式软件可靠性虚拟仿真测试方法 [J], 尚京威;陈平;
2.基于Simulink的嵌入式软件可靠性虚拟仿真测试方法 [J], 尚京威;陈平
3.基于DSP的嵌入式软件测试方法探析 [J], 贾倩
4.基于DSP的嵌入式软件测试方法研究 [J], 刘琴;李艳艳
5.基于dps的嵌入式软件测试方法研究 [J], 刘琴;李艳艳
因版权原因,仅展示原文概要,查看原文内容请购买。
基于模块化设计的嵌入式软件测试方法■北京航空航天大学郭远东黄荣瑛陈友东王田苗19Microcontrollers& Embedded Systems2005.1专题论述TOPICAL DISCUSS试主要包括测试操作系统的任务调度、实时性能、通信端口的数据传输等。
该阶段测试完成后,系统应为一个完整的嵌入式系统平台,用户只需添加应用程序即可完成特定的任务。
2.2 模块测试把大型的嵌入式软件系统划分为若干个相对较小的任务模块,由不同的程序员分别同时对其进行编码。
编码完成后,把各个模块集成起来前,必须对单个模块进行测试。
由于没有其它数据模块进行数据传递的支持,该阶段测试一般是在宿主机上进行的( 宿主机有丰富的资源和方便的调试环境) 。
此阶段主要是进行白盒测试,尽可能地测试每一个函数、每一个条件分支、每一个程序语句,提高代码测试的覆盖率。
由于只有单个模块正确才有整体集成的必要性,因此,单个模块测试时测试一定要充分、完整。
模块测试阶段,测试用例的构造不但要测试系统正常的运行情况,还要进行边界测试。
边界测试就是进行某一数据变量的最大值和最小值的测试,同时进行越界测试,即输入不该输入的数据变量测试系统的运行情况。
理想的嵌入式系统是不应该由用户的信息交互导致死机的,这也是嵌入式设计的一个基本要求。
因此,不论进行何种测试,系统死机都该被作为测试错误处理。
在模块测试阶段,由模块化编程的基本思想,根据模块内部的紧凑程度,也可以把大的模块划分成小的模块。
在程序内部,小模块之间数据传递的入口设计接口函数,用于快速地定位错误。
用此模块嵌套的思想进行软件测试,需要模块内部结构清晰,数据链路简单。
2.3 集成测试单个软件模块测试正确之后,将所有模块集成起来进行测试。
本阶段主要是找出各模块之间数据传递和系统组成后的逻辑结构的错误。
在宿主机上采用黑盒与白盒相结合的方法进行测试,要最大限度地模拟实际运行环境,可以屏蔽掉一些不影响系统执行的和数据传递的难以模拟的函数。
集成测试是模块化设计软件的测试优点充分体现的阶段。
集成测试前,应该由程序员根据模块之间数据的输入输出编写模块接口函数,这需要负责不同软件模块的程序员共同协调完成,然后将模块接口函数集成到接收数据模块的入口处。
由前面的分析可知,单链路数据传递的软件模块集成测试时容易定位错误所在的软件模块。
一个软件模块的数据不一定只有另外一个模块提供,即软件模块的数据链路不一定只是单链路的,测试时可以把复杂链路结构的数据传递划分为单链路结构数据传递进行错误定位。
修改输出数据的软件模块时,可能导致输入数据的软件模块引入新的错误,因此在这里引入关联矩阵确定修改某一模块后需要重新测试的模块。
假定模块化设计的嵌入式系统软件由软件模块Ai(i = 1,2,…,m,n)组成,m 表示矩阵的行号,n 表示矩阵的列号。
图5 所示的矩阵即为其关联矩阵。
在关联矩阵中,Aij=1 表示Aj接受了Ai输出的数据,故修改Ai重新测试Ai的同时也需重新测试Aj。
集成测试是在拥有程序设计文档、程序结构和数据结构时,对软件模块在集成中出现的错误进行测试。
集成测试时,根据模块接口函数定位错误修改代码,根据关联矩阵确定重新测试的软件模块。
图6 给出了模块化设计的嵌入式软件集成测试模型。
2.4 系统测试集成测试完成后,退出宿主机测试环境,把系统移植到目标机上来,完全应用到现场环境中,从用户的角度对系统进行黑盒测试,验证每一项具体的功能。
由于测试者对程序内容程序执行情况一无所知,因此本测试阶段的错误定位比较困难。
系统测试阶段应该进行意外测试和破坏性测试,即测试系统正常执行情况下不该发生的激发活动和人为的破坏性的测试,进一步验证系统性能。
系统测试阶段不应该确定错误后立即修改代码,应根据一定的错误发生频率,确定测试周期,在每个测试周期结束时修改代码,进行反复测试;否则,不但增加了完全测试的任务量,而且降低了测试的可信度。
2.5 测试结果分析测试结果的分析可以定位错误,指导程序员修改代mmmjmniiijinjnjnAAAAAAAAAAAAAAAALLMMOMMMOMLLLL1212212222111211图5 关联矩阵把单个软件模块集成在一起一个测试用例结束模块软件测试单链法则确定错误模块系统运行输出结果A1A2An…根据关联矩阵编写模块接口函数F(Ai-Aj)运行程序系统运行预期结果查看各接口函数输出值预测各接口函数值修改错误模块代码回到模块测试阶段是否正确?YN图6 基于模块化设计的嵌入式软件集成测试模型18 2005.1 专题论述TOPICAL DISCUSS软件测试时必须最大限度地模拟被测软件的实际运行环境,以保证测试的可靠性。
底层程序和应用程序界限的不清晰增加了测试时的难度,测试时只有确认嵌入式系统平台及底层程序正确的情况下才能进行应用程序的测试,而且在系统测试时,错误的定位较为困难。
软件的专用性也是嵌入式软件的一个重要特点。
由于嵌入式软件设计是以一定的目标硬件平台为基础的、面向固定的任务进行的,因此,一旦被加载到目标系统上,功能必须完全确定。
这个特点决定了嵌入式应用软件的继承性较差,延长的系统的测试时间,增加了测试费用。
嵌入式软件的另外一个重要特点就是实时性。
这是从软件的执行角度出发说明的,也就是说嵌入式软件的执行要满足一定的时间约束。
嵌入式系统中,应用软件自身算法的复杂度和操作系统任务调度,决定了系统资源的分配和消耗,因此,对系统实时性进行测试时,要借助一定的测试工具对应用程序算法复杂度和操作系统任务调度进行分析测试。
可见嵌入式软件与传统的面向对象的和面向过程的软件相比有其自身的特点。
针对这些特点对嵌入式软件的测试进行研究是必要的,有意义的。
1.3 嵌入式软件测试软件测试是从经济、效率的角度出发,对软件代码进行质量、正确性保证的一个过程。
软件测试是软件开发中的一个重要环节,也是软件从开发过程到应用过程的关键一环。
嵌入式软件也不例外,图3 给出了嵌入式软件测试的统一测试模型。
软件测试逐渐成为一门成熟的学科,前人针对面向对象和面向过程的非实时软件的测试作了大量的研究,其中大部分方法可以用到嵌入式软件的测试。
根据不同的指标,软件测试方法有不同的划分方法。
从软件开发过程中测试所处的不同阶段可分为模块测试、集成测试和系统测试。
根据是否需要运行目标代码分为动态测试和静态测试;根据目标代码的可见性可分为白盒测试(结构测试)和黑盒测试(功能测试)[2]。
在软件的测试中,每种测试方法都不是孤立的。
为了最经济最有效地达到测试的目的,各种测试方法往往是互相嵌套的。
例如,在软件的单元测试阶段,可以用黑盒测试和白盒测试的方法分别进行动态测试。
值得一提的是,近年来在软件测试中,测试代码的覆盖率逐渐成为软件测试的统一标准,因此不管采用何种测试方法,尽可能地提高软件测试中的代码覆盖率是必需的。
软件测试代码覆盖率是基于白盒测试方法的,因此,为了提高软件测试的代码覆盖率,测试人员必须清楚源代码的结构,拥有程序设计文档,以便设计测试用例使测试尽可能地覆盖程序内部结构的每条语句,提高代码的覆盖率[3]。
2 基于模块化设计的嵌入式软件四级测试流程根据嵌入式系统的开发流程,为了最经济地实现系统的功能,采用自顶向下、层层推进的方法对嵌入式系统进行测试,提出了如图4 所示的基于模块化设计的嵌入式软件四级测试流程。
在四级测试中,本测试阶段以前的测试完成后,当发现错误时,可排除此测试阶段以前的错误,在本测试阶段内查找错误。
这并不是一个绝对准确的方法,但最大限度地节省了错误定位的时间。
2.1 系统平台测试这部分包括硬件电路测试、操作系统及底层驱动程序的测试等。
硬件电路的测试需要用专门的测试工具进行测试,这里不再详述。
操作系统和底层驱动程序的测嵌入式软件测试平台输出测试结果预期结果比较分析包括操作系统和驱动程序的被测程序测试用例测试任务图3 嵌入式软件统一测试模型系统平台测试集成测试软件模块测试系统测试移植操作系统,编写系统底层驱动用模块化的方法编写应用代码测试通过?测试通过?测试通过?测试通过?N编写接口函数,装载到模块数据流之间退出四级测试开始根据需求修改程序代码只修改应用代码?YYYNNYNYN修改错误模块代码关联矩阵确定需测试模块修改错误模块代码模块接口函数确定错误模块图4 模块化设计的嵌入式软件四级测试流程Microcontrollers& Embedded Systems 2005.1专题论述TOPICAL DISCUSS码,同时指出测试进行的程度并进一步指明测试方向[ 4 ]。
测试结果的分析是一个由测试结果和测试预得结果进行分析、比较和定位错误的过程。
测试结果的分析是一次测试的最后环节,分析时应该考虑软件的运行环境和实际运行环境的差异以及各种外界因素的影响等。
2.6 测试用例的构造与管理测试用例是为了测试目标程序设计的包括输入项和预得结果的一种文件[ 5 ],根据测试环境和测试目标程序的不同,可分为某种规定格式的文档或某种输入行为(如一次按键) 等。
测试用例的构造要尽可能覆盖所有可能的取值范围,使测试尽可能地覆盖所有程序代码,提高代码的测试覆盖率,同时又不作多余、重复和无意义的测试。
在嵌入式软件测试的不同阶段,要构造不同的测试用例;在系统平台测试阶段,要构造针对系统任务调度、实时性能和底层驱动程序的测试用例;在模块测试阶段,应构造针对某一模块进行测试的测试用例;在集成测试阶段,针对系统集成时数据传递、结构斜接的问题构造相应的测试用例;在系统测试阶段,要构造针对某项功能的或多项功能结合在一起的测试用例,或使用已经在同类产品上已经验证正确的测试用例。
测试用例是可复用的。
此外大型的软件开发过程中,测试用例的种类繁多,应该按一定的方法进行管理。
用数据库的来管理测试用例是一个很好的选择。
根据测试阶段将测试用例进行划分,然后用关键字唯一确定。
这样在使用、修改和保存测试用例时都很方便,直接用查询的方式就可以调出测试用例。
3 数控系统软件测试本数控系统采用A R M 7 处理器,操作系统采用u C / O S 实时操作系统,是一个典型的嵌入式系统。
由于数控系统较为复杂,开发过程中将任务进行了详细的划分,软件的开发采用模块化开发。
模块的划分及数据流向如图7 所示。
根据图7 所示的软件模块和数据流向可构造关联矩阵,如图8 所示。
开发过程中,几个模块由不同的程序员分别进行编码,分别由程序员进行模块测试,并按白盒测试的方法进行覆盖测试。
最后集成测试前,根据关联矩阵,程序员协作编写了模块接口函数F(A1-A2)、F(A1-A4)、F(A1-A5)、F(A1-A6)、F(A2-A3)、F(A3-A4)、F(A4-A5)、F(A5-A6)、F(A6-A2),然后根据图6 所示的测试模型和图8 所示的关联矩阵对系统进行了集成测试。