软件代码级单元测试技术最佳实践

软件代码级单元测试技术最佳实践
    马上咨询

    王胜  资深测试架构师

    毕业于上海交通大学,获硕士学位,现任 eBay 中国研发中心测试基础架构(QE-Infrastructure)技术主管,历任 HP 软件中国研发中心资深测试架构师、性能测试专家,Alcatel-Lucent 高级测试主管,Cisco 中国研发中心资深测试工程师等职位,具有超过 15 年的软件测试开发经验和技术管理经验,具有丰富的测试框架设计与自动化测试经验。曾负责建立全球大型电商网站的测试基础架构和和自动化测试方案,主持搭建持续集成测试生态体系,并负责主导无线路由产品的整体自动化测试方案、金融平台产品 SDK,测试框架设计、系统开发平台的白盒测试方案、DSP 平台自动化测试方案、轨道交通安全软件平台测试、大规模产品链的自动化部署和多个大型电子商务网站的自动化功能,测试,API 测试与性能测试。曾在国际以及国内学术期刊上发布多篇测试管理和自动化测试解决方案的论文,并担任“软件测试世界杯赛”的亚洲区评委。曾受邀在国际(美国, 俄罗斯, 日本等)以及国内顶级技术大会(Arch Summit, CNUTCon,Tid,GITC 等 )上多次发表软件测试和 DevOps 相关的技术演讲。另外,王胜还是极客时间“软件测试 52 讲-从小工到专家的实战心法”的专栏作者。

    课程大纲

    理解单元测试

    • 什么是单元测试?
    • 为什么要写单元测试,为什么不写单元测试
    • 第一个单元测试案例
    • 前端的单元测试
    • 后端的单元测试
    • 好的测试是什么样子的,为什么要写"好"的单元测试
    • 单元测试的维护成本
    • 单元测试与自动化测试
    • 分析真实项目,如何做单元测试


    代码级自动测试的最佳实践

    • 代码的基本特征
    • 代码缺陷产生的原因
    • 代码错误的分类
    • 代码级测试方法的分类
    • 完备代码级测试用例的设计
    • 代码测试覆盖率的衡量
    • 代码测试覆盖率的实现原理
    • 探讨覆盖率的局限性
    • 典型代码错误分析
    • Mock 与 Stub 区别


    理解单元测试 XUnit 框架使用

    • Junit 设计目标
    • 探索 JUnit 核心
    • 参数化测试
    • 测试异常
    • 超时测试
    • 引入 Hamcrest 匹配器
    • JUnit 的测试运行器
    • 用 Suite 来组合测试
    • Junit 与 IDE,Ant,Maven 集成运行
    • JUnit 与持续集成工具结合


    单元测试设计—基于黑盒的设计

    • 单元测试黑盒设计
    • 等价类设计法
    • 边界值分析法
    • 判定表(决策表)驱动化
    • 状态转移测试设计
    • 结对测试
    • 分类树设计方法
    • 用例/场景测试


    单元测试设计—基于白盒的设计

    • 单元测试白盒设计
    • 标识单元测试点
    • 语句覆盖
    • 判定覆盖
    • 基本路径测试法
    • 白盒测试综合策略
    • 测试覆盖准则


    好的单元测试测试标准

    • 单元测试的自动化-Automatic
    • 单元测试彻底的-Thorough
    • 单元测试可重复-Repeatable
    • 单元测试独立的-Independent
    • 单元测试专业的-Professional 


    测试数据的准备

    • 测试中数据的复杂性与难点
    • 基于实时数据创建的测试数据准备策略
    • 基于Out-of-box的测试数据准备策略
    • 测试数据准备工具的最佳实践
    • Test Data Service的架构设计与实现
    • 数据准备的创新设计


    单元测试与CI的集成

    • 早期的测试执行环境
    • 基于Jenkins触发测试执行
    • 引入 Test Runner / Test Execution System
    • CI/CD集成的设计与最佳实践
    • 典型的 Test Report Platform 架构
    • 高扩展的 Test Report Service
    • 全栈测试报告的设计以及应用场景
    • 引入 Test Analysis Service 提高 Defect 分类效率