更全的杂志信息网

嵌入式软件配置项测试技术及策略

更新时间:2009-03-28

0 引言

随着嵌入式软件的规模越来越大,嵌入式软件也需要进行系统化测试。由于嵌入式系统开发过程中,软件和硬件始终相互依赖,其开发模式、调试方法都有所不同,因此嵌入式软件不仅遵循软件测试的基本原则,也有其自己的特点[1]

配置项测试就是其中必不可少的环节。配置项测试可以有效的发现配置项范围内存在的缺陷和问题,同时验证配置项能否实现需求规格说明中的功能、性能、质量属性、约束及安全性等技术要求,检验配置项接口的正确性和互操作性。

配置项测试采用黑盒测试。软件黑盒测试要在软件的接口处进行,利用软件的用途和外部特征查找软件缺陷,对于某些代码段可用白盒测试进行补充[1]

温室栽培番茄育苗管理的关键时期,此时期如果管理不当,会对幼苗生产造成很大影响,稍有疏忽就会造成严重的经济损失。那么应注意哪些问题呢?

综上所述,从多方面分析,建筑节能工业建筑设计中的应用是非常关键的,其具有较大的发展空间,由于对我国生态环境有着决定性影响,逐渐受到有关部门的关注,在进行工业建筑设计过程中不仅要从建筑本身的使用性能和质量出发,还要充分发挥节能措施,尽量降低工业建筑施工过程中所造成的能源消耗,从而推动工业建筑事业的健康发展。

1 配置项测试技术

嵌入式软件配置项测试时,要把系统预期用途作为重要依据,判断软件是否满足需求规格说明。

以下简单介绍嵌入式软件配置项测试的技术要求和测试类别,并针对不同的测试类型,分析几种基本测试技术。

1.1 配置项测试的技术要求

配置项测试一般要符合以下技术要求[2]:

柳含烟认为萧飞羽不仅搞错了当初在马车上露脸的是谁,从那“傲慢得要命的丫头”该是唤起的模糊印象也是她多么年幼无知,以致错上加错搞混了她和白雪,又由于为她解穴时发现她非处子才说:“如果你不是名花有主我一定不会放过你。”也因为他认为她稚气无知才会有意外的言词,并把她如此模样摆在腿上欣赏。她温顺地道:“含烟满足您心疼含烟,也会努力使您信任含烟。”萧飞羽凝视柳含烟,目光渐渐深邃,以致柳含烟觉得那目光透过她的双眸看到了她的心扉,心也紧张得像小鹿一样“砰砰”乱跳,因为她认为她真的唤起了他疼爱她,所以他正在思索如何犒赏年幼无知的她。也非常担心她“名花有主”也不放过她。

1)应覆盖需求规格说明所有功能、性能等特性;

适用的测试类别:

3)测试用例的输入应至少包括有效等价类值、无效等价类值和边界数据值;

4)应测试人机交互界面提供的操作和显示界面,包括用非常规操作、误操作、快速操作测试界面的可靠性;

5)应测试运行条件在边界状态和异常状态下,或在人为设定的状态下,配置项的功能和性能;

6)应测试配置项的安全性和数据的安全保密性;

11)对安全性关键的配置项,应对其进行安全性分析,明确每一个危险状态和导致危险的可能原因,并对此进行针对性的测试;

适用的测试类别:

9)应对配置项的功能、性能进行强度测试;

10)应测试用于提高配置项的安全性和可靠性的方案,如结构、算法、容错、冗余、中断处理等;

其五,目的性。目的是指人们在从事活动时所要达到的目标和实效。中共十八届三中全会提出,全面深化改革的总目标,是完善和发展中国特色社会主义制度,推进国家治理体系和治理能力现代化。从这一总目标出发,创新社会治理的目的性要求,是打造共建共治的社会治理新格局,推进社会治理现代化。相对于以往的社会管理模式,从共建到共治是一个在国家治理总目标下的社会治理结构创新和系统重构问题,其中创新重在改进社会治理体制,重构重在不断完善党的领导、政府主导、社会协同、公众参与、法治保障的社会治理体系,通过目标和体制创新与实践模式创新的结合,不断提高社会治理的科学化和现代化水平。

7)应测试配置项的所有外部输入、输出接口及其格式(包括和硬件之间的接口),及要人为设定接口异常值和边界值;

12)对有恢复或重置功能需求的配置项,应测试其恢复或重置功能和平均恢复时间,并且对每一类导致恢复或重置的情况进行测试。

1.2 配置项测试基本技术及适用的测试类别

1.2.1 等价类划分

吕叔湘《现代汉语八百词》(1999)把动态助词“过”分为两种:一是:“表示动作的结束和完成”,如“等我问过了他再告诉你”二是:“表示过去曾经有过这样的事情”或“已有的经验”,如“这本小说我看过”。根据吕叔湘先生的提法,通常把放在动词或动词性短语后面表示“动作完毕”的“过”记作“过1”。把放在动词或动词性短语或形容词后面表示“曾经经历过”的“过”记作“过2”。

等价类划分是选择有限子集“代表”所有可能的输入全集,将被测试软件的输入和输出分成许多区域,对于一个区中的任何值,软件的行为是等价的。

如测试长时间状态转换是否正常,可以采用随机测试法中经典方法——“猴”测试,进行杂乱无章的操作。如长时间随机输入错误数据,验证软件的可靠性和安全性。

设计正常测试用例和异常测试用例时,即激励类型为有效等价类和无效等价类,即使用等价类划分。

其中无效类比有效类更能够发现问题,故无效类应尽量做到全覆盖。

  

图1 弱等价类划分

异常功能测试(FN-A):验证系统自身异常处理的能力,输入为无效等价类。

  

图2 强一般等价类划分

图2中,有效等价类取值4个,无效等价类取值2个,有效类和无效类设置依然不能满足测试充分性,无效类验证不充分。

  

图3 健壮强等价类划分

图3中,有效等价类和无效等价类做到全覆盖,测试能得到充分验证。

适用的测试类别:

论“壮族三月三”节庆的保护传承及可持续发展 ……………………………………………………………………… 黎 炼(2/51)

1)功能测试(FN):又称正确性测试,检查软件的功能是否符合需求规格说明[1]。其中包括:

正常功能测试(FN-N):正常条件或正常数据的情况下,对软件功能进行的测试,输入为有效等价类。

图1中,有效等价类取值2个,无效等价类取值1个,取值个数过少,取值范围狭窄,所以测试用例设计非常不充分。

2)性能测试(PF):对软件需求规格说明文档中明确或隐含的的性能需求逐项输入有效等价类,验证其性能满足要求;

3)接口测试(IF):输入无效等价类,验证当输入错误接口数据时,软件处理是否出错;

4)安全性、可靠性测试(SAF):设置无效等价类来验证,一般有看门狗检测、数据发送异常、设置其它配置项故障测试报错机制、通信异常检测等手段;

1.2.2 边界值分析

边界区域是错误高发区,如存在边界值,边界值测试是必须的。

应将边界周围的点覆盖,以达到良好的健壮性。

当试探失败时,我们可以将该决策神经元的返回值作为参数反馈到前一个神经元去。这样我们得到了一个只有两个神经元的神经网络,但显然它比纯粹经验框架下的线性运算要精确多了。此外,我们还可以从另一个方向改造原神经元,将每个输入本身改造成一个神经元,输出值并不是简单读数,而是计算后的数值。实际上,利用类似的原理,我们可以设计出相当复杂的神经网络拓扑结构。

  

图4 一般边界值分析

图4中,边界点覆盖不充分,缺少“顶点”处的边界值设置。

  

图5 健壮边界值分析

图5中,边界点覆盖非常充分,每个“顶点”处边界周围也都有覆盖,健壮性好。

适用的测试类别:

1)边界测试(BD):使软件处于边界或端点情况下,观测软件运行是否出错;

2)接口测试(IF):针对软件需求规格说明中外部接口的极限值,利用边界值分析,验证接口接收极限数据时,软件处理是否出错。

1.2.3 正交设计法

在配置项测试中,当输入条件为两个或更多时,且存在组合配对关系时,正交设计法是设计测试用例时必须考虑的方法之一。

正交设计法是基于配对组合的算法,选择满足覆盖要求的配对,列出正交设计表,直观的看到该处理所涉及的所有组合条件,但要筛除效率低下的组合。

适用的测试类别:

该目标下,彰显的是比亚迪叉车对自身产品的信心,以及对市场充分调研后的果断抉择。其中,平衡重式叉车、微型搬运车、仓储托盘车等产品将会在2019年进行技术迭代,推出新品,打造高电压产品,并将电机、电控、驱动集成新技术应用于新品叉车,助力目标实现和行业升级。

功能测试(FN):当输入条件为两个或更多时,且一个功能改变会影响其它功能时,利用正交设计法设置输入不同且大量组合数据,验证功能在多种条件下都能正确实现。

1.2.4 状态转换法

嵌入式软件系统全部或部分表现出基于状态的行为[1],状态转换通过建立导致转换事件的方法来设计测试用例,测试状态之间连续的转换,保证所有转换至少遍历一次,所有的事件至少触发一次。

2)配置项的每个特性应至少被一个正常测试用例和一个被认可的异常测试用例所覆盖;

1)功能测试(FN):存在多个工作状态及子模式时,可以采取这种方法来测试各个工作状态转换是否正确;

2)强度测试(IS):在软件多个工作状态或子模式间任意连续转换,将所有事件不规律进行触发。

1.2.5 随机测试法

在所有输入数据中随机选取输入,可在超长时间范围内测试,这种方能发现长而复杂的操作链产生的问题,而通过有计划的测试发现这些问题很困难。

眼前的东西忽然飕飕地转起来,而且抖,我一阵眩晕,差点从椅子上栽下去。我赶紧摘下眼镜擦了擦,借机稳了稳心神。我听见自己说,别晃,别晃。很管用,果然就不晃了。不晃之后我端起酒杯敬了李老黑两杯酒,我说李书记,谢谢谢谢谢谢李书记,我太激动了,激动的心情非非常。我说话已经乱了。

适用的测试类别:

强度测试(IS):验证软件可以正常运行到何种程度,不间断运行软件、大量多次发送错误信息、快速杂乱的输入数据等手段来实现。

1.2.6 插桩测试法

软件插桩是通过修改软件代码,来手动设置发送特定数据、观测特定变量或数组、观测具体数据变化趋势,但插桩语句不能对配置项功能性能造成影响。

8)应测试配置项的全部存储量、输入/输出通道的吞吐能力和处理时间余量;

1)接口测试(IF):软件接收区插桩设置极限值或错误数据,测试该配置项软件在异常情况下,功能、时序是否正确;

2)功能测试(FN):测试一组数据的变化趋势、具体数值时,利用插桩数组对观测数据进行大量连续的记录;

3)性能测试(PN):测试某个功能的处理性能时,在处理的起点和终点插桩跟踪语句,读出跟踪的总时长即为性能;

4)余量测试(RC):插桩占存储余量20%~30%的数组,达到存储边界的软件运行是否正常;

人才梯队是根据企业的增长来匹配的,只能提前一点点,不能提前很多,提前很多会造成浪费。但一定要有梯队,因为没有梯队,后面的机制是会失灵的。没有梯队,机制会失灵;没有评价,机制会死机;没有选择,组织会板结。这三点非常重要。

5)可靠性测试:插桩设置死循环等超时语句,观测软件看门狗能否起效。插桩设置发送多个异常数据,观测软件的容错性。

激电中梯测量采用短导线中间梯度装置,测量仪器为DJF10-2型大功率智能发送机和DJS-9数字直流激电接收机,以及氯化铅固体不极化电极等,采用U形布线原则,每次布极,观测段选在AB的中部,范围不大于2/3AB距。1∶5000激电中梯剖面点距10m,供电极距AB=1000m,MN=20m,供电周期32s,断电延时200ms。1∶2000激电中梯剖面点距5m,供电极距AB=800m,MN=40m,供电周期16s。

2 嵌入式软件配置项测试常见问题及测试策略

由于嵌入式软件的特殊性,在测试过程中不仅要融入普通的测试技术,还需要辅助以仪器和特殊策略才能更有效的对功能、性能、接口、安全性进行验证。

正因为各种定义的出发点和视角不一,所以需要公认机构对标准和标准化的概念进行统一界定。这也是标准化的基本概念演进趋于成熟的过程。

以下将嵌入式软件在实际测试中出现的代表性问题及测试策略进行深入分析。

2.1 文档与代码不一致问题

文档类问题主要表现为由于代码员脱离需求规格说明的约束,会出现缺少或增加功能点、功能处理流程改变、接口传送格式描述不清晰、接口数据极限值精确度等信息不清晰。

在进入动态测试前,必须对软件需求规格说明的功能、性能、外部接口、安全性等描述进行文档审查:

1)检查功能点描述是否完整准确,处理过程是否清晰,有明确的输入和输出作为黑盒测试的测试依据;

2)辅助白盒测试方法,利用代码审查,检查逻辑流程图和代码实现是否一致;

3)性能、安全性指标是否清晰;

论习近平总书记关于人民幸福重要论述的时代价值…………………………………………郭曰铎,张荣华(4,76)

4)外部接口的数据格式、个数、长度、值域、精确度等接口必要信息是否完整清晰。

通过文档审查,基本可以达到软件配置项测试的入口条件。

2.2 功能、性能类问题

功能性能类问题主要表现为功能实现和需求不符、性能不达标。

2.2.1 信号类、离散量的功能测试策略

此类功能测试首先应了解各个信号对应的硬件管脚,再将硬件输出的信号波形用示波器读出,来验证功能、性能的正确性,有时还需要信号源输入脉冲信号作为激发信号:

1)测试硬件的收发控制功能:采用信号源输入脉冲信号,用示波器观测输出电平波形与信号源输入是否一致,验证收发控制是否正确;

2)测试时分控制功能:采用信号源输入脉冲信号,利用示波器观测时分通道高低电平来判断选通情况,一般选通通道呈现高电平;

3)测试某硬件板信号控制功能:输入单端脉冲信号,用示波器观测输出信号与输入信波形号是否一致,一致则信号控制功能正常。

可利用示波器辅助的功能测试一般有:

1)示波器观测复位信号产生的复位高电平,验证复位功能正确性;

2)示波器测量单片机离散量对应管脚显示高低电平,验证离散量置位的正确性;

3)软件插桩设置该配置项软件运行超时,利用示波器观测超时后是否有复位高电平,验证看门狗能否起效,满足安全性要求;

4)在处理流程起始插桩设置高低电平变化,示波器观测对应管脚上的信号高低电平变化,计算高低电平间隔时间即可验证性能;

5)切换不同工作状态,示波器连接硬件管脚测量脉冲宽度,可间接验证该工作状态下的采样率、工作频率是否正确。

2.2.2 串口通信、线性调频信号的功能测试策略

此类功能测试需借助频谱仪观测输出频率、带宽、波形等信息:

1)测试模块是否工作正常,可通过频谱仪测试该模块输出频率是否正确;

2)用频谱仪测试输出连续波频率,验证模块产生连续波信号功能是否正常;

3)用频谱仪测试输出带宽,验证模块产生线性调频信号功能是否正常;

4)设置正确串口通信命令和错误通信命令,用频谱仪观测模块的信号频率,验证串口通信是否正常;

5)不同工作状态下,频谱仪测试工作频率是否设置正确;

6)通过串口多次大量发送错误指令,利用频谱仪监控输出波形是否稳定,可以直观验证该模块的健壮性。

2.2.3 变量值、时序类、趋势类、处理时间类的测试策略

当需要观测软件的具体变量数据、处理时序、数据趋势、数据幅度等信息,可借助该嵌入式软件专用的调试工具实现:

1)测试软件控制信息、状态信息及波形,在调试工具中直接输入变量地址,查看该地址中控制参数、波形数值是否正确;

2)需要观测一组数据的变化趋势时,可软件插桩对数据进行连续记录,利用调试工具对记录数据画图,选择需要观测的数据长度、数据步进后,可清晰看到数据变化趋势、变化范围,验证了该功能是否达到预期效果;

3)测试软件处理时序是否正确,软件插桩跟踪语句在处理流程的起始处,调试工具即可画出各个处理模块的调用时序图;

4)测试软件处理的吞吐时间、响应时间等性能时,将关心的处理流程用插桩跟踪语句,调试工具可测量处理时长,即可分析处理时间性能能否达标。

2.3 异常值、边界值未作保护类问题

这类测试需要插桩输入无效类输入和边界类数据,用调试工具监控变量数值、时序图、运行情况,验证该软件是否进行了异常保护,防止了时序混乱和死机等严重错误的发生。

1)设置单个或多个条件参数组合后达到临界值时,观测软件能否正常运行;

2)软件插桩让该模块重要参数发生错误,观测软件的健壮性,是否出现死机或功能失效;

3)接口测试中着重观测异常值、边界值是否做了保护,插桩使软件接收边界值或异常值,观测软件能否正常运行。

2.4 安全性、可靠性问题

很多嵌入式软件在正常的情况下比较稳定,但将软件置于“恶劣环境”后还能否正常运行、无功能失效,是软件安全性和可靠性的关注重点:

1)对于存在多个工作状态的嵌入式软件,可人工快速、无序、5~8小时的不间断切换和操作;

2)软件插桩组合设置重要参数为异常/边界值后,再次进行无序快速的操作,观测软件能否正常运行;

3)软件插桩占存储空间20%~30%(看具体要求,但至少要20%)的数组,程序加载后,控制嵌入式软件进入最饱和状态,观测软件功能运行是否正常;

4)控制嵌入式软件进入最饱和工作状态,读出每个工作状态下的处理时间,和预计处理时间相比,观测能否留出20%~30%的时间余量;

5)设置配置项硬件故障,观测该配置项能否向系统上报故障信息。

4 结束语

本文深入分析了在嵌入式软件配置项测试过程中,在熟练运用基本测试技术的基础上,根据软件运行环境的特点,采用了对应的调试工具和丰富的辅助手段,制定有效的测试策略,设计充足的正常测试用例、边界和异常测试用例、强度测试用例、安全性测试用例,就可达到良好的配置项测试效果,大幅度提高发现软件缺陷的概率,对以后测试工作者有一定的指导意义。

参考文献:

[1] 康一梅,张永革,李志军,胡江,武伟.嵌入式软件测试[M].北京:机械工业出版社,2008.

[2] 朱少民.软件测试方法和技术[M].北京:清华大学出版社,2005.

[3] GJB/Z141-2004[S].军用软件测试指南.中国人民解放军总装备部,2004.

[4] 石磊,林晓欲.KTFlow在嵌入式软件测试过程管理中的应用[J].微处理机,2012(6):44-50.

[5] 王象刚.软件测试过程管理工具的设计与实现[J].SOFTWARE.2014.35(2) :96-97.

 
魏雪卉
《火控雷达技术》 2018年第01期
《火控雷达技术》2018年第01期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息