什么造就了成功的测试套件

如果测量测试套件的质量?

  • 唯一可行的办法就是对测试套件里每一个测试进行单独的评估。

    • 你不需要一次性把它们都评估完。

    • 你可以逐步的进行评估

成功的测试套件拥有以下属性:

  • 集成到开发周期中

  • 只针对代码库中最重要的部分

  • 它以最低的成本提供最大的价值

集成到开发周期中

拥有自动化测试的唯一重点就是你要经常使用它们。

  • 所有的测试都应该集成到开发周期中。

  • 最理想的情况是,每当有代码变化,都应该执行这些测试,哪怕是最微小的代码变化。

 

只针对代码库中最重要的部分

  • 将单元测试的重点放在系统中最关键的部分,针对其余部分仅进行简单或间接的测试即可,这一点很重要。

  • 在大多数应用程序中,最重要的部分是包含业务逻辑部分的领域模型(Domain     Model)。

    • 测试业务逻辑会为您的时间投资提供最佳回报。

所谓的其余部分可以分为以下三类:

  • 基础设施代码

  • 外部服务和依赖,例如数据库和第三方系统

  • 粘合一切的代码

为此,您应该将域模型与代码库的非必要部分隔离开来。您必须将域模型与所有其他应用程序关注点分开,以便您可以将单元测试工作的重点放在该域模型上。

以最低的成本提供最大的价值

将测试合并到构建系统中是不够的,保持域模型的高测试覆盖率也是不够的。同样重要的是,只在测试套件中保留价值超过其维护成本的测试。最后一个属性可以分为两点:

  • 识别一个有价值的测试(扩展一下,包括如何识别低价值的测试)

  • 编写一个有价值的测试。

《Unit Testing》1.4. 成功的测试套件拥有哪些属性?相关推荐

  1. 《Unit Testing》1.3 使用覆盖率指标来度量测试套件的好坏

    使用覆盖率来度量测试套件(Test Suite)的质量 有两种比较流行的测试覆盖率的度量方法: 代码覆盖率 分支覆盖率 覆盖率度量会显示一个测试套件(Test Suite)会执行多少代码,范围从 0 ...

  2. 我的测试生活感悟2 - Art Of Unit Testing

    今天把<Art Of Unit Testing>的前四个章节读完了,作者以自己的亲身经历,使用简洁清晰的语言,为我们展现了单元测试的艺术. 怎么定义一个好的测试案例呢?好的测试案例应该是在 ...

  3. 对 React 组件进行单元测试(unit testing)

    2019独角兽企业重金招聘Python工程师标准>>> 在这里说一下前端开发的一个特点是更多的会涉及用户界面,当开发规模达到一定程度时,几乎注定了其复杂度会成倍的增长. 无论是在代码 ...

  4. 《Unit Testing》1.1 -1.2 单元测试的目的

    本系列是<Unit Testing> 一书的读书笔记 + 精华提取. 书中的例子 C# 语言编写,但概念是通用的,只要懂得面向对象编程就可以. 单元测试当前的状态 目前,在(美国的)大部分 ...

  5. AY写给国人的教程- VS2017 Live Unit Testing[1/2]-C#人爱学不学-aaronyang技术分享

    AY写给国人的教程- VS2017 Live Unit Testing[1/2]-C#人爱学不学-aaronyang技术分享 原文:AY写给国人的教程- VS2017 Live Unit Testin ...

  6. 安卓CTS官方文档之兼容性测试套件简介

    官方英文文档原文:https://source.android.com/compatibility/cts-intro.html Compatibility Test Suite 兼容性测试套件 Ho ...

  7. 《Pragmatic unit testing:in java with Junit》阅读

    SQ3R阅读法: Survey:阅读之前的浏览,查阅   1.书名:<Pragmatic unit testing:in java with Junit>,中文译名<单元测试之道Ja ...

  8. Unit testing Cmockery 简单使用

    /*********************************************************************** Unit testing Cmockery 简单使用* ...

  9. 体验VS2017的Live Unit Testing

    相对于传统的Unit Test,VS2017 带来了一个新的功能,叫Live Unit Testing,从字面意思理解就是实时单元测试,在实际的使用中,这个功能就是可以在编写代码的时候进行实时的bac ...

最新文章

  1. aarch64的TCR寄存器介绍
  2. 2014年世界互联网大会---马云篇
  3. ADO学习(一)基础理论
  4. mysql 统计 邮箱_mysql查询之 连续出现的数字,重复出现的邮箱,删除重复的电子邮箱...
  5. 终于可以放下心来了,呜呜...
  6. 在CockroachDB上运行Flowable
  7. 操作系统,你搞定了没?
  8. Js数组去重的多种方法
  9. php中如何配置环境变量,如何配置phpstorm环境变量如何配置phpstorm环境变量
  10. [android] 手机卫士设置向导页面
  11. 箭头 运算符_Java 运算符
  12. POJ 1821 Fence(单调队列优化DP)
  13. High-Quality Genome-Scale Models From Error-Prone, Long-Read Assemblies高质量的基因组尺度模型来自易出错的,长时间读取的程序集
  14. js实现canvas在线画板
  15. CSS:三种背景(斑马线,棋盘,格子)
  16. Halting Problem图灵机问题
  17. 题解 CF174A 【Problem About Equation】
  18. 毕业论文图片、公式自动编号和交叉索引教程
  19. 做一个有流量的标题党
  20. 重学 Java 设计模式:实战备忘录模式「模拟互联网系统上线过程中,配置文件回滚场景」

热门文章

  1. ASP.Net 验证正则表达式
  2. Objective-C NSSetNSMutableSet以及CountedSet
  3. CentOS学习笔记--程序管理
  4. 优秀编程网站收录集锦
  5. datagrid 什么时候结束编辑_2020年中考结束后,什么时候出分?什么时候报志愿?...
  6. 了解cron以及使用cron定时备份MySQL
  7. 阿里云MaxCompute香港开服 将引入更多人工智能服务
  8. [禅悟人生]尊严非席, 不可卷起
  9. MYSQL性能优化分享(分库分表)
  10. Primes on Interval