艾威单元测试实战训练培训,企业内训
单元测试实战训练培训
软件开发人员如何编写高质量的单元测试
课程介绍:
培训对象:
报名条件:
部分客户:
我们已经为几十家企业提供了内训如:Adobe中国研发中心,Autodesk软件(中国)研发中心,爱立信中国研发中心(7次内训),思科中国研发中心,卓望科技,朗讯研发中心,平安科技,Visto中国研发中心,横河电机(中国)有限公司,大唐电信研发中心,美国通用电气(GE)研发中心,迈瑞研发中心,阿里巴巴研发中心,摩托罗拉成都研发中心.授课方式:
课程大纲:
课程主题 | 课程内容 |
单元测试基础 |
内容一:理解单元测试 1. 什么是单元测试? 2. 为什么要写单元测试,为什么不写单元测试 3. 理解单元测试--第一个单元测试案例 4. 好的测试是什么样子的,为什么要写"好"的单元测试 5. 单元测试的维护成本 6. 单元测试与自动化测试 7. 分析真实项目,如何做单元测试 8. 通过案例分析,了解基本的单元测试 |
理解单元测试框架—XUnit工具 |
内容一:理解单元测试XUnit 框架使用—(以Junit为案例介绍,其他简单介绍) 1. Junit设计目标 2. 探索JUnit核心 3. 参数化测试 4. 测试异常 5. 超时测试 6. 引入Hamcrest匹配器 7. JUnit的测试运行器 8. 用Suite来组合测试 9. Junit与IDE,Ant,Maven集成运行 10. JUnit与持续集成工具结合 11. 通过案例分析,Junit的最佳实践 |
单元测试设计 |
内容一:构思单元测试 1. 单元测试模型的设计 2. 单元测试用例设计 3. 为系统运行起来而设计 4. 为正向测试而设计用例 5. 为逆向测试而设计用例 6. 为满足特殊需求而设计用例 7. 为代码覆盖而设计用例 8. 通过案例分析单元测试编程前的测试用例的设计 内容二:单元测试设计—黑盒测试 1. 单元测试黑盒设计 2. 等价类设计法 3. 边界值分析法 4. 判定表(决策表)驱动化 5. 状态转移测试设计 6. 结对测试 7. 分类树设计方法 8. 用例/场景测试 9. 动态分析法 9. 通过大量案例分析,如何应用各种黑盒测试设计技术,进行设计单元测试 内容三:单元测试设计—白盒测试 1. 单元测试白盒设计 2. 标识单元测试点 3. 语句覆盖 4. 判定覆盖 5. 基本路径测试法 6. 白盒测试综合策略 7. 测试覆盖准则 8. 通过大量案例分析,如何应用各种白盒测试设计技术,进行设计单元测试 |
单元测试坏味道 |
内容一:测试代码坏味道 1. 模糊测试(也称为长测试、复杂测试、冗长测试) 2. 条件测试逻辑(也称为缩排的测试码) 3. 难以测试的代码 4. 测试码复制 5. 产品中的测试逻辑 6. 通过案例分析测试代码的坏味道,症状,原因,重构等 内容二:测试行为的坏味道 1. 断言滚轮 2. 不稳定测试 3. 脆弱性测试 4. 手工干预测试(指必须手工设置测试环境,调整测试代码) 5. 缓慢测试 6. 通过案例分析以上每种行为坏味道,症状,原因,重构等 内容三:测试项目的坏味道 1. 缺陷测试坏味道 2. 开发人员没有写测试 3. 高维护成本的单元测试 4. 通过案例分析以上每种行为坏味道,症状,原因,重构等 |
测试覆盖 |
内容一:逻辑覆盖 1. 实施逻辑覆盖的原因 2. 语句覆盖 3. 判定覆盖 4. 条件覆盖 5. 条件覆盖 6. 条件判定组合覆盖 7. 多条件覆盖 8. 修正条件判定覆盖 9. 结合案例分析,逻辑覆盖的度量 内容二:统计测试覆盖--(以Junit为案例分析) 1. 使用clover为junit单元测试做覆盖率分析 2. 使用Cobertura统计JUnit测试覆盖率 3. 结合案例分析,通过测试覆盖率工具,分析覆盖率 |
单元测试模式 |
内容一:单元测试结果验证模式 1. 状态验证模式-基于状态的测试 2. 行为验证模式-交互测试 3. 自定义断言—预约断言 4. Delta断言 5. 哨兵断言 6. 根据案例分析结果的验证模式 内容二:单元测试替身模式 1. Test Stub模式 2. Test Spy模式 3. Mock Object模式 4. Fake Object模式 |
单元测试之中如何解耦依赖 |
内容一:利用Stub解除依赖关系 1. 利用Stub解除依赖关系 2. Stub的案例 3. Extract and Override: The Universal Pliers 4. Isolate And Test Around 5. How Much Code To Extract? 6. Why You Should NOT Use Extract And Override 7. Why You SHOULD Use Extract And Override 8. 分析真实项目,如何使用Stub 内容二:通过Mock对象交互测试 1. 基于状态的测试与交互测试 2. 使用Mock的例子 3. 手工Mock测试 4. 自动化Mock测试 5. 分析真实项目,如何使用Mock, 以及相关问题 内容三:Mock与Stub区别 1. Mock与Stub的区别 2. 同时使用Mock和Stub 3. 每个测试只使用一个Mock 4. 改进代码设计,利于应用Mock和Stub 5. Mock和Stub的局限性 结合多个案例项目进行分析,什么时间使用Mock ,什么时间使用Stub, 如何权衡 |
增强设计与代码的可测试性 |
内容一:设计和代码的可测试性 1. 抽取接口,容许替换底层实现 2. 在被测类中注入桩对象 3. What’s testable design? 4. Modular design 5. SOLID design principles 6. Modular design in context 7. Test-driving toward modular design 8. Testability issues 9. Can’t instantiate a class 10. Can’t invoke a method 11. Can’t observe the outcome 12. Can’t substitute a collaborator 13. Can’t override a method 14. Guidelines for testable design 15. Avoid complex private methods 16. Avoid final methods 17. Avoid static methods 18. Use new with care 19. Avoid logic in constructors 20. Avoid the Singleton 21. Favor composition over inheritance 22. Wrap external libraries 23. Avoid service lookups 24. 结合多个大型案例项目进行分析,如何通过重构代码,实现可测试性 |
企业级系统的单元测试 |
内容一:企业级系统的单元测试最佳实践 1. 企业应用系统特点 2. 企业应用典型场景 3. 系统分层架构与分层的单元测试 4. 一个案例的分析 5. 单元测试特点 6. UI层单元测试测试 7. Ctroller层单元测试 8. Service层单元测试 9. 数据库层单元测试 10. 容器内的测试 11. 通过企业应用案例项目进行分析单元测试的构建最佳实践 |
编写好的单元测试 |
内容一:好的单元测试测试标准-A-TRIP 1. 单元测试的自动化-Automatic 2. 单元测试彻底的-Thorough 3. 单元测试可重复-Repeatable 4. 单元测试独立的-Independent 5. 单元测试专业的-Professional 6. 通过案例分析,分析好的单元测试标准 内容二:如何编写好的单元测试测试 1. 单元测试中的坏味道 2. 如何编写容易被看懂的模式 3. 如何编写容易维护的模式 4. 如何编写信得过的模式 5. 重构单元测试,改进代码设计 6. 结合多个案例项目进行分析,分析什么是好的单元测试 |
TDD测试驱动开发基础 |
内容一:TDD测试驱动开发 1. TDD的节奏 2. TDD的两个原则和TDD的目标 3. TDD与行为驱动开发(Behaviour Driven Development) 4. TDD与验收测试驱动开发(Acceptance Test Driven Development) 5. 识别代码中的坏味道 6. 重构工具及使用 7. 常用重构技巧 8. 重构与预先设计的区别 通过案例分析,TDD的最佳实践技巧,重构的技巧,坏味道等 |
历史遗留系统如何编写单元测试 |
内容一:遗留系统代码环境下如何编写单元测试 1. 从哪里开始添加单元测试 2. 确定抉择策略1-容易优先测类的优缺点 3. 确定抉择策略2-困难优先测类的优缺点 4. 遗留代码改动准则 5. 重构前写集成测试 6. 遗留代码整洁测试的常用工具 7. 为第三方代码做学习测试 8. 复杂遗留系统之中,如何增加单元测试以及遇到的问题 通过真实案例分析,在遗留系统的的难度和最佳实践 |
单元测试组织和管理 |
内容一:组织和管理测试 1. 通过自动构建脚本运行测试 2. 将测试与代码做同源版本管理 3. 根据速度和类型为测试分类 4. 创建和维护项目的测试辅助设施 5. 结合我们研发中心, 如何做单元测试管理, 已经如何组织,以及遇到的问题 |
在研发团队如何引入单元测试 |
内容一:将测试引入到你的组织中 1. 如何成功在组织中引入单元测试 2. 为什么在组织中引入单元测试的努力会失败 3. 如何将测试集成到开发流程中 - 敏捷测试流程 4. 常见的疑惑和解答? 5. 通过多个研发中心咨询经验,分析单元测试引入的方式和最佳实践(LJ) |
【艾威(中国)】简介:
● 2017年成为EPI 授权的数据中心CDCP培训机构,华东地区唯一CDCP授权培训机构,同时也是CDCP认证考试考场。
【艾威(中国)】简介:
艾威培训隶属于上海艾威信息科技有限公司,于2002年在上海建立办事处,2003年正式注册成立上海艾威信息科技有限公司并全面开展国内的培训业务,主要专注于职业认证培训与IT技术培训,致力于中国数字化管理人才与技术人才的培养。
艾威主要业务为培训业务与咨询业务两大类,目前培训的主要产品有:项目管理培训、IT管理培训、敏捷培训、业务分析与需求管理培训、企业架构培训、业务流程管理培训、数据管理与治理培训、信息安全培训、办公软件与多媒体培训、大数据与人工智能培训、虚拟化与云计算培训、数据库培训、软件开发培训等....近30给分类上百门的课程的培训与咨询服务。
艾威凭借引进国际领先的课程知识体系和多年积累的丰富教学经验,结合中国本土企业文化、实际需求,为企业、个人提供定制化的培训解决方案。艾威已服务了超过 10000 多家客户,获得了良好的口碑!已被众多 500强企业纳入培训供应商,如 HP,NOKIA,CISCO,INTEL,GE,华为,宝马,德电,通用,大陆汽车,中国银行,交行,工行,罗氏,赛诺菲,埃森哲……等。
- 2002年艾威成立上海办事处,并于2003年正式成立公司,开启全面培训业务
- 2002年成为思科Cisco授权培训中心
- 2003年成为Oracle授权培训中心
- 2003年成为国际项目管理协会PMI授权的全球(PMP,PGMP,ACP,PBA)教育机构
- 2005年成为国际需求管理协会IIBA授权的全球(ECBA,CCBA,CBAP)教育机构
- 2008-2015年成为100+家央企、国企、外企指定培训供应商(惠普、诺基亚、德电、罗氏、中国银行、交通银行、中国海关等)。
- 2015年艾威国际网校(edu.avtechcn.com)成立,引进数百门在线课程。
- 2016年成为国际信息审计协会ISACA授权的CISA,CISM,CRISC,CGEIT,COBIT教育机构。
- 2017年成为The Open Group授权的TOGAF企业架构的官方培训机构。
- 2017年成为APMG与国际外包专业协会(IAOP)授权的外包治理国际认证SGF(Sourcing Governance Foundation)教育机构。
- 2017年成为APMG与业务关系管理协会(BRMI)授权的BRMP、CBRM教育机构。
- 2018年成为PeopleCert授权ITIL、Prince2、MSP培训及考试机构。
- 2018年成为DRI授权CBCP培训及考试机构。
- 2019年成为亚马逊培训合作伙伴。
- 2019年成为国际云安全联盟CCSK授权培训合作伙伴。
- 2020年艾威数字化人才培训中心成立,并首创发布了艾威MDD数字化人才三角模型及8大能力培训体系。
- 2021年成为SAFe大规模敏捷认证官方培训机构。
- 2021年成为DAMA国际数据管理协会CDGA/CGDP/CDMP数据管理认证官方培训机构。
- 2022年艾威数字化人才培训中心成立一周年,进一步完善并升级“艾威MDD数字化人才三角模型及8大能力体系”为“艾威数字化人才18大能力罗盘”。