zoukankan      html  css  js  c++  java
  • 1、单元测试概述

    元测试 - 是对软件中的最小可测试单元进行检查和验证:API,函数。

    测试用例 - 是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或合适是否满足某个特定需求

          输入 -> 执行条件 -> 预期结果

    TDD

      - 测试驱动开发(Test-Driven Development),通过测试用例指引实际的开发,让开发首先站在全局的视角来看待需求

      - 从实现的角度

      - 需求分析 -> 编写单元测试 -> 编写代码使单元测试全部通过 -> 重构并重复测试

    BDD

      - 行为驱动开发(Behavior Drivern Development),

      - 基于行为,更自然,前端开发更倾向于BDD

      - 从业务角度定义具体可衡量的目标 -> 找到可实现目标的方法 -> 编写单元测试 -> 实现行为 -> 检验产品运行结果是否符合预期

    单元测试技术

      - 测试框架 

      - 断言库

      - mock 库

      - test runner 执行环境

      - 覆盖率工具

    - 测试框架 

      - Qunit

      - jasmine

      - jest

      - mocha

      - intern

    - 断言库 

      - chai

      - should

      - expect

      - assert

    - 检查结果 - 提供了一套API,

    帮助开发者在单元测试的过程中,

    判断某个值是否符合预期

    - mock库 

      - sinon

    - 解决数据和外部依赖部分

    不能控制、实现成本较高、操作危险等

    - test runner 

      - karma

      - buster.js

    -提供执行环境,管理执行流程,

    有了执行环境

    可以实现单元测试的自动化执行,

    而不需要手动点开浏览器去执行,

    也是单元测试可以成为重构

    系统升级的一个基础

    - 覆盖率工具 

      - Istanbul

    - 帮助我们衡量单元测试的有效性

    - 好的单元测试:

      - 可靠性

      - 可维护性

      - 可读性

    - 编写可靠的测试:

      - 及时修改和维护

      - 避免测试中逻辑过多

      - 只测试单一的点

      - code review

      - 独立运行

      - 充分考虑边界条件

      - 模拟数据尽量贴近真实

    - 编写可维护的测试:

      - 测试公有方法,私有方法变更和调用频繁

      - 移除重复代码

      - 保证setup方法的可维护

      - 测试隔离,不允许互相依赖

      - 单个测试中避免多个断言

    - 编写可读的测试:

      - 命名的问题

      - 有意义的断言

      - 断言与操作分离

    - 覆盖率:

      - 行覆盖率

      - 函数覆盖率

      - 分支覆盖率

      - 语句覆盖率

    - 测试用例分类:

      - 数据层

      - 逻辑层

      - 工具类

      - 展示层

    推荐书籍:软件测试、单元测试的艺术、修改代码的艺术、重构改善既有代码的设计

  • 相关阅读:
    Thrift官方安装手冊(译)
    从用python做zoj1011发生Non-zero Exit Code错误说起
    POJ 1637 Sightseeing tour(最大流)
    js中substr与substring的差别
    白话经典算法系列之七 堆与堆排序
    在基于阿里云serverCentOS6.5下安装Subversion 1.6.5服务
    Android研究之手PullToRefresh(ListView GridView 下拉刷新)使用具体解释
    java中获取系统属性以及环境变量
    sql中 in 、not in 、exists、not exists 使用方法和区别
    80x86汇编小站站长简单介绍-2014年08月23日
  • 原文地址:https://www.cnblogs.com/slightFly/p/13661957.html
Copyright © 2011-2022 走看看