论文部分内容阅读
[摘 要]随着我国经济的快速发展与科技的跨越式进步,机电一体化技术也在不断地发展,不断地迈向现代化、迈向世界、迈向未来。机电一体化产品介质程序的测试方法也在不断的更新、不断地发展。
[关键词]机电一体化;介质程序;测试方法
中图分类号:TP31 文献标识码:A 文章编号:1009-914X(2014)23-020-01
现在国家对于机电一体化很重视,因为机电一体化关乎国家的硬实力,关乎到我国工业的发展,只有机电一体化平稳、健康、快速发展,我们国家的明天才会有保证,我们国家才能长治久安,维护好本国主权。本文试着介绍一下嵌入式程序测试技术。
1.嵌入式程序测试基本概念的简要叙述
嵌入式程序设计已经成为工业现代化、智能化的必经之路,嵌入式程序测试产品已经深入到各行各业。嵌入式程序测试系统的专用程度较高,系统的整体继承性相对较小,为了保证系统的稳定性,软件的测试成为嵌入式开发的一个重要环节。由于嵌入式程序自身的特点,传统的软件测试理论不能直接用于嵌入式程序的测试,因此,研究嵌入式软件的测试有重要意义。嵌入式程序的设计是以一定的方法为基础的。面对越来越复杂的程序开发任务,人们提出了各种程序设计的模型。从用户需求和系统要实现的任务功能出发,把大型的程序划分为相对较小的模块。模块化设计的核心是模块的独立性,主要包括功能独立性和结构独立性,这使得程序开发的分工易于实现。
2.嵌入式程序
嵌入式程序开发有其自身的特点。一般先进行硬件部分的开发,主要包括形成裸机平台,根据需要移植实时操作系统,开发底层的硬件驱动程序等。硬件平台测试通过后,应该软件的开发调试是基于该硬件平台进行的,这同时也是对硬件平台的一个测试。因此可以说,嵌入式程序的开发过程是一个软硬件互相协调,互相反馈和互相测试的过程。一般来说,在嵌入式程序中,底层驱动程序、操作系统和应用程序的界线是不清晰的,根据需要甚至混编在一起。这主要是由于嵌入式系统中软件对硬件的依赖性造成的。嵌入式程序对硬件的依赖性要求,软件测试时必须最大限度地模拟被测软件的实际运行环境,以保证测试的可靠性。底层程序和应用程序界限的不清晰增加了测试时的难度,测试时只有确认嵌入式程序平台及底层程序正确的情况下才能进行应用程序的测试,而且在系统测试时,错误的定位较为困难。软件的专用性也是嵌入式程序的一个重要特点。
3.嵌入式程序的测试方法
3.1 嵌入式程序的模块测试技术
把大型的嵌入式程序划分为若干个相对较小的任务模块,由不同的程序员分别同时对其进行编码。编码完成后,把各个模块集成起来前,必须对单个模块进行测试。由于没有其它数据模块进行数据传递的支持,该阶段测试一段是在宿主机上进行的(宿主机有丰富的资源和方便的调试环境)。此阶段主要是进行白盒测试,尽可能地测试每一个函数、每一个条件分支、每一个程序语句,提高代码测试的覆盖率。由于只有单个模块正确才有整体集成的必要性,因此,单个模块测试时测试一定要充分、完整。模块测试阶段,测试用例的构造不但要测试系统正常的运行情况,还要进行边界测试。边界测试就是进行某一数据变量的最大值和最小值的测试,同时进行越界测试,即输入不该输入的数据变量测试系统的运行情况。理想的嵌入式程序是不应该由用户的信息交互导致死机的,这也是嵌入式设计的一个基本要求。因此,不论进行何种测试,系统死机都该被作为测试错误处理。在模块测试阶段,由模块化编程的基本思想,根据模块内部的紧凑程序,也可以把大的模块划分成小的模块。在程序内部,小模块之间数据传递的入口设计接口函数,用于快速地定位错误。用此模块嵌套的思想进行软件测试,需要模块内部结构清晰,数据链路简单。
3.2 嵌入式程序的集成测试技术
单个软件模块测试正确之后,将所有模块集成起来进行测试。本阶段主要是找出各模块之间数据传递和系统组成后的逻辑结构的错误。在宿主机上采用黑盒与白盒相结合的方法进行测试,要最大限度地模拟实际运行环境,可以屏蔽掉一些不影响系统执行的和数据传递的难以模拟函数。集成测试是模块化设计软件的测试优点充分体现的阶段。集成测试前,应该由程序员根据模块之间的数据的输入输出编写模块接口函数,这需要负责不同软件模块的程序员共同协调完成,然后将模块接口函数集成到接收数据模块的入口处。由前面的分析可知,单链路数据传递的软件模块集成测试时容易定位错误所在的软件模块。一个软件模块的数据不一定只有另外一个模块提供,即软件模块的数据链路不一定只是单链路的,测试时可以把复杂链路结构的数据传递划分为单链路结构数据传送进行错误定位。修改输出数据的软件模块时,可能导致输入数据的软件模块引入新的错误,因此在这里引入关联矩阵确定修改某一模块后需要重要测试的模块。集成测试是在拥有程序设计文档、程序结构和数据结构时,对软件模块在集成中出现的错误进行测试。集成测试时,根据模块接口函数定位错误修改代码,根据关联矩阵确定重新测试的软件模块。
3.3 嵌入式程序的系统测试技术
集成测试完成后,退出宿主机测试环境,把系统移植到目标机上来,完成应用到现场环境中,从用户的角度对系统进行黑盒测试,验证每一项具体的功能。由于测试者对程序内容程序执行情况一无所知,因此本测试阶段的错误定位比较困难。系统测试阶段应该进行意外测试和破坏性测试,即测试系统正常执行情况下不该发生的激发活动和人为的破坏性的测试,进一步验证系统性能。系统测试阶段不应该确定错误后立即修改代码,应根据一定的错误发生频率,确定测试周期,在每个测试周期结束时修改代码,进行反复测试;否则,不但增加了完全测试的任务量,而且降低了测试的可信度。
3.4 嵌入式程序的测试结果分析
测试结果的分析可以定位错误,指导程序员修改代码,同时指出测试进行的程序并进一步指明测试方向。测试结果的分析是一个由测试结果和测试预得结果进行分析、比较和定位错误的过程。测试结果的分析是一次测试的最后环节,分析时应该考虑软件的运行环境和实际运行环境的差异以及各种外界因素的影响等。
3.5 嵌入式程序的测试用例的构造与管理
测试用例是为了测试目标程序设计的包括输入项和预得结果的一种文件,根据测试环境和测试目标程序的不同,可分为某种格式的文档或某种输入行为(如一次按键)等。测试用例的构造要尽可能覆盖所有可能的取值范围,使测试尽可能地覆盖所有程序代码,提高代码测试覆盖率,同时又不作多余、重复和无意义的测试。在嵌入式程序测试的不同阶段,要构造不同的测试用例;在系统平台测试阶段,要构造针对系统任务调度、实时性能和底层驱动程序的测试用例;在模块测试阶段,应构造针对某一模块进行测试的测试用例;在集成测试阶段,针对系统集成时数据传递、结构斜接问题构造相应的测试用例;在系统测试阶段,要构造针对某项功能的或多项功能结合在一起的测试用例,或使用已经在同类产品上已经验证正确的测试用例。测试用例是可复用的。用数据库的来管理测试用例是一个很好的选择。
结语:
文章对嵌入式程序的特点和测试方法作了分析,此测试方法用于工程机械控制器和数控系统开发的测试。测试的效率和可靠性满足要求。希望可以对专业技术人员和广大爱好者提供一些借鉴。
参考文献
[1] 夏莲,叶文凭,《论嵌入式程序》,2011.11.24期刊.
[2] 刘力,《嵌入式程序的测试方法》科学论2009.3.
[3] 史新金,《嵌入式程序测试方法的讨论》.
[关键词]机电一体化;介质程序;测试方法
中图分类号:TP31 文献标识码:A 文章编号:1009-914X(2014)23-020-01
现在国家对于机电一体化很重视,因为机电一体化关乎国家的硬实力,关乎到我国工业的发展,只有机电一体化平稳、健康、快速发展,我们国家的明天才会有保证,我们国家才能长治久安,维护好本国主权。本文试着介绍一下嵌入式程序测试技术。
1.嵌入式程序测试基本概念的简要叙述
嵌入式程序设计已经成为工业现代化、智能化的必经之路,嵌入式程序测试产品已经深入到各行各业。嵌入式程序测试系统的专用程度较高,系统的整体继承性相对较小,为了保证系统的稳定性,软件的测试成为嵌入式开发的一个重要环节。由于嵌入式程序自身的特点,传统的软件测试理论不能直接用于嵌入式程序的测试,因此,研究嵌入式软件的测试有重要意义。嵌入式程序的设计是以一定的方法为基础的。面对越来越复杂的程序开发任务,人们提出了各种程序设计的模型。从用户需求和系统要实现的任务功能出发,把大型的程序划分为相对较小的模块。模块化设计的核心是模块的独立性,主要包括功能独立性和结构独立性,这使得程序开发的分工易于实现。
2.嵌入式程序
嵌入式程序开发有其自身的特点。一般先进行硬件部分的开发,主要包括形成裸机平台,根据需要移植实时操作系统,开发底层的硬件驱动程序等。硬件平台测试通过后,应该软件的开发调试是基于该硬件平台进行的,这同时也是对硬件平台的一个测试。因此可以说,嵌入式程序的开发过程是一个软硬件互相协调,互相反馈和互相测试的过程。一般来说,在嵌入式程序中,底层驱动程序、操作系统和应用程序的界线是不清晰的,根据需要甚至混编在一起。这主要是由于嵌入式系统中软件对硬件的依赖性造成的。嵌入式程序对硬件的依赖性要求,软件测试时必须最大限度地模拟被测软件的实际运行环境,以保证测试的可靠性。底层程序和应用程序界限的不清晰增加了测试时的难度,测试时只有确认嵌入式程序平台及底层程序正确的情况下才能进行应用程序的测试,而且在系统测试时,错误的定位较为困难。软件的专用性也是嵌入式程序的一个重要特点。
3.嵌入式程序的测试方法
3.1 嵌入式程序的模块测试技术
把大型的嵌入式程序划分为若干个相对较小的任务模块,由不同的程序员分别同时对其进行编码。编码完成后,把各个模块集成起来前,必须对单个模块进行测试。由于没有其它数据模块进行数据传递的支持,该阶段测试一段是在宿主机上进行的(宿主机有丰富的资源和方便的调试环境)。此阶段主要是进行白盒测试,尽可能地测试每一个函数、每一个条件分支、每一个程序语句,提高代码测试的覆盖率。由于只有单个模块正确才有整体集成的必要性,因此,单个模块测试时测试一定要充分、完整。模块测试阶段,测试用例的构造不但要测试系统正常的运行情况,还要进行边界测试。边界测试就是进行某一数据变量的最大值和最小值的测试,同时进行越界测试,即输入不该输入的数据变量测试系统的运行情况。理想的嵌入式程序是不应该由用户的信息交互导致死机的,这也是嵌入式设计的一个基本要求。因此,不论进行何种测试,系统死机都该被作为测试错误处理。在模块测试阶段,由模块化编程的基本思想,根据模块内部的紧凑程序,也可以把大的模块划分成小的模块。在程序内部,小模块之间数据传递的入口设计接口函数,用于快速地定位错误。用此模块嵌套的思想进行软件测试,需要模块内部结构清晰,数据链路简单。
3.2 嵌入式程序的集成测试技术
单个软件模块测试正确之后,将所有模块集成起来进行测试。本阶段主要是找出各模块之间数据传递和系统组成后的逻辑结构的错误。在宿主机上采用黑盒与白盒相结合的方法进行测试,要最大限度地模拟实际运行环境,可以屏蔽掉一些不影响系统执行的和数据传递的难以模拟函数。集成测试是模块化设计软件的测试优点充分体现的阶段。集成测试前,应该由程序员根据模块之间的数据的输入输出编写模块接口函数,这需要负责不同软件模块的程序员共同协调完成,然后将模块接口函数集成到接收数据模块的入口处。由前面的分析可知,单链路数据传递的软件模块集成测试时容易定位错误所在的软件模块。一个软件模块的数据不一定只有另外一个模块提供,即软件模块的数据链路不一定只是单链路的,测试时可以把复杂链路结构的数据传递划分为单链路结构数据传送进行错误定位。修改输出数据的软件模块时,可能导致输入数据的软件模块引入新的错误,因此在这里引入关联矩阵确定修改某一模块后需要重要测试的模块。集成测试是在拥有程序设计文档、程序结构和数据结构时,对软件模块在集成中出现的错误进行测试。集成测试时,根据模块接口函数定位错误修改代码,根据关联矩阵确定重新测试的软件模块。
3.3 嵌入式程序的系统测试技术
集成测试完成后,退出宿主机测试环境,把系统移植到目标机上来,完成应用到现场环境中,从用户的角度对系统进行黑盒测试,验证每一项具体的功能。由于测试者对程序内容程序执行情况一无所知,因此本测试阶段的错误定位比较困难。系统测试阶段应该进行意外测试和破坏性测试,即测试系统正常执行情况下不该发生的激发活动和人为的破坏性的测试,进一步验证系统性能。系统测试阶段不应该确定错误后立即修改代码,应根据一定的错误发生频率,确定测试周期,在每个测试周期结束时修改代码,进行反复测试;否则,不但增加了完全测试的任务量,而且降低了测试的可信度。
3.4 嵌入式程序的测试结果分析
测试结果的分析可以定位错误,指导程序员修改代码,同时指出测试进行的程序并进一步指明测试方向。测试结果的分析是一个由测试结果和测试预得结果进行分析、比较和定位错误的过程。测试结果的分析是一次测试的最后环节,分析时应该考虑软件的运行环境和实际运行环境的差异以及各种外界因素的影响等。
3.5 嵌入式程序的测试用例的构造与管理
测试用例是为了测试目标程序设计的包括输入项和预得结果的一种文件,根据测试环境和测试目标程序的不同,可分为某种格式的文档或某种输入行为(如一次按键)等。测试用例的构造要尽可能覆盖所有可能的取值范围,使测试尽可能地覆盖所有程序代码,提高代码测试覆盖率,同时又不作多余、重复和无意义的测试。在嵌入式程序测试的不同阶段,要构造不同的测试用例;在系统平台测试阶段,要构造针对系统任务调度、实时性能和底层驱动程序的测试用例;在模块测试阶段,应构造针对某一模块进行测试的测试用例;在集成测试阶段,针对系统集成时数据传递、结构斜接问题构造相应的测试用例;在系统测试阶段,要构造针对某项功能的或多项功能结合在一起的测试用例,或使用已经在同类产品上已经验证正确的测试用例。测试用例是可复用的。用数据库的来管理测试用例是一个很好的选择。
结语:
文章对嵌入式程序的特点和测试方法作了分析,此测试方法用于工程机械控制器和数控系统开发的测试。测试的效率和可靠性满足要求。希望可以对专业技术人员和广大爱好者提供一些借鉴。
参考文献
[1] 夏莲,叶文凭,《论嵌入式程序》,2011.11.24期刊.
[2] 刘力,《嵌入式程序的测试方法》科学论2009.3.
[3] 史新金,《嵌入式程序测试方法的讨论》.