课程简介
白盒测试又称结构测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。作为一名传统测试人员,更多的是执行功能测试、自动化测试、性能测试。而对于白盒测试,了解的不是甚多。主要是因为测试人员对编程语言,代码的掌握不是很好。在企业中进行白盒测试,也就是我们常常提到的单元测试。而随着测试行业的不断的发展,白盒测试已经开始由专职的测试人员接手。掌握白盒测试技能也将成为测试人员提升自己的一个途径。白盒测试即在了解到代码的基础上进行测试,包括但不限于单元测试、接口测试、代码静态检查等等。传统的白盒测试主要指全面了解程序内部逻辑结构、对所有逻辑路径进行测试,方法上主要单元测试。由于我们需要编写测试用例来确保程序逻辑的完整覆盖,对程序的了解和认知是先决条件,我们必须详细理解被测代码及测试需求。对于大型系统进行全面测试是不可能的,毕竟这非常耗时耗力,我们不可能针对程序中循环的每一条路径进行测试,这就意味着测试人员需要通过选择重要的逻辑路径和数据结构进行切实有效且可行的测试。在企业中进行白盒测试时,开发人员和测试人员往往会协同工作,例如分析哪一行代码被实际执行的,哪一行代码由于逻辑缺失而未被执行,哪些片断的代码存在拼写错误等。因此,白盒测试对代码的能力要求较高,需要对被测试代码使用的语言及代码间的逻辑关系有相当程度的认知及驾驭能力。
课程收益
1. 掌握白盒测试技术的主要方法
2. 熟悉现行的主要单元测试框架
3. 基于单元测试框架掌握测试驱动开发的要领
受众人群
软件研发管理者、架构师,软件设计师、程序员、单元测试的初、中、高级人员以及对白盒测试和单元测试感兴趣的人员
课程周期
2天(12H)
课程大纲
主题 | 授课内容 |
一、白盒测试 | 内容一:白盒测试 1. 什么是白盒测试 2. 白盒测试的范围 3. 白盒测试的方法 4. 白盒测试技术难题和策略 5. 白盒测试工具 |
二、白盒测试实践-单元测试和接口测试基础 | 内容一:理解单元测试 1. 什么是单元测试? 2. 为什么要写单元测试,为什么不写单元测试 3. 理解单元测试--第一个单元测试案例 4. 好的测试是什么样子的,为什么要写"好"的单元测试 5. 单元测试的维护成本 6. 单元测试与自动化测试 7. 分析真实项目,如何做单元测试 8. 通过案例分析,了解基本的单元测试
内容二:接口测试 1. 接口测试简介 2. Restful接口 3. 什么是接口测试 4. 为什么要做接口测试 5. 如何开展接口测试 6. 接口手工测试的用例设计 |
三、理解单元测试框架—JUnit工具 | 内容一:理解单元测试JUnit 框架使用 1. 单元测试框架 2. 单元测试框架提供什么 3. JUnit框架 4. 构建单元测试 5. JUnit的各种断言 6. JUnit框架 7. JUnit测试的组成 8. 通过案例分析,JUnit的最佳实践
内容二:Junit5新特性 和 Junit4和5的区别 (简要介绍) 1. Junit5架构 2. Junit5新特性 3. JUnit 5 架构演进 4. JUnit 5 新注解 5. JUnit 5新的断言 6. 超时操作的测试:assertTimeoutPreemptively 7. 异常测试:assertThrows 8. JUnit 5 参数化测试 9. JUnit 5 中的前置条件(assumptions) 10. JUnit 5 嵌套测试 11. JUnit 5 动态测试 12. JUnit 5 依赖注入 13. Junit5和Junit4 区别 14. 从Junit4升级到Junit5 |
四、白盒测试设计-基于路径分析 | 内容一:构思单元测试 1. 单元测试模型的设计 2. 单元测试用例设计 3. 为系统运行起来而设计 4. 为正向测试而设计用例 5. 为逆向测试而设计用例 6. 为满足特殊需求而设计用例 7. 为代码覆盖而设计用例 8. 通过案例分析单元测试编程前的测试用例的设计
内容二:测试设计与构建-基于路径的白盒测试 1. 单元测试白盒设计 2. 标识单元测试点 3. 语句覆盖 4. 判定覆盖 5. 基本路径测试法 6. 白盒测试综合策略 7. 测试覆盖准则 8. 通过大量案例分析,如何应用各种白盒测试设计技术,进行设计单元测试
内容三:单元测试设计最佳实践 1. 单元测试的私有方法的测试 2. 测试私有方法是错误的! 3. 私有方法重构-将私有方法变成公共方法 4. 私有方法重构-抽取方法,形成新类 5. 测试私有方法的例外情况 6. 基于交互的测试最佳实践 7. 基于状态的测试最佳实践 8. 基于状态的测试利用对象内部状态验证执行结果的正确性。 9. 利用协作对象的完成状态测试 |
五、数据类测试 | 内容一:单元测试设计与构建—基于白盒测试 1. 单元测试黑盒设计 2. 等价类设计法 3. 边界值分析法 4. 判定表(决策表)驱动化 5. 状态转移测试设计 6. 用例/场景测试 7. 动态分析法 9. 通过大量案例分析,如何应用各种黑盒测试设计技术,进行设计单元测试
内容二:数据类测试验证之双验-代码测试代码 1. 数据类测试验证 2. 使用代码验证代码 3. 自动化代码生成进行验证 4. 了解GitHub Copilot的基本原理和应用场景 5. 演示如何使用GitHub Copilot生成代码 6. 演示如何在您的项目中使用GitHub Copilot 7. 怎么利用 Copilot 来做重构 8. 怎么利用 Copilot 来做单元测试 9. 如何工具生成单元测试进行验证 |
六、白盒测试覆盖 | 内容一:逻辑覆盖 1. 实施逻辑覆盖的原因 2. 语句覆盖 3. 判定覆盖 4. 条件覆盖 5. 条件覆盖 6. 条件判定组合覆盖 7. 多条件覆盖 8. 修正条件判定覆盖 9. 结合案例分析,逻辑覆盖的度量 |
七、白盒测试坏味道 | 内容一:测试代码坏味道 1. 模糊测试(也称为长测试、复杂测试、冗长测试) 2. 条件测试逻辑(也称为缩排的测试码) 3. 难以测试的代码 4. 测试码复制 5. 产品中的测试逻辑 6. 通过案例分析测试代码的坏味道,症状,原因,重构等
内容二:测试项目的坏味道 1. 缺陷测试坏味道 2. 开发人员没有写测试 3. 高维护成本的单元测试 4. 通过案例分析以上每种行为坏味道,症状,原因,重构等 |
八、如何编写高质量的白盒测试 | 内容一:好的白盒测试测试标准-A-TRIP 1. 单元测试的自动化-Automatic 2. 单元测试彻底的-Thorough 3. 单元测试可重复-Repeatable 4. 单元测试独立的-Independent 5. 单元测试专业的-Professional 6. 通过案例分析,分析好的单元测试标准
内容二:如何编写好的单元测试测试 1. 优秀单元测试3条准则 2. 优秀单元测试-可读性 3. 优秀单元测试-可维护性 4. 优秀单元测试-可信赖性 5. 如何编写容易被看懂的模式 6. 结合多个案例项目进行分析,分析什么是好的单元测试 |
九、白盒测试之-代码静态分析 | 内容一:代码静态白盒测试 1. 代码静态白盒测试 2. 静态白盒测试的时机 3. 代码检查参与人员范围 4. 代码检查原则,方法和检查表 5. 如何做静态结构分析 6. 静态结构图建模
内容二:代码静态分析 1. 程序静态分析(Program Static Analysis)是指在不运行代码的方式下,通过词法分析、语法分析、控制流分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护性等指标的一种代码分析技术。 2. 程序静态分析(Program Static Analysis)可以帮助软件开发人员、质量保证人员查找代码中存在的结构性错误、安全漏洞等问题,从而保证软件的整体质量 3. 静态分析的特点 4. 常用静态分析技术 5. 静态分析实现方式 |
十、高质量代码体系最佳实践 | 内容一:代码质量管理 1. 代码管理的4个现代化 a) 质量量化(如何设置质量指标) b) 工具化(如何寻找合适的工具 c) 自动化(把流程自动化,忘记流程) d) 持续优化(反思与优化) 2. 多家电信研发中心,如何实现4个代码现代化
内容二:代码静态分析工具 1. 代码静态分析工具概述 2. 以Java语言代码静态分析工具为例介绍,该内容的思想仍然适合其他语言 a) Sonar集成平台 b) CheckStyle:用于编码标准 c) PMD 的 CPD:帮助发现代码重复 d) Coverlipse:测量代码覆盖率 e) JDepend:提供依赖项分析 f) Metric:有效地查出复杂度 g) 其他语言相关代码静态分析工具 3. 通过案例演示工具在项目之中的应用
内容三:代码评审 代码结构分析、代码质量度量、代码覆盖率分析方法,代码审查的形式、技术、技巧和流程,在代码评审环节有效发现代码隐藏问题,代码评审具体方法和审核的具体内容,审核效果分析,代码评审工作的组织结构设计,组织内人员工作安排; 1. 代码评审前期准备 2. 代码评审的代码量 3. 代码评审的检查表 4. 代码评审的总结与学习 |
Mace Liu
百林哲咨询(北京)有限公司专家团队成员
Mace Liu
百林哲咨询(北京)有限公司专家团队成员
Mace Liu
百林哲咨询(北京)有限公司专家团队成员
Mace Liu
百林哲咨询(北京)有限公司专家团队成员
Mace Liu
百林哲咨询(北京)有限公司专家团队成员
Mace Liu
百林哲咨询(北京)有限公司专家团队成员
Mace Liu
百林哲咨询(北京)有限公司专家团队成员