《嵌入式软件测试技术》课程大纲
嵌入式软件测试技术
1、嵌入式软件测试概述
本章节学习目标:主要让学员了解为什么需要嵌入式软件测试,软件测试对于软件质量保证的重要性,以及软件测试在整个产品质量体系中的位置。并列举软件测试的原则与方法。
1.1 嵌入式软件测试面临的常见问题
1.2 嵌入式软件测试的特点
1.3 嵌入式测试与普通windows软件测试的区别
1.4 测试在质量体系中的位置
1.5 产品测试管理的四个阶段(BBFV、SDV、SIT、SVT)
1.6 业务标杆企业华为公司产品测试管理的演进
1.7 打造产品测试管理的五大利器
1.8 测试原则与方法
1.9 为什么要尽早测试
1.10 木桶原理 ·20/80原则 ·Good-Enough原则·多快好省原则
1.11 错误、缺陷、故障、失效 ·测试成本分析
1.12 测试、调试、测试与调试的关系和区别
1.13 嵌入式测试方法分类
1.13.1 白盒测试、黑盒测试、灰盒测试
1.13.2 测试策略 ·单元测试、集成测试、系统测试、验收测试
1.13.3 ALPHA测试、BETA测试、功能测试、性能测试
1.13.4 动态测试、静态测试
1.13.5 手工测试、自动化测试、负载测试、压力测试、性能测试
1.13.6 影响产品质量的七大因素(测试、评审、质量保证、CBB、新物料保证、FMEA、技术预研)
1.13.7 展示:端到端的嵌入式测试活动地图
本单元研讨案例:A公司嵌入式软件项目测试环节存在的典型问题,并分组讨论,派代表上台发言。
2、产品测试需求分析
(如何控制产品需求质量,明确定义产品测试需求?如何让测试人员更多参与产品开发的前期,提前发现问题,降低问题修复成本,提高测试人员测试用例设计的能力)
2.1 产品需求工程过程(高效测试的前提条件)
-
测试类型分析工程方法
-
测试特性交互分析工程方法
-
继承特性分析工程方法
-
测试规格整合工程方法
-
测试特性建模工程方法
-
产品需求层次划分(客户需求、市场需求、产品包需求、设计需求)
-
优秀需求的标准(一致性、完备性、可验证性、正确性)
-
需求到测试的跟踪(RTM)
-
产品需求工程过程(高效测试的前提条件)
2.2 嵌入式软件可测试性需求和设计(DFT)举例
2.3 产品测试需求分析
- 产品测试需求分析过程(产品测试需求、产品测试规格、产品特性测试规格)
- 产品测试的关注点分析
- 测试需求的分析方法
- 开发需求中提炼方法
① 标准规范中提炼方法
② 用户原始需求中提炼方法
③ 继承产品中提炼方法
④ 测试经验库中提炼方法
⑤ DFX的测试需求
2.4 可测试需求功能展开
2.5 基于故障注入式测试方法(FIT)
2.6 演练与问题讨论
2.7 针对产品测试需求分析结合公司实际情况思考具体改进行动计划
3、 产品测试用例设计
(如何设计高质量的测试用例,提高问题发现效率和发现更多深层次问题?)
3.1 质量模型(功能性、可靠性、易用性、效率性、维护性、可移植性)
3.2 测试方法分类
- 白盒测试、黑盒测试、灰盒测试
- 动态测试、静态测试
- 手工测试、自动测试
- 单元测试、集成测试、系统测试、ALPHA测试、BETA测试、UAT测试
3.3 静态测试的三种方式(走读、CODEREVIEW、PEER REVIEW)
3.4 白盒测试用例设计方法(单元、集成测试)
3.5 黑盒测试用例设计方法(系统测试)
- 用例设计方法之一:等价类划分法
① 等价类使用的依据
② 等价类划分的原则
③ 等价类工具:等价类表
④ 等价类划分法优缺点分析和应用场景
- 用例设计方法之二:判定表法
① 判定表法基本步骤
② 建立判定表的步骤和判定表的合并
③ 判定表法优缺点分析和应用场景
- 用例设计方法之三:场景分析法
① 业务流程确定(基本流、替换流)
② 业务替换流挖掘时需要考虑的因素(资源死锁、冲突、内存)
③ 场景分析法优缺点分析和应用场景
- 用例设计方法之四:正交试验法
① 正交试验法基本步骤
② 正交试验法工具:正交试验表
③ 正交试验法优缺点分析和应用场景
- 用例设计方法之五:边界值分析法
① 边界值点定义
② 边界值分析步骤
③ 边界值分析分法优缺点分析和应用场景
3.6 错误推测方法测试
3.7 测试组网分析方法
3.8 测试用例设计
- 测试用例颗粒度
- 大纲型测试用例的设计
- 解决方案型测试用例的设计
- 详细步骤型测试用例的设计
- 测试用例的设计方法
- 基于需求规格的设计
- 基于质量问题的设计
- 基于风险的测试设计
- 基于经验的测试设计
- 基于以用户体验的用例设计
3.9 演练与问题讨论
4、产品每日构建和测试自动化
(如何构建公司自动化测试体系,提升测试效率,把测试人员从单纯的手工测试中解放出来?)
4.1 产品每日构建和持续集成
4.2 持续集成的策略
4.3 产品持续集成的工具
4.4 产品测试自动化常见的误区
4.5 测试自动化中的脚本体系
- 为什么要脚本化?
- 测试系统与被测系统关系(紧耦合、脚本转换、松耦合)
4.6 测试工具的概念
- 嵌入式软件单元测试工具 Vector Software公司的VectorCAST
- ParaSoft 公司的C++ test
- 嵌入式软件白盒测试工具
- 嵌入式软件测试与分析工具 CodeTest
- 领测科技的白盒测试工具 VCTEST
4.7 凯乐软件的Visual Unit
4.8 嵌入式黑盒测试工具
4.9 嵌入式灰盒测试工具
4.10 嵌入式应用仿真工具
4.11 嵌入式软件综合测试工具 RTRT
4.12 测试工具开发流程、组织架构
4.13 测试工具分类
4.14 测试工具的收益分析
4.15 项目研讨:自动化测试是否可以促进项目进度,节省质量成本?
5、 产品测试执行及缺陷分析
(测试的进度控制,测试的质量分析,对缺陷进行深入分析,避免问题的重复出现,同时对版本质量进行量化评价,有效控制市场版本的质量?)
5.1 测试规程
5.2 产品测试执行
5.3 测试缺陷跟踪
5.4 测试的覆盖率分析
5.5 软件测试成熟度模型(TMM)
5.6 软件开发过程阶段性度量指标
5.7 缺陷度量或缺陷分布度量
5.8 测试用例的深度、质量和有效性
5.9 测试执行的效率和质量
5.10 缺陷报告的质量
5.11 测试用例的覆盖率
5.12 测试环境的稳定性或有效性
小组研讨:如何提高测试的有效性?(10分钟)
6、 嵌入式测试组织与团队
本章节学习目标:了解如何管理一个嵌入式软件测试团队,包括个人技能提升,团队能力,冲突管理,职业通道。
6.1 个能技能提升(包括测试分析、测试设计、测试执行能力)
6.2 测试团队角色分类
6.3 测试团队的沟通
6.4 测试团队冲突管理
6.4.1 正确对待缺陷
6.4.2 具备良好的态度
6.4.3 开发和测试的合作
6.5 优秀的软件测试工程师的画像
6.6 测试人员的职业通道
6.7 测试团队的培养和提升的渠道和方向
实例演练1:在进度紧张的情况下,测试人员如何处理好和项目经理,开发人员的关系?
7、 构建企业级测试体系建设
7.1 案例:某企业测试体系存在的问题分析
7.2 企业测试体系典型问题分析
7.3 测试技能发展历程
7.4 测试体系如何从无到有建设?
7.5 如何从功能测试到测试平台建设?
7.6 测试组织发展历程
7.7 建立独立的测试组织
7.8 如何建设高水平的产品测试部门?
8、 课程总结与回顾
本章节学习目标:针对两天的课程,进行课程回顾,总结学习成果。
8.1 研讨:根据我公司现状,如何推进嵌入式软件测试管理体系?
培训课程
产品