【课程背景】
随着软硬件技术的发展,嵌入式系统在各个领域应用都日渐广泛,功能也越来越强大,但设备和软件也日趋复杂。本课程立足于实践, 旨在为有效控制复杂的嵌入式软件测试过程提供解决方案。课程包括了嵌入式软件测试的一般过程,主要包括开发部门的白盒测试和测试部门的系统测试两大部分
涉及的操作系统有windows CE/Android/linux/vxworks等,另外还会涉及部分单片机软件的测试。
由于嵌入式系统的自身特点,如实时性、内存不丰富、I/O通道少、开发工具昂贵、并且与硬件紧密相关,CPU种类繁多等等。嵌入式软件的开发和测试也就与一般商用软件的开发和测试策略有了很大的不同,可以说嵌入式软件是最难测试的一种软件。
杨老师先后帮助蓝韵实业、武汉天喻、雄帝科技、金立手机、创维智能电视、华阳通用、航盛电子、美行科技、远峰科技、海康威视、大华科技、深圳迈瑞、中航工业等著名企业做过嵌入式软件测试的培训,大家的关注点如下:
1)如何提升嵌入式软件代码的质量?
2)有哪些方法和手段进行嵌入式的系统测试?
3)介绍业界常见的方法和工具。
4)如何衡量嵌入式产品的质量?标杆企业的质量标准是什么?
此次培训的内容一方面是对系统的黑盒测试,另一方面是对代码质量进行测试。由于嵌入式测试尤其是系统测试还没有较多的方法和自动化工具,杨老师提到此次培训主要包括号以下内容:
1)代码质量提升的方法(如系统设计、需求分析、DFX设计、代码审查、单元测试等)
2)单元测试的方法和工具(PCLINT、CUNIT、VUNIT、圈复杂度测试等方法)
3)嵌入式测试的案例(华为、迈瑞、元征、烽火等高科技企业的实践案例)
本课程关注于软件测试管理体系建设,包括嵌入式软件(LINUX\VXWORKS等平台)系统级产品。它将从软件测试概念、嵌入式软件测试需求分析、嵌入式测试用例设计、嵌入式软件测试技术与自动化、嵌入式产品测试组织与团队、嵌入式软件测试体系的建立等几个层面进行培训。
【参加对象】
研发总监、研发经理、测试经理、从事嵌入式软件测试的人员;软件项目经理;软件质量保证人员;其他对嵌入式软件测试感兴趣的人员
【培训收益】
- 学习如何提高嵌入式测试过程的有效性,进一步提高测试效率;
- 系统的学习和梳理软件测试的理论和设计思想;
- 结合实际工作中的问题和经验,学习测试案例设计的通用技术和方法;
- 提高效测试的工作思想;
- 提高测试案例设计和分析能力;
- 培养测试人员搭建测试环境的能力;
- 掌握建立自动化测试平台和方法和思路;
- 学习企业级测试体系建设的方法和技巧;
- 掌握如何通过白盒测试和黑盒测试提高产品质量。
- 学习嵌入式测试工具的开发和实践案例。
【培训特色】
- 课程完整介绍嵌入式项目级以及产品级测试体系,以及软件测试4大活动(单元测试、集成测试、系统测试、验收测试)的基本职责、方法。
- 系统化的课程内容:全面分析测试理论、测试实践、测试流程、团队管理、工具模板。
- 讲师在国内优秀企业(华为、阿里巴巴、蓝韵集团)工作时的切身实践体会和23年多的软件开与与测试管理经历,能够深入浅出地分析讨论各种软件测试管理遇到的问题, 并列举大量的测试管理案例,有助于管理人员借鉴与参考。
- 讲师有国外项目背景,曾参与国际化项目的测试项目管理工作,与美国及印度的同事深入合作,积累了很多国际化软件测试的最佳实践。
- 课程独特,内容丰富而精彩,不但让测试管理者了解测试知识,而且还能从中学习到研发管理流程,QA等方面的知识。
- 课程实践性较强,所有的方法、工具和模板都是来自讲师从事一线管理时的经验和教训。
【讲师资历】
- 课程内容来自于讲师23年的研发和测试管理实践经验,具有很强的针对性和实用性。
- 系统化的课程内容:全面分析嵌入式测试工作目标、业务体系、组织结构、流程。
- 课程中互动式教学、大量案例,有助于学员理解。
- 实用的测试技术方法,有助于企业用于具体工作。
- 讲师在业界优秀企业(华为、阿里巴巴、蓝韵)工作时的切身实践体会,既能深入浅出地分析讨论各种软件测试团队的管理问题,又能从研发全局出发把握测试与研发其它部门之间的业务联系。
杨学明 研发管理专家、产品测试专家、深圳测试协会副会长、测试类公开课讲授场数最多的讲师
- 资深咨询顾问、研发管理高级讲师、“中国软件测试第一人”
- 清华大学MBA、中山大学工学学士
- 美国项目管理协会认证专家PMP
- 23年产品开发、测试管理经验
- 11年研发管理咨询与培训经验
- 先后在华为、阿里巴巴、蓝韵等大型企业担任研发高级管理职务
【课程大纲】
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 测试工具的概念
u 嵌入式软件单元测试工具 Vector Software公司的VectorCAST
u ParaSoft 公司的C++ test
u 嵌入式软件白盒测试工具
u 嵌入式软件测试与分析工具 CodeTest
n 领测科技的白盒测试工具 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 研讨:根据我公司现状,如何推进嵌入式软件测试管理体系?