课程将重现这些问题的经典案例,通过实例讲解,并对应到学员的实际工作问题,使学员能够把传授的经验和自己的问题结合起来,有效的启发思路、激发兴趣、并掌握解决问题的基本方法。
一、测试驱动的思维模式
1、功能理解分析
初步评估功能任务书(使用评估视角模型)
分解功能任务书文字描述(理解文字背后含义)
原型分析或绘制原型草图(理解文字的界面表达)
功能操作级别的分解(细化业务流程)
2、功能解决方案
动态设计-操作步骤的时间编排
静态设计-数据实体的结构规划
约束设计-前置与后置约束、边界约束、时间约束
技术设计-选择适合框架API、语言表达方式
3、功能详细设计训练
训练1:全面功能分析过程训练
训练2:健壮性功能设计过程训
4、归纳功能设计视角与方法,形成模式
二、测试的思维模式
1、攻击设计思维
攻击路线图(发现从哪里攻击?有多少种攻击方式?)
制定攻击的方法(策略方案)
2、测试方案构造
测试数据构造(动态路径中测试因子,引发缺陷的因子)
测试路径断点构造(拦截测试数据执行结果)
测试断言构造(缺陷的判断标准)
测试依赖项构造(测试打桩-测试替身MOCK)
3、测试用例训练
训练1:构造测试数据训练
训练2:构造路径断点与断言训练
4、归纳测试思考视角与方法,形成模式
三、单元测试训练
1、后测试模式训练
展示先开发后测试的过程
训练1:案例代码的编写
训练2:单元测试代码编写
训练3:分析测试结果
2、先测试模式训练
展示先测试后开发的过程
训练1:依据案例编写测试代码
训练2:执行测试用例,编写实现代码
训练3:迭代完成实现代码
3、对比两种测试模式
列举两种测试的优点与缺点
计算两种测试的时间效率
评估两种测试的质量效果
4、接口测试训练
展示接口测试过程
训练1:构造接口测试用例
训练2:执行接口测试用例
训练3:分析测试执行结果
四、深度单元测试技术
1、数据驱动单元测试
测试数据复用的形式
测试数据注入的方式
测试数据存储方式
读取测试数据代码方案
2、单元测试打桩(Mock)
静态打桩与动态打桩
Mock框架结构分析
可变参函数打桩
Proxy(代理)的方式打桩
3、重构测试类
发现测试代码中坏味道
重构坏味道的策略
实施测试代码重构
归纳总结重构经验
学员学习本课程应具备下列基础知识: 1) 了解Java/C#/C++/C语言(了解面向对象基本概念); 2) 简单了解XUnit框架的任何一种;熟悉一种开发工具下单元测试环境(比如JUnit/Nunit/MSTest/CppUnit/TestNG/GoogleTest等,我们课程不关注具体的工具的使用)。