嵌入式软件测试:面向结构的测试技术
作者: 来源: 文字大小:[大][中][小]
课程背景:
随着软硬件技术的发展,嵌入式系统在各个领域的应用日渐广泛,设备也越来越复杂,嵌入式软件测试的难度也越来越大。国内企业的测试还处于非常原始的状态,往往不重视前期测试工作的开展,反而投入大量的资金在后期进行返工,从而大幅度地增加了开发成本,降低了嵌入式软件的质量稳定性。
本课程全面介绍当前业界先进的嵌入式软件的测试方法,尤其是第四代嵌入式软件白盒测试技术。在实践经验基础上,深入探讨嵌入式软件测试的核心难题与解决策略,讲述单元测试与集成测试的方法论、实施过程,以及配套设备工具等以提高提高学员解决这些问题的方法和技巧,具有很强的可操作性。
培训收益
全面理解嵌入式软件测试的质量控制方法
了解嵌入式软件的的可测试性设计的方法
了解常见的嵌入式软件质量缺陷
掌握如何实施嵌入式软件在线白盒测试,包括在线测试驱动、在线脚本桩、在线测试改进等
掌握如何开展嵌入式软件的持续集成测试
掌握如何有效设计白盒测试用例,如何评价白盒测试的完备性
掌握如何进行嵌入式软件白盒自动化测试规划和设计,确保测试脚本的持续重用
了解业界先进的嵌入式测试设备和测试平台
掌握嵌入式软件测试效果、设计质量的评价方法
讲师介绍 崔博
资历:,在北京航空航天大学获工学博士,曾任职航天时代集团、中航
可靠性工程技术中心,参与神州飞船以及多项国家重点工程的设计、测试工作,多次担任测试组长。主要研究方向为软件可靠性工程,包括软件验证技术、IC验证与测试技术、SoC与嵌入式系统、DFT技术等。
课程大纲(仅作参考,以实际讲课稿件为准)
第一天:上午
一、嵌入式软件的质量
1、需求问题
2、设计问题
3、实现问题
4、文档问题
5、管理问题
二、嵌入式软件的设计问题
1、空间约束
2、时间约束
3、避错设计
4、容错设计
5、形式化方法
第一天:下午
一、常见嵌入式软件缺陷
1、体系结构因素及缺陷案例
2、程序设计语言因素及缺陷案例
3、存储空间因素及缺陷案例
4、实时性因素及缺陷案例
5、性能因素及缺陷案例
6、可靠性/安全性因素及缺陷案例
二、嵌入式软件的静态测试
1、静态语法测试
2、静态语义测试
3、软件静态审查
4、案例分析
第二天:上午
一、嵌入式软件的白盒测试
1、白盒测试基础
白盒测试在软件研发全流程中的位置
V模型与软件白盒测试过程
为什么要测试?为什么要尽早测试?
案例分析:问题根源分析,IBM的正交缺陷分析方法
为什么要持续测试?
单元测试是什么?不是什么?
集成测试是什么?不是什么?
案例分享:Cantata公司对白盒测试的界定
调试与测试、一次测试与持续测试、离线测试与在线测试
Good-Enough原则,白盒测试要遵循的原则
白盒测试的主要误区
有效性评估与测试质量评估
案例分析:企业不做白盒测试的典型原因
白盒测试的核心难题是什么?
案例分析:测试同比曲线
软件白盒测试发展历程:从第1代到第3代
第4代白盒方法的关键域与关键特征
构造在线测试的必要条件与实施步骤
持续集成到测试先行,再到每日构建
案例分享:一次测试与持续测试的典型差异
什么是软件测试小循环?如何融入研发大循环?
测试粒度与可见性,白盒?黑盒?还是灰盒
测试操作的三种形式化表述方式
2、面向控制流的测试
(1)语句覆盖测试及案例
(2)判定覆盖测试及案例
(3)分支覆盖测试及案例
(4)路径覆盖测试及案例
(5)MC/DC覆盖测试及案例
(6)Z覆盖测试及案例
(7)其它结构覆盖测试测试及案例
3、面向数据流的测试
(1)定义覆盖测试及案例
(2)引用覆盖测试及案例
(3)定义—引用覆盖测试及案例
(4)数据间交互作用测试及案例
(5)计算环境测试及案例
(6)结构性数据的测试及案例
(7)动态数据的测试及案例
4、面向对象特性的测试
(1)面向对象特性
(2)面向对象测试模型
(3)面向对象软件测试策略
(4)案例分析
5、排错性测试
(1)植错法
(2)变异体测试
(3)插桩技术
6、研发平台与测试平台选择,
案例分享:这个工具的适用范围怎么越做越窄?
界白盒测试工具的应用状况与对比分析
主测试工具与辅助工具的选择与评估模型
实施基于消息的测试?
实时操作系统下白盒测试注意事项
如何封装白盒测试设计,如何在功能测试、协议测试、性能测试中重用?
老产品或半新产品中如何实施白盒测试?
测试架构设计与软件架构设计的关系
第二天:下午
一、测试方法的分析
1、测试方法分类与比较
2、最少测试集的估计
二、嵌入式软件测试工程
1、嵌入式软件测试的组织
2、嵌入式软件测试策略与流程设计
持续集成、每日构建、冒烟测试之间的关系
持续集成的组织管理模式与框架体系
产品版本树与项目版本树组织
如何构造可监控、可验证的持续集成研发体系
实例讲解:某产品研发的持续集成框架体系
3、测试方法选择与测试环境搭建
流程与研发组织形态对推行白盒测试实践的影响?如何协调到最佳?
选择大方向:一次测试还是持续测试?是否具备TDD的实施条件?
编写代码之前的白盒测试相关实践:可测试性需求分析、测试策略拟定、SVVP计划、工具选型与评估、可测试性设计
如何处理与单元测试配套的软件过程,正规检视、编码风格与LINT检查、交叉测试、技术评审、缺陷分析
实例讲解:从单元测试过渡到集成测试的操作实践
几个相关的测试:代码审查、性能测试、协议测试、组件测试(基于接口)、功能自动化测试,这些测试如何定位?与白盒测试如何配合?如何重用?
实例讲解:白盒测试中如何解决嵌入式产品的设备相关性
4、软件度量
5、测试文档设计
6、测试配置管理
7、测试评价与软件评价
8、软件测试中的社会性因素
9、关于软件质量管理标准的讨论
推行阶段划分与工作要点质量策略拟定组织、角色、职责与配合关系
如何定义白盒测试过程,如何确定流程标准?
10、案例讨论