程序开发人员测试指南与实战训练营
Mace Liu 查看讲师
百林哲咨询(北京)有限公司专家团队成员
曾任职BEA(中国)资深软件架构师,十余年的企业软件架构、开发和管理经验, 侧重于企业应用软件架构设计.主要负责客户大型项目的架构设计和研发。
浏览:310次
详情 DETAILS

课程简介

当前,信息需求的持续增长和信息技术的快速发展加快了软件产品的研发速度,同时也大大增加了软件产品的测试压力。以互联网、移动应用等产品为例,众多软件公司普遍采用微小改进、快速迭代、反馈收集、及时响应等手段来提高软件的迭代速度,缩短软件产品的发布流程。显然,仅仅依赖测试人员已经难以满足市场和客户对产品质量的需求,这就要求开发人员也深入参与到软件测试过程中,与测试人员共同完成软件产品的质量保证工作

本课程从开发者测试出现的背景与意义、开发者所应掌握的基本和高级程序分析方法以及软件测试技术、开发者所应掌握的软件测试分析辅助工具、用于开发者测试教学和竞赛平台等多个方面对开发者测试进行系统性介绍帮助大家了解开发者参与测试的必要性以及开发者测试所涵盖的内容,提高测试能力。

课程收益

1.通过课程的学习可以了解测试的基本概念,测试框架的使用,基础的单元测试用例如何设计

2.通过课程可以学习,对象依赖如何通过stub/mock等解除依赖,mock框架的学习,什么好的单元测坏死,如何提高单元测试的可读性, 可维护性,稳定可靠性

3.通过课程可以学习到如何提高设计与代码的可测试性, 测试覆盖率的设计,复杂企业应用系统如何测试不同的层(UI/controller/Service/DB),如何使用测试驱动开发(TDD)?

4.如何在组织里引入单元测试? 如何评价和考核开发人员的单元测试质量? 如何设计合适的测试覆盖率?复杂遗留系统如何引入单元测试? 单元测试与持续集成如何结合? 验收测试如何和单元测试结合?

受众人群

各类软件研发机构的软件研发管理者、架构师,软件设计师、程序员。

学员学习本课程应具备下列基础知识:

1) 了解Java/C#/C++/C语言(最好了解面向对象基本概念); 

2) 简单了解XUnit框架的任何一种;熟悉一种开发工具IDE下单元测试环境(比如JUnit/Nunit/MSTest/CppUnit/TestNG/GoogleTest等,我们课程不关注具体的工具的使用)。

课程周期

 2天(12H 

课程大纲

标题

授课内容

一、开发者测试基础

1. 开发者测试概述

(1) 开发者与软件测试

(2) 测试和调试

(3) 开发者测试

(4) PIE模型

(5) 开发者测试方法与技术

(6) 静态测试与动态测试

(7) 黑盒测试与白盒测试

(8) 失效重现

(9) 开发者测试工具

(10) 静态测试扫描工具

(11) 测试覆盖分析工具

(12) 开发者测试趋势

(13) 软件开发和运营困境

(14) DevOps中的开发者测试

2. 敏捷测试 -实际开发中的测试区别和实践

(1) 敏捷测试

(2) 测试金字塔

(3) 单元测试

(4) 组件测试

(5) 集成测试

(6) 软件开发之中各种测试的区别

二、开发者测试—代码静态分析

1. 代码静态分析

(1) 程序静态分析(Program Static Analysis)是指在不运行代码的方式下,通过词法分析、语法分析、控制流分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护性等指标的一种代码分析技术。

(2) 程序静态分析(Program Static Analysis)可以帮助软件开发人员、质量保证人员查找代码中存在的结构性错误、安全漏洞等问题,从而保证软件的整体质量

(3) 静态分析的特点

(4) 代码评审

(5) 结构分析

(6) 程序流程分析

(7) 控制流分析

(8) 数据流分析

(9) 符号执行

(10) 静态符号执行

(11) 动态符号执行

(12) 编程规范和规则

(13) 常用静态分析技术

(14) 静态分析实现方式

2. 代码静态分析工具

(1) 代码静态分析工具概述

(2) Java语言代码静态分析工具为例介绍,该内容的思想仍然适合其他语言

① 其他语言相关代码静态分析工具

(3) 通过案例演示工具在项目之中的应用

三、开发者测试--AEP自动化错误预防

1. 自动化预防-AEP

(1) Automated Error Prevention(简称AEP),是指通过整个软件开发周期中自动地预防错误来提高产品质量

(2) 自动化错误预防五大法则

(3) 应用行业最佳实践来防止普遍错误并建立全方位的错误预防基础---案例分析

(4) 按需要修改实践来预防特殊的错误

(5) 确保每个小组正确地,始终如一地贯彻执行AEP

(6) 循环渐进地采用每一个实践

(7) 利用统计来稳定每一个过程,让它发挥价值

(8) 通过案例进行分析,某研发中心代码自动化预防机制建立

2. BugDetective

(1) BugDetective概述

(2) BugDetective规则

(3) Parasoft公司旗下产品C++Test BugDetective分析技术,该技术使用了几种分析技巧,包括模拟应用程序执行路径,以识别可能触发运行时缺陷的路径。检测到的缺陷包括,使用未初始化的内存、引用空指针、除数为零、内存和资源泄漏。

(4) 通过案例进行分析,某研发中心代码自动化预防机制建立

四、理解单元测试框架—XUnit工具

1. 理解单元测试

(1) 什么是单元测试?

(2) 为什么要写单元测试,为什么不写单元测试

(3) 理解单元测试--第一个单元测试案例

(4) 好的测试是什么样子的,为什么要写"好"的单元测试

(5) 单元测试的维护成本

(6) 单元测试与自动化测试

(7) 分析真实项目,如何做单元测试

(8) 通过案例分析,了解基本的单元测试

2. 理解单元测试XUnit 框架使用—(以Junit为案例介绍,其他简单介绍)

(1) Junit设计目标

(2) 探索JUnit核心

(3) 参数化测试

(4) 测试异常

(5) 超时测试

(6) 引入Hamcrest匹配器

(7) JUnit的测试运行器

(8) Suite来组合测试

(9) Junit与IDE,Ant,Maven集成运行

(10) JUnit与持续集成工具结合

(11) 通过案例分析,Junit的最佳实践

3. Junit5新特性

(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. 构思单元测试

(1) 单元测试模型的设计

(2) 单元测试用例设计

(3) 为系统运行起来而设计

(4) 为正向测试而设计用例

(5) 为逆向测试而设计用例

(6) 为满足特殊需求而设计用例

(7) 为代码覆盖而设计用例

(8) 通过案例分析单元测试编程前的测试用例的设计

2. 单元测试设计与构建-基于路径的白盒测试

(1) 单元测试白盒设计

(2) 标识单元测试点

(3) 语句覆盖

(4) 判定覆盖

(5) 基本路径测试法

(6) 白盒测试综合策略

(7) 测试覆盖准则

(8) 通过大量案例分析,如何应用各种白盒测试设计技术,进行设计单元测试

3. 单元测试设计与构建—基于测试数据的黑盒测试

(1) 单元测试黑盒设计

(2) 等价类设计法

(3) 边界值分析法

(4) 判定表(决策表)驱动化

(5) 状态转移测试设计

(6) 用例/场景测试

(7) 动态分析法

(8) 通过大量案例分析,如何应用各种黑盒测试设计技术,进行设计单元测试

4. 单元测试设计最佳实践

(1) 单元测试的私有方法的测试

(2) 测试私有方法是错误的!

(3) 私有方法重构-将私有方法变成公共方法

(4) 私有方法重构-抽取方法,形成新类

(5) 测试私有方法的例外情况

(6) 基于交互的测试最佳实践

(7) 基于状态的测试最佳实践

(8) 基于状态的测试利用对象内部状态验证执行结果的正确性。

(9) 利用协作对象的完成状态测试

5. 单元测试设计SPIFFy原则

(1) 单元测试粒度

(2) 单元测试依赖

(3) 单元测试原则-SPIFFy:

(4) Small: 10 lines or less, ideally

(5) Precise: Checks one behavior of one class

(6) Isolated: Doesn't affect other tests

(7) Fast: Takes milliseconds to run

(8) Frequently Run: Every time you make a change


企业服务热线:400-106-2080
电话:18519192882
投诉建议邮箱:venus@bailinzhe.com
合作邮箱:service@bailinzhe.com
总部地址:
北京市-丰台区-汽车博物馆东路6号3号楼1单元902-B73(园区)
全国客户服务中心:
天津市-南开区-桂苑路15号鑫茂集团鑫茂军民园1号楼A座802-803
公众号
百林哲咨询(北京)有限公司 京ICP备2022035414号-1