嵌入式模块化软件测试方法
作者:网络转载 发布时间:[ 2011/5/5 10:25:14 ] 推荐标签:
根据嵌入式系统的开发流程,为了经济地实现系统的功能,采用自顶向下、层层推进的方法对嵌入式系统进行测试,提出了基于模块化设计的嵌入式软件四级测试流程。在四级测试中,本测试阶段以前的测试完成后,当发现错误时,可排队此测试阶段以前的错误,在本测试阶段内查找错误。这并不是一个准确的方法,但大限度地节了错误定位的时间。
一、系统平台测试
这部分包括硬件电路测试、操作系统及底层驱动程序的测试等。硬件电路的测试需要用专门的测试工具进行测试。这里不再多述。操作系统和底层驱动程序的测试主要包括测试操作系统的任务调度、实时性能、通信端口的数据传输率。该阶段测试完成后,系统应为一个完整的嵌入式系统平台,用户只需添加应用程序即可完成特定的任务。
二、模块测试
把大型的嵌入式软件系统划分为若干个相对较小的任务模块,由不同的程序员分别同时对其进行编码。编码完成后,把各个模块集成起来前,必须对单个模块进行测试。由于没有其它数据模块进行数据传递的支持,该阶段测试一段是在宿主机上进行的此阶段主要是进行白盒测试,尽可能地测试。每一个函数、每一个条件分支、每一个程序语句,提高代码测试的覆盖率。由于只有单个模块正确才有整体集成的必要性,因此,单个模块测试时测试一定要充分、完整。模块测试阶段,测试用例的构造不但要测试系统正常的运行情况,还要进行边界测试。边界测试是进行某一数据变量的大值和小值的测试,同时进行越界测试,即输入不该输入的数据变量测试系统的运行情况。理想的嵌入式系统是不应该由用户的信息交互导致死机的,这也是嵌入式设计的一个基本要求。因此,不论进行何种测试,系统死机都该被作为测试错误处理。在模块测试阶段,由模块化编程的基本思想,根据模块内部的紧凑程序,也可以把大的模块划分成小的模块。在程序内部,小模块之间数据传递的入口设计接口函数,用于快速地定位错误。用此模块嵌套的思想进行软件测试,需要模块内部结构清晰,数据链路简单。
三、集成测试
单个软件模块测试正确之后,将所有模块集成起来进行测试。本阶段主要是找出各模块之间数据传递和系统组成后的逻辑结构的错误。在宿主机上采用黑盒与白盒相结合的方法进行测试,要大限度地模拟实际运行环境,可以屏蔽掉一些不影响系统执行的和数据传递的难以模拟的函数。集成测试是模块化设计软件的测试优点充分体现的阶段。集成测试前,应该由程序员根据模块之间的数据的输入输出编写模块接口函数,这需要负责不同软件模块的程序员共同协调完成,然后将模块接口函数集成到接收数据模块的入口处。由前面的分析可知,单链路数据传递的软件模块集成测试时容易定位错误所在的软件模块。一个软件模块的数据不一定只有另外一个模块提供,即软件模块的数据链路不一定只是单链路的,测试时可以把复杂链路结构的数据传递划分为单链路结构数据传送进行错误定位。修改输出数据的软件模块时,可能导致输入数据的软件模块引入新的错误,因此在这里引入关联矩阵确定修改某一模块后需要重要测试的模块。
四、系统测试
集成测试完成后,退出宿主机测试环境,把系统移植到目标机上来,完成应用到现场环境中,从用户的角度对系统进行黑盒测试,验证每一项具体的功能。由于测试者对程序内容程序执行情况一无所知,因此本测试阶段的错误定位比较困难。系统测试阶段应该进行意外测试和破坏性测试,即测试系统正常执行情况下不该发生的激发活动和人为的破坏性的测试,进一步验证系统性能。系统测试阶段不应该确定错误后立即修改代码,应根据一定的错误发生频率,确定测试周期,在每个测试周期结束时修改代码,进行反复测试;否则,不但增加了完全测试的任务量,而且降低了测试的可信度。
一、系统平台测试
这部分包括硬件电路测试、操作系统及底层驱动程序的测试等。硬件电路的测试需要用专门的测试工具进行测试。这里不再多述。操作系统和底层驱动程序的测试主要包括测试操作系统的任务调度、实时性能、通信端口的数据传输率。该阶段测试完成后,系统应为一个完整的嵌入式系统平台,用户只需添加应用程序即可完成特定的任务。
二、模块测试
把大型的嵌入式软件系统划分为若干个相对较小的任务模块,由不同的程序员分别同时对其进行编码。编码完成后,把各个模块集成起来前,必须对单个模块进行测试。由于没有其它数据模块进行数据传递的支持,该阶段测试一段是在宿主机上进行的此阶段主要是进行白盒测试,尽可能地测试。每一个函数、每一个条件分支、每一个程序语句,提高代码测试的覆盖率。由于只有单个模块正确才有整体集成的必要性,因此,单个模块测试时测试一定要充分、完整。模块测试阶段,测试用例的构造不但要测试系统正常的运行情况,还要进行边界测试。边界测试是进行某一数据变量的大值和小值的测试,同时进行越界测试,即输入不该输入的数据变量测试系统的运行情况。理想的嵌入式系统是不应该由用户的信息交互导致死机的,这也是嵌入式设计的一个基本要求。因此,不论进行何种测试,系统死机都该被作为测试错误处理。在模块测试阶段,由模块化编程的基本思想,根据模块内部的紧凑程序,也可以把大的模块划分成小的模块。在程序内部,小模块之间数据传递的入口设计接口函数,用于快速地定位错误。用此模块嵌套的思想进行软件测试,需要模块内部结构清晰,数据链路简单。
三、集成测试
单个软件模块测试正确之后,将所有模块集成起来进行测试。本阶段主要是找出各模块之间数据传递和系统组成后的逻辑结构的错误。在宿主机上采用黑盒与白盒相结合的方法进行测试,要大限度地模拟实际运行环境,可以屏蔽掉一些不影响系统执行的和数据传递的难以模拟的函数。集成测试是模块化设计软件的测试优点充分体现的阶段。集成测试前,应该由程序员根据模块之间的数据的输入输出编写模块接口函数,这需要负责不同软件模块的程序员共同协调完成,然后将模块接口函数集成到接收数据模块的入口处。由前面的分析可知,单链路数据传递的软件模块集成测试时容易定位错误所在的软件模块。一个软件模块的数据不一定只有另外一个模块提供,即软件模块的数据链路不一定只是单链路的,测试时可以把复杂链路结构的数据传递划分为单链路结构数据传送进行错误定位。修改输出数据的软件模块时,可能导致输入数据的软件模块引入新的错误,因此在这里引入关联矩阵确定修改某一模块后需要重要测试的模块。
四、系统测试
集成测试完成后,退出宿主机测试环境,把系统移植到目标机上来,完成应用到现场环境中,从用户的角度对系统进行黑盒测试,验证每一项具体的功能。由于测试者对程序内容程序执行情况一无所知,因此本测试阶段的错误定位比较困难。系统测试阶段应该进行意外测试和破坏性测试,即测试系统正常执行情况下不该发生的激发活动和人为的破坏性的测试,进一步验证系统性能。系统测试阶段不应该确定错误后立即修改代码,应根据一定的错误发生频率,确定测试周期,在每个测试周期结束时修改代码,进行反复测试;否则,不但增加了完全测试的任务量,而且降低了测试的可信度。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南