嵌入式软件测试及案例-张刚
嵌入式软件测试——方法、案例与模板详解
![嵌入式软件测试——方法、案例与模板详解](https://img.taocdn.com/s3/m/74be62ce7d1cfad6195f312b3169a4517723e5de.png)
机械工业出版社出版的书籍
01 图书简介
03 目录
Hale Waihona Puke 目录02 前言 04 作者简介
《嵌入式软件测试——方法、案例与模板详解》是2017年机械工业出版社出版的书籍,作者是李龙、刘文贞、 铁坤。
图书简介
云计算、大数据、物联时代的到来,使越来越多的电子产品成为人们不可或缺的工具。尤其是嵌入式系统因 其低成本、小体积、低功耗、强稳定性、实时性强等优点越来越多地得到应用。本书重点针对嵌入式软件测试进 行全面介绍,包含大量测试方法和流程讲解,系统全面,实用性强。本书附带大量测试案例与模板详解,而且相 关站提供这些案例与模板的电子版,可供读者直接下载参考使用。主要内容包括:基于业务场景的嵌入式测试设 计。基于风险的嵌入式测试设计和风险评估方法探索式测试的设计如何在嵌入式系统中应用。任务驱动的嵌入式 测试方法、设计思路、实施方案等。用思维导图实现嵌入式测试的设计。大量模板可以下载,包括需求说明书、 测试计划、测试方案、测试用例、缺陷分析、测试报告等流程。
刘文贞中国软件测试联盟专家,性能测试专家,济南织雀测试实训基地高级培训讲师。
铁坤中国软件测试联盟专家,现为某络安全公司测试主管。
谢谢观看
2)很多测试工作者加入工作后,发现测试工作非常简单,只是点点界面,模拟用户使用软件,这是片面的, 这类工作只是测试的最初级水平,是靠人力驱动的测试,这种工作的发展前景不容乐观,并且会被自动化测试所 取代。
3)现在测试工作细分的领域非常多,至少包括性能测试、白盒测试、自动化测试等,所要求的技能水平越来 越高。近几年,测试人员的招聘指标已经增加了会写代码、会做自动化测试、会做性能测试、会软件工程管理等 要求,以后的要求会更高。
嵌入式软件测试方法
![嵌入式软件测试方法](https://img.taocdn.com/s3/m/4a696f9e7e192279168884868762caaedd33bae8.png)
嵌入式软件测试方法嵌入式软件测试方法是针对嵌入式系统开发的软件测试方法。
嵌入式系统是指嵌入在各种设备中的计算机系统,如智能手机、家庭电器、汽车、医疗设备等。
嵌入式软件测试的目标是确保嵌入式系统的软件质量和可靠性。
以下是常用的嵌入式软件测试方法:1.静态分析:静态分析是一种基于源代码或二进制代码的分析方法,用于检查代码中的错误和潜在的问题。
它通常包括代码审查、代码规范和代码耦合分析等。
静态分析可以在开发早期识别问题,并且可以帮助改进代码质量。
2.单元测试:单元测试是针对软件模块或功能的测试方法。
在嵌入式系统中,软件通常被分为多个模块,每个模块都有其特定的功能。
单元测试通过对每个模块进行测试,以确保它们按照预期运行。
单元测试可以使用各种测试技术,如白盒测试和黑盒测试。
3.集成测试:集成测试是将不同的模块或功能组合在一起进行测试的方法。
在嵌入式系统中,不同的模块通常需要相互协作才能实现系统的功能。
集成测试通过模拟实际的运行环境,测试模块之间的接口和交互,确保整个系统按照预期工作。
4.验收测试:验收测试是在开发完成后对整个系统进行的一系列测试。
验收测试的目标是确认系统是否符合用户需求和规格说明。
它通常由系统开发人员和最终用户共同进行,以确保系统的功能和性能满足用户的期望。
5.性能测试:性能测试是评估系统在不同负载条件下的性能和响应时间的方法。
在嵌入式系统中,性能测试可以用来评估系统的运行速度、内存使用情况和功耗等。
性能测试可以通过模拟实际的使用情况或使用工具和设备进行。
6.可靠性测试:可靠性测试是评估系统在长时间运行中的稳定性和可靠性的方法。
在嵌入式系统中,可靠性测试可以通过模拟不同的环境和使用条件,以确保系统在各种情况下都能正常工作。
7.安全测试:安全测试是评估系统的安全性和防护措施的方法。
嵌入式系统通常需要保护用户的隐私和数据安全。
安全测试可以通过模拟攻击、检查系统的漏洞和弱点等方式进行。
总的来说,嵌入式软件测试方法是多样的,旨在保证嵌入式系统的软件质量和可靠性。
嵌入式软件测试方法、案例与模板详解
![嵌入式软件测试方法、案例与模板详解](https://img.taocdn.com/s3/m/b5af7a1f0640be1e650e52ea551810a6f524c89d.png)
嵌入式软件测试方法、案例与模板详解我们所熟知的传统黑盒测试用例编写起来比较复杂,在大型信息系统产品快节奏的迭代项目、敏捷项目、耦合度高的产品中,传统的用例编写方法明显滞后或带来较多冗余的工作量,它使测试设计人员过度关注测试用例步骤的编写、修改、再修改,甚至根据现有测试用例的设计原则,为保证唯一性与可追溯性,会出现同一条测试用例经过多人执行永远得到相同的结果,这让人不得不想到另一个具有挑战性的词汇:自动化测试。
这种传统的用例设计方式,一次编写,多人运行相同的结果,没有思考的过程,严重阻碍了测试执行人员或者相关人员的创新意识,并且加大了他们的工作量。
这种方式问题很多也会不可杜绝的,问题解决的过程也是测试用例设计发展的过程。
下面我们从传统的测试用例的定义和用例设计所包含的内容说起。
测试用例定义:测试用例(Test Case)通俗一点来讲就是编制一组测试测试输入、执行条件、预期结果,去完成对某个特定需求或目标的测试。
完整的测试用例通常包括:●测试用例的编号●测试日期●测试用例设计人员和测试人员●测试用例的优先级●测试标题●测试目标●测试环境●测试数据/动作●测试的操作步骤●测试预期的结果根据上面的内容,我们甚至编写了一个非常标准的测试用例设计模板,如图7-1所示。
分明显。
在上述几个阶段,虽然对用例设计或编写方法进行适当改革,提高了快速响应当今软件行业交付节奏的能力和对产品质量的控制能力,并有利于项目过程中的用例评审,但是依然存在下列问题:1)测试用例里面写死了数据、业务步骤。
不同测试人员都按照具体步骤来测试,就好比车载导航,变成了“导航测试”了,如果需要测试其他路径、其他业务呢?有些测试人员就再复制一个用例出来,稍微改一个数据,造成用力例泛滥。
2)测试用例依然没有思考的过程。
负责第一次编写的测试人员有思考,但负责执行的测试人员,没有再有再继续跟研发人员交互测试过程,没有更深入的思考,而是仅仅按照用例执行,那这种效果等于走过场。
嵌入式软件测试 测试用例设计以及流程
![嵌入式软件测试 测试用例设计以及流程](https://img.taocdn.com/s3/m/633421d78662caaedd3383c4bb4cf7ec4bfeb65f.png)
嵌入式软件测试测试用例设计以及流程下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!嵌入式软件测试:测试用例设计与流程介绍在嵌入式软件开发中,测试是确保产品质量和稳定性的关键步骤之一。
农机路径三维建模和导航研究——基于嵌入式平台和ArcGIS
![农机路径三维建模和导航研究——基于嵌入式平台和ArcGIS](https://img.taocdn.com/s3/m/e1e0232da7c30c22590102020740be1e640ecc7b.png)
农机路径三维建模和导航研究—基于嵌入式平台和ArcGIS张 刚1,靳继红1,张永慧2(1.焦作师范高等专科学校,河南焦作 454000;2.焦作市环境信息中心,河南焦作 454000)摘 要:为了提高农机的自动导航水平,简化底层软件和硬件系统,提高控制系统的逻辑运算和控制能力,将嵌入式系统引入到导航系统的设计上,并提出了基于ArcGIS和快速扩展随机树(RRT)的路径空间建模和规划算法,实现了农机的自动路径规划和导航。
为了验证该方案的可行性,以无人驾驶拖拉机为测试对象,采用ArcGIS软件和RRT算法对路径进行了测试。
结果表明:该方案可以快速地规划出拖拉机初始位置到目标位置的路径,且规划的最短路径和实际最短路径基本吻合,从而验证了方案的可行性和可靠性。
关键词:嵌入式平台;ArcGIS软件;路径规划;自动导航;农机中图分类号:S2127;TP311.52 文献标识码:A文章编号:1003-188X(2021)11-0230-040 引言随着农业自动化和智能化水平的不断提升,设计了无人驾驶农机,其自动导航系统是控制系统设计的关键,普通的单片机或者PLC很难完成控制要求,因此要实现控制系统的功能必须使用具有较高控制和运算能力的微处理器,而嵌入式微处理器和嵌入式Linux系统可以胜任这个任务。
嵌入式系统的引入不仅可以降低系统设计的复杂程度,也可以大大提高系统的逻辑运算和控制能力,使农机自主地完成路径规划和路径跟踪,从而实现自主导航,提高了农机的自动化和智能化水平。
1 嵌入式平台和自动导航系统在GIS刚出现时,从事GIS专业的人员主要专注于GIS数据的创建和地理信息的构造,后来专业人员开始使用这些数据库和地理信息,并对数据库和地理信息进行编辑。
ArcGIS是一个完整的GIS应用软件组合,在对地理信息数据库进行编辑的同时,可为用户提供各种地理信息服务。
自动导航系统是无人驾驶农机最重要的功能系统,而系统的自主路径规划是关键,采用嵌入式平台和ArcGIS实现自动导航的流程如图1所示。
Linux在嵌入式实时系统中的应用
![Linux在嵌入式实时系统中的应用](https://img.taocdn.com/s3/m/e0e73299e43a580216fc700abb68a98270feac42.png)
Linux在嵌入式实时系统中的应用
高绿;张刚
【期刊名称】《科技情报开发与经济》
【年(卷),期】2008(018)014
【摘要】阐述了UNUX系统在实时性方面的不足及改进方法,探讨了Linux实时系统的商业化.
【总页数】2页(P157-158)
【作者】高绿;张刚
【作者单位】太原理工大学信息工程学院,山西太原,030024;太原理工大学信息工程学院,山西太原,030024
【正文语种】中文
【中图分类】TP316.8
【相关文献】
1.嵌入式实时系统在继电保护软件中的应用 [J], 王强喜
2.嵌入式实时系统在移动机器人中的应用研究 [J], 李渊;言勇华
3.嵌入式实时系统在移动机器人中的应用研究 [J], 李渊;言勇华
4.嵌入式实时系统在通信系统中的应用 [J], 王为
5.嵌入式实时系统在通信系统中的应用 [J], 王为
因版权原因,仅展示原文概要,查看原文内容请购买。
嵌入式软件测试及案例-张刚
![嵌入式软件测试及案例-张刚](https://img.taocdn.com/s3/m/4201dc4bf7ec4afe04a1dfc8.png)
嵌入式软件的特点
嵌入式系统的特点
高度分散,结构和处理器种类多 操作系统内核小、资源少 实时性 可靠性和安全性
软硬件结合紧密
专门的环境和开发工具 体积小、重量轻
嵌入式软件的特点
嵌入式软件的特点与嵌入式系统的特点相适应 实时性 可靠性 专用性 软硬件联系紧密
主要内容
嵌入式软件的特点 嵌入式软件测试的难点及策略 嵌入式软件测试案例 结束语
– 初始化 – 中断分析
必要时才使用中断 中断嵌套、中断保护和恢复、堆栈使用、优先级和约束、资源竞争、 异常处理
– 实时性
提取模型最好,最坏情况 超时保护
– 可靠性
关键软件进行SFMEA(单点)、SFTA(组合) 可靠性增长、可靠性验证 软件正确时,对硬件的容错,例如:冗余、看门狗、内存填充
嵌入式软件测试的难点及策略
– 变量(数据)与算法处理 规定的安全性子集、经过静态分析,源、宿、类型、量纲、格 式、值域、分辨率 递推与迭代有溢出保护 对不正确反馈有保护机制 算法失败均做处理 无不正确的循环操作和逻辑判断 数据有效位满足要求 – 接口处理 接口相关文件最新,软件需求、设计、软件使用规范一致 应用软件的硬件接口需求、设计和器件使用手册一致 接口交换数据:源、宿、类型、格式、传输速率、分辨率、吞 吐量,在传输前检查信道
– 目标环境和宿主环境测试
在嵌入式软件测试中,要在基于目标的测试和基于宿主的测试之 间作出折衷。基于目标的测试消耗较多的经费和时间,而基于宿 主的测试代价较小,但毕竟是在模拟环境中进行的。
嵌入式软件测试的难点及策略
重点关注以下事宜
– 上电或重启自检、在线自检
回避系统“带病”投入运行 使系统SW处于完备、正确的初始状态
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结束语
黑盒测试结合白盒测试 对于关键性软件要采取白盒测试 测试的环境 关注自检、初始化、接口、实时性、中断分析、 可靠性等
欢迎批评指正! 谢谢大家!
问题:复位措施失效 分析:代码审查时发现,定时器中断0程序设计错误失效,该中断在 退出时使用DISABLE-GIE语句,来实现关闭所有中断,迫使硬件复 位,实际上DISABLE-GIE是关闭了全局中断使用标志,中断是否被 禁止是在状态寄存器ST的实现;在C语言程序被中断时,中断程序将 自动保护所有用到的寄存器,该寄存器用到了ST,退出中断时恢复 了ST的内容
嵌入式软件测试的难点及策略
– 中断
周期性、非周期、影响实时性
– 可靠性
自身的正确性、对硬件的容错
– 专用性
不同的处理器,需要不同测试环境
缺乏一般测试技术和测试工具的实施的基本条件 嵌入式软件应该是最难测的一类软件
嵌入式软件测试的难点及策略
嵌入式软件测试策略
– 白盒与黑盒测试结合
对于嵌入式软件,白盒测试一般不必在目标硬件上进行,更为实 际的方式是在开发环境中通过硬件仿真进行,所以选取的测试工 具应该支持在宿主环境中的测试。
嵌入式软件测试案例
处理结果: 在DISABLE-GIE后加一条无限循环语句,不能 退出中断,不能恢复ST的内容,超时后,看门狗触发硬 件复位,完成软件重启的要求 经验教训:研制人员要深入细致地理解需求,这个案例中 研制人员也受到需求的误导;要深入理解中断的编写方法 和计算机的中断处理过程
主要内容
嵌入式软件
– 实现嵌入式系统功能的软件
嵌入式软件的基本分类
– 按照软件结构分类:单线程和事件驱动
嵌入式软件的特点
-单线程:无主控程序,循环轮询系统和状态转移图 (安全性问题) -事件驱动:
中断驱动系统(循环主控、优先级、错误处理); 多任务(存储、I/O、调度、通信、同步、互斥、中断 管理、时钟管理)
概述:实现任务管理和调度,信号量和消息队列管理 问题:动态覆盖测试过程中,插桩烧写到目标机运行,出现异 常,启动失败 分析:BSP启动程序插入插桩函数,桩函数中加了任务抢 占锁,正常启动前任务TCB首地址为0,任务抢占函数对地 址0X50地址进行了写操作,写入地址错误,引起异常 处理结果:修改BSP启动过程的桩函数,取消任务保护锁 经验教训:加强数据流分析和代码走查
嵌入式软件测试案例
分析:分析下位机工作参数,排除下位机异常;以本机工作 参数为依据,通过故障树分析,排除通信接口硬件故障;考虑 到下位机是按每个控制周期中收到的指令执行输出,控制 指令由本机软件按字节发送到串行通信接口缓冲器,如果 在某个控制周期中指令字节未能按程序及时送达接口缓冲 器,则字节间间隔可能超过协议规定值,该控制周期的控制 指令被下位机绝执行.故障定位在本机向下位机发送数据 时被中断干扰. 通过人工走查程序,有A中断周期为0.5秒, 服务执行时间为5ms;B中断周期为1s,中断服务超时执行 时间为2ms.这两个中断都有可能造成下位机接收字节间 隔大于预期的230μs. 处理结果:与下位机通讯时关中断 经验教训:任务划分是实时系统软件概要设计的一项重要 工作.任务划分优先于模块划分.任务分解应考虑任务间接 口,时间特征和优先级;用人工走查辅助分析任务时间资源 冲突
中国航天科技集团公司软件评测中心
嵌入式软件测试及案例
张刚
2011年4月
主要内容
嵌入式软件的特点 嵌入式软件测试的难点及策略 嵌入式软件测试案例 结束语
嵌入式软件的特点
嵌入式系统
– 以应用为中心,以计算机技术为基础,软件硬件可剪 裁,功能、可靠性、成本、体积、功耗严格要求的专 用计算机系统。 – 由硬件层、中间层、软件层、功能层组成。
嵌入式软件测试案例
任务抢占导致打印数据的破坏
概述:实现任务管理和调度,信号量和消息队列管理 问题:动态覆盖测试过程中,打印任务输出的覆盖率信息不 完整 分析:打印任务在读覆盖数据的过程被其他任务抢占,该 任务修改了覆盖率数据,导致打印任务输出的覆盖率信息 不完整 处理结果:打印任务加上任务抢占锁 经验教训:加强对多任务资源竞争分析
嵌入式软件测试案例
初始化不正确造成时钟错误
概述:主要完成接收机的数据采集和处理,运行在80C31 上 问题:接收机上电运行时,时间系统初始化出现错误,经 过多次时钟修正才恢复正常 分析:软件在进行时钟初始化前未对星历的有效性和正确 性进行判断,造成当接收机接收到错误星历时仍然进行时 钟初始化,从而影响系统时钟 处理结果:加入星历健康判断 经验教训:在设计时加强异常分析,保证设计的可靠性
嵌入式软件测试的难点及策略
– 状态转移的处理
转移至需求规定的不允许状态的保护机制 事件和操作顺序正确 工作模式与环境条件应片配 处理和决策逻辑要完备
主要内容
嵌入式软件的特点 嵌入式软件测试的难点及策略 嵌入式软件测试案例 结束语
嵌入式软件测试案例
写入地址错误引起启动失败
嵌入式软件测试的难点及策略
– 变量(数据)与算法处理 规定的安全性子集、经过静态分析,源、宿、类型、量纲、格 式、值域、分辨率 递推与迭代有溢出保护 对不正确反馈有保护机制 算法失败均做处理 无不正确的循环操作和逻辑判断 数据有效位满足要求 – 接口处理 接口相关文件最新,软件需求、设计、软件使用规范一致 应用软件的硬件接口需求、设计和器件使用手册一致 接口交换数据:源、宿、类型、格式、传输速率、分辨率、吞 吐量,在传输前检查信道
嵌入式软件测试案例
关中断指令使用不当导致复位措施失效
概述:实现实时采集和自主控制,软件包括2个定时器中断,1个外部 中断,另外有1个看门狗;运行在DSP上;需求规格说明可靠性需求 为:
– 当软件跑飞时,看门狗触发硬件复位 – 使用定时器监视主循环的执行时间,当其严重超时时,强行关闭硬件的 总中断,迫使硬件复位,以让软件重启
– 目标环境和宿主环境测试
在嵌入式软件测试中,要在基于目标的测试和基于宿主的测试之 间作出折衷。基于目标的测试消耗较多的经费和时间,而基于宿 主的测试代价较小,但毕竟是在模拟环境中进行的。
嵌入式软件测试的难点及策略
重点关注以下事宜
– 上电或重启自检、在线自检
回避系统“带病”投入运行 使系统SW处于完备、正确的初始状态
嵌入式软件的特点
嵌入式系统的特点
高度分散,结构和处理器种类多 操作系统内核小、资源少 实时性 可靠性和安全性
软硬件结合紧密
专门的环境和开发工具 体积小、重量轻
嵌入式软件的特点
嵌入式软件的特点与嵌入式系统的特点相适应 实时性 可靠性 专用性 软硬件联系紧密
主要内容
嵌入式软件的特点 嵌入式软件测试的难点及策略 嵌入式软件测试案例 结束语
嵌入式软件测试的难点及策略
测试难点
– 接口
有外设,数据的采集和控制输出 运行的数据不易观察或获得(输入是硬件的输出、没有显示), 求高效,用汇编语言 无真实运行环境,模拟或半仿真(仿真的正确性,代价),未 完成不能运行,例如:专门建立地测环境 测试时可用资源少
– 测试结果的获得
– 测试环境
– 资源有限
– 初始化 – 中断分析
必要时才使用中断 中断嵌套、中断保护和恢复、堆栈使用、优先级和约束、资源竞争、 异常处理
– 实时性
提取模型最好,最坏情况 超时保护
– 可靠性
关键软件进行SFMEA(单点)、SFTA(组合) 可靠性增长、可靠性验证 软件正确时,对硬件的容错,例如:冗余、看门狗、内存填充
嵌入式软件测试案例
多任务嵌套时间冲突导致串行通信失败
概述:大规模实时控制软件。本机为控制器,下位机为执 行机构处理器,二者均为反馈控制回路的组成部件.本机与 下位机通过半双工异步串行通信口交换控制信息.通讯协 议规定:如果本机未能按规定的数据格式和在规定的通信 时间内完成数据的发送,则下位机不执行本次指令. 问题:在运行过程中,当分析其他分系统设备的工程数据时, 发现在某个时间段内,本应连续的控制过程有间歇停控.回 放故障时间段的工程数据,显示本机与下位机硬件工作正 常;控制效果与目标值一致,但控制过程的进行时间大于预 期值.