嵌入式软件测试技术基础篇资料下载.pdf
《嵌入式软件测试技术基础篇资料下载.pdf》由会员分享,可在线阅读,更多相关《嵌入式软件测试技术基础篇资料下载.pdf(51页珍藏版)》请在冰豆网上搜索。
软件测试基础知识?
软件测试基本概念软件测试基本概念?
软件测试基本技术软件测试基本技术4嵌入式软件测试基础:
关于软件测试?
回顾软件测试?
软件测试基本概念?
定义、原则、过程、分类、模型定义、原则、过程、分类、模型?
测试用例、插装、打桩测试用例、插装、打桩?
静态测试、动态测试静态测试、动态测试?
白盒测试、黑盒测试白盒测试、黑盒测试?
策略与管理策略与管理?
通过软件测试,我们要解决什么问题?
?
软件功能软件功能对不对?
对不对?
代码质量代码质量高不高?
高不高?
测试过程测试过程得唔得?
得唔得?
5嵌入式软件测试基础:
软件测试的三个基本问题?
软件功能对不对?
需求准确需求准确?
功能正确、完整功能正确、完整?
性能可靠性能可靠?
代码质量高不高?
规范(可维护、易理解)规范(可维护、易理解)?
少缺陷少缺陷?
健壮(容错、结构化)健壮(容错、结构化)?
测试过程得唔得?
有效有效?
有利有利?
有序有序6嵌入式软件测试基础:
软件测试的基本策略“两条腿走路”?
技术是基础技术是基础?
静态测试静态测试?
动态测试动态测试?
管理是保障管理是保障?
计划计划?
策略策略?
资源配置资源配置?
过程管理过程管理?
缺陷追踪缺陷追踪代码质量代码质量?
软件功能软件功能?
测试过程测试过程?
7嵌入式软件测试基础:
软件测试的基本策略现代软件工程的测试策略?
测试贯穿于开发的全过程测试贯穿于开发的全过程?
不形成专门的不形成专门的“测试阶段测试阶段”需求定义设计编码调试系统集成需求分析用例设计静态分析单元测试集成测试8嵌入式软件测试基础:
软件测试的基本策略测试从需求开始?
需求定义是软件生命的开始需求定义是软件生命的开始?
准确的需求是软件测试的前提准确的需求是软件测试的前提质量从代码抓起?
软件质量的基础是软件质量的基础是“优质优质”的代码的代码?
如何获得高质量的代码如何获得高质量的代码?
“预防”“预防”?
“治病”“治病”?
“强身”“强身”9嵌入式软件测试基础:
软件测试的基本策略先静后动先静态分析,再动态测试?
多数缺陷源于编程语言使用不当多数缺陷源于编程语言使用不当?
静态分析能有效地发现之静态分析能有效地发现之?
静态分析能大大减轻后续测试的工作量,明显提升动态测试的效果静态分析能大大减轻后续测试的工作量,明显提升动态测试的效果?
静态分析能及早地发现问题,改正问题静态分析能及早地发现问题,改正问题?
静态分析实施容易,操作简单静态分析实施容易,操作简单由小到大先单元测试,再集成测试?
单元测试完成了,集成测试才有意义单元测试完成了,集成测试才有意义10嵌入式软件测试基础:
软件测试的基本策略测试工具选择?
工欲善其事,必先利其器工欲善其事,必先利其器?
通常工具是必需的,但不是万能的。
不要期望通常工具是必需的,但不是万能的。
不要期望“一招鲜,吃遍天一招鲜,吃遍天”?
根据自己的需要和工具的特长进行选择根据自己的需要和工具的特长进行选择?
明确自己要做什么?
期望达到怎样的目标?
测试工具的关键特性?
其它因素其它因素o人员、资源、价格等人员、资源、价格等11?
软件测试的基本策略加强软件测试的管理?
测试过程管理测试过程管理?
计划、进度计划、进度?
测试文档管理测试文档管理?
需求的可追溯需求的可追溯?
节点监控节点监控?
缺陷追踪与管理缺陷追踪与管理?
测试过程中,会有各式各样的错误或缺陷(bug/defect)出现。
需要建立有效的机制:
报告、存储、分配、修复、追踪测试过程中,会有各式各样的错误或缺陷(bug/defect)出现。
报告、存储、分配、修复、追踪?
避免混乱、丢失、重复避免混乱、丢失、重复?
变更管理变更管理软件配置管理软件配置管理嵌入式软件测试基础:
关于软件测试12嵌入式软件测试基础:
嵌入式软件测试的特点?
嵌入式系统与嵌入式软件?
什么是嵌入式系统?
以应用为中心、以计算机技术为基础、适应特殊环境要求的专用计算机系统以应用为中心、以计算机技术为基础、适应特殊环境要求的专用计算机系统?
嵌入式系统通常都是实时系统,即有一定时间约束的计算机系统嵌入式系统通常都是实时系统,即有一定时间约束的计算机系统?
嵌入式系统的组成?
嵌入式微处理器、外围硬件嵌入式微处理器、外围硬件?
嵌入式操作系统、应用软件嵌入式操作系统、应用软件?
什么是嵌入式软件?
嵌入式系统或产品中的软件嵌入式系统或产品中的软件?
“非嵌入式非嵌入式”软件:
通用计算机软件软件:
通用计算机软件嵌入式系统的典型特征:
硬件软件专用硬件软件专用13?
嵌入式软件的特点?
大部分软件用高级语言(C、C+等)编写大部分软件用高级语言(C、C+等)编写?
依赖于特定硬件环境,无统一的平台依赖于特定硬件环境,无统一的平台?
与硬件密切相关,交互工作与硬件密切相关,交互工作?
实时性实时性o实时约束实时约束o实时控制实时控制?
交叉式开发交叉式开发o需要专门的环境及工具需要专门的环境及工具o目标软件与开发环境运行在不同的平台目标软件与开发环境运行在不同的平台?
资源受限资源受限嵌入式软件测试基础:
嵌入式软件测试的特点14?
嵌入式软件测试的难点?
实时性实时性要求测试工具准确测试软件性能要求测试工具准确测试软件性能?
资源有限资源有限要求对被测软件不能附加太多代码冗余要求对被测软件不能附加太多代码冗余?
软硬结合软硬结合软件与硬件紧密相关,硬件可能成为测试的瓶颈软件与硬件紧密相关,硬件可能成为测试的瓶颈?
交叉开发交叉开发嵌入式软件与测试工具运行在不同的平台,载入目标系统执行需要特定的硬件测试工具配套嵌入式软件与测试工具运行在不同的平台,载入目标系统执行需要特定的硬件测试工具配套?
多样性多样性没有统一的硬件平台,需要没有统一的硬件平台,需要“专款专用专款专用”?
实验测试环境与真实运行环境存在差异实验测试环境与真实运行环境存在差异?
测试工具与目标系统的连接方式影响测试的可靠性测试工具与目标系统的连接方式影响测试的可靠性?
汇编语言难以测试汇编语言难以测试?
成本较高成本较高嵌入式软件测试基础:
嵌入式软件测试的特点15?
嵌入式软件测试的基本思路?
软件测试发展至今已形成了较为完整的理论、技术和策略,虽然它们大都针对计算机软件,但幸运的是其基本原理和典型方法同样适用于嵌入式软件。
基于两种软件的共性基于两种软件的共性同为高级语言,我们首先利用通用计算机软件的测试技术,即同为高级语言,我们首先利用通用计算机软件的测试技术,即“拿来主义拿来主义”?
然后从嵌入式软件的特点出发,采取一些有针对性的方法,比如然后从嵌入式软件的特点出发,采取一些有针对性的方法,比如“交叉测试交叉测试”。
嵌入式软件测试基础:
嵌入式软件测试的特点16?
嵌入式软件测试的基本方法?
动态测试方法动态测试方法?
静态测试方法静态测试方法?
源代码分析源代码分析?
结构化测试结构化测试?
系统测试方法系统测试方法?
真实环境下系统测试真实环境下系统测试?
全数字模拟测试全数字模拟测试?
实时在线测试实时在线测试?
故障注入测试故障注入测试嵌入式软件测试基础:
嵌入式软件测试的基本方法17?
交叉测试(Host/Target测试)?
利用交叉开发环境的测试方法利用交叉开发环境的测试方法?
测试工具需要支持目标环境测试工具需要支持目标环境?
利用高级语言的特性,使用利用高级语言的特性,使用“常规的常规的”软件测试方法软件测试方法?
测试是在测试是在“主机主机”和和“目标系统目标系统”中分别进行的:
中分别进行的:
与硬件无关的大部分测试在与硬件无关的大部分测试在“HostHost”上完成上完成?
与硬件密切相关的小部分在与硬件密切相关的小部分在“TargetTarget”上完成上完成?
再根据需要,将再根据需要,将“HostHost”上的测试在上的测试在“TargetTarget”上验证上验证嵌入式软件测试基础:
嵌入式软件测试的基本方法18?
交叉测试的特点?
将大部分工作转移到将大部分工作转移到PC平台上,在硬件环境未建好或调试工具缺乏时就可以开展平台上,在硬件环境未建好或调试工具缺乏时就可以开展?
适用于高级语言,如适用于高级语言,如C,C+?
主要用于动态测试,如单元测试(功能测试)主要用于动态测试,如单元测试(功能测试)?
测试用例设计是关键测试用例设计是关键?
操作方便,测试成本较低。
实时性受调试环境的制约实时性受调试环境的制约?
目标环境中测试时要占用一定的目标资源目标环境中测试时要占用一定的目标资源?
注意目标环境和主机环境的差异注意目标环境和主机环境的差异?
目标编译器的影响目标编译器的影响?
内存资源内存资源嵌入式软件测试基础:
嵌入式软件测试的基本方法19?
为什么不把所有测试都放在目标上进行?
在Target上测试软件,可能会造成与开发者争夺目标平台或使用时间。
要避免这种矛盾只有提供更多的目标平台。
目标平台可能还不可行,或者主机与目标的连接不方便。
比起主机平台环境,目标平台通常是不精密的和不方便的。
成本问题。
提供给开发者的目标平台和开发环境通常是很昂贵的。
开发和测试工作可能会妨碍目标上已经存在持续的应用。
嵌入式软件测试的基本方法20?
如何开展交叉测试?
选用带有选用带有支持目标环境支持目标环境的软件测试工具的软件测试工具?
确定哪些模块与硬件无关,哪些与硬件相关确定哪些模块与硬件无关,哪些与硬件相关?
配置相应的调试环境和目标环境配置相应的调试环境和目标环境?
设计测试用例设计测试用例?
分别进行分别进行Host和和Target测试测试嵌入式软件测试基础:
嵌入式软件测试的基本方法执行执行编译编译/链接链接TargetHost测试结果测试结果测试结果测试结果被测代码被测代码测试用例测试用例目标支持目标支持执行执行编译编译/链接链接开发环境开发环境21?
交叉测试的条件?
测试工具要支持目标系统测试工具要支持目标系统?
Target测试需要合适的开发环境配合Target测试需要合适的开发环境配合?
编译环境(编译器/链接器)编译环境(编译器/链接器)?
调试环境(仿真器、调试器)调试环境(仿真器、调试器)?
可用于交叉测试的调试环境嵌入式软件的调试的基本方法:
嵌入式软件的调试的基本方法:
模拟器(模拟器(Simulator)?
调试器(调试器(Debugger)?
仿真器(仿真器(Emulator)嵌入式软件测试基础:
嵌入式软件测试的基本方法22?
模拟器(Simulator)大多数集成开发环境(大多数集成开发环境(IDE)都具有调试功能,)都具有调试功能,