《Unit Testing》1.4. 成功的测试套件拥有哪些属性?
什么造就了成功的测试套件
如果测量测试套件的质量?
唯一可行的办法就是对测试套件里每一个测试进行单独的评估。
你不需要一次性把它们都评估完。
你可以逐步的进行评估
成功的测试套件拥有以下属性:
集成到开发周期中
只针对代码库中最重要的部分
它以最低的成本提供最大的价值
集成到开发周期中
拥有自动化测试的唯一重点就是你要经常使用它们。
所有的测试都应该集成到开发周期中。
最理想的情况是,每当有代码变化,都应该执行这些测试,哪怕是最微小的代码变化。
只针对代码库中最重要的部分
将单元测试的重点放在系统中最关键的部分,针对其余部分仅进行简单或间接的测试即可,这一点很重要。
在大多数应用程序中,最重要的部分是包含业务逻辑部分的领域模型(Domain Model)。
测试业务逻辑会为您的时间投资提供最佳回报。
所谓的其余部分可以分为以下三类:
基础设施代码
外部服务和依赖,例如数据库和第三方系统
粘合一切的代码
为此,您应该将域模型与代码库的非必要部分隔离开来。您必须将域模型与所有其他应用程序关注点分开,以便您可以将单元测试工作的重点放在该域模型上。
以最低的成本提供最大的价值
将测试合并到构建系统中是不够的,保持域模型的高测试覆盖率也是不够的。同样重要的是,只在测试套件中保留价值超过其维护成本的测试。最后一个属性可以分为两点:
识别一个有价值的测试(扩展一下,包括如何识别低价值的测试)
编写一个有价值的测试。
《Unit Testing》1.4. 成功的测试套件拥有哪些属性?相关推荐
- 《Unit Testing》1.3 使用覆盖率指标来度量测试套件的好坏
使用覆盖率来度量测试套件(Test Suite)的质量 有两种比较流行的测试覆盖率的度量方法: 代码覆盖率 分支覆盖率 覆盖率度量会显示一个测试套件(Test Suite)会执行多少代码,范围从 0 ...
- 我的测试生活感悟2 - Art Of Unit Testing
今天把<Art Of Unit Testing>的前四个章节读完了,作者以自己的亲身经历,使用简洁清晰的语言,为我们展现了单元测试的艺术. 怎么定义一个好的测试案例呢?好的测试案例应该是在 ...
- 对 React 组件进行单元测试(unit testing)
2019独角兽企业重金招聘Python工程师标准>>> 在这里说一下前端开发的一个特点是更多的会涉及用户界面,当开发规模达到一定程度时,几乎注定了其复杂度会成倍的增长. 无论是在代码 ...
- 《Unit Testing》1.1 -1.2 单元测试的目的
本系列是<Unit Testing> 一书的读书笔记 + 精华提取. 书中的例子 C# 语言编写,但概念是通用的,只要懂得面向对象编程就可以. 单元测试当前的状态 目前,在(美国的)大部分 ...
- AY写给国人的教程- VS2017 Live Unit Testing[1/2]-C#人爱学不学-aaronyang技术分享
AY写给国人的教程- VS2017 Live Unit Testing[1/2]-C#人爱学不学-aaronyang技术分享 原文:AY写给国人的教程- VS2017 Live Unit Testin ...
- 安卓CTS官方文档之兼容性测试套件简介
官方英文文档原文:https://source.android.com/compatibility/cts-intro.html Compatibility Test Suite 兼容性测试套件 Ho ...
- 《Pragmatic unit testing:in java with Junit》阅读
SQ3R阅读法: Survey:阅读之前的浏览,查阅 1.书名:<Pragmatic unit testing:in java with Junit>,中文译名<单元测试之道Ja ...
- Unit testing Cmockery 简单使用
/*********************************************************************** Unit testing Cmockery 简单使用* ...
- 体验VS2017的Live Unit Testing
相对于传统的Unit Test,VS2017 带来了一个新的功能,叫Live Unit Testing,从字面意思理解就是实时单元测试,在实际的使用中,这个功能就是可以在编写代码的时候进行实时的bac ...
最新文章
- aarch64的TCR寄存器介绍
- 2014年世界互联网大会---马云篇
- ADO学习(一)基础理论
- mysql 统计 邮箱_mysql查询之 连续出现的数字,重复出现的邮箱,删除重复的电子邮箱...
- 终于可以放下心来了,呜呜...
- 在CockroachDB上运行Flowable
- 操作系统,你搞定了没?
- Js数组去重的多种方法
- php中如何配置环境变量,如何配置phpstorm环境变量如何配置phpstorm环境变量
- [android] 手机卫士设置向导页面
- 箭头 运算符_Java 运算符
- POJ 1821 Fence(单调队列优化DP)
- High-Quality Genome-Scale Models From Error-Prone, Long-Read Assemblies高质量的基因组尺度模型来自易出错的,长时间读取的程序集
- js实现canvas在线画板
- CSS:三种背景(斑马线,棋盘,格子)
- Halting Problem图灵机问题
- 题解 CF174A 【Problem About Equation】
- 毕业论文图片、公式自动编号和交叉索引教程
- 做一个有流量的标题党
- 重学 Java 设计模式:实战备忘录模式「模拟互联网系统上线过程中,配置文件回滚场景」
热门文章
- ASP.Net 验证正则表达式
- Objective-C NSSetNSMutableSet以及CountedSet
- CentOS学习笔记--程序管理
- 优秀编程网站收录集锦
- datagrid 什么时候结束编辑_2020年中考结束后,什么时候出分?什么时候报志愿?...
- 了解cron以及使用cron定时备份MySQL
- 阿里云MaxCompute香港开服 将引入更多人工智能服务
- [禅悟人生]尊严非席, 不可卷起
- MYSQL性能优化分享(分库分表)
- Primes on Interval