单元测试——No Silver Bullet
来源:互联网 发布:淘宝电商培训靠谱吗 编辑:程序博客网 时间:2024/05/16 16:04
单元测试是一种细粒度的测试,已经成为很多公司正常开发流程的一部分,在要求提交代码的同时提交单元测试代码。最著名的单元测试框架是JUnit,XP方法学先驱Kent Beck与设计模式代表人物Erich Gamma作品,成为单元测试领域的事实标准。寸有所长尺有所短,单元测试作为一门工具方法,致力于解决某些问题,只有全面、客观了解,才能在具体工作应用当中产生正面影响。
一、单元测试
单元测式是在隔离状态下对某个模块进行测试,目的是检验其行为。一旦我们在受控的条件下对模块进行了彻底的测试,我们就能够有信心的预期软件整体情况。典型的单元测试,在某种人工环境下,调用被测试模块的方法,然后根据预期值,对返回结果进行检验。
按合约设计(DBC)用文档约定了软件模块的权利与责任:做它声明要做的事情,不多不少,用文档记载这样的声明,并进行较验。单元测试是针对合约的测试。编写的测试用例确保给定的单元遵守其合约:代码是否符合合约,以及合约的定义是否与我们所认为的一样。通过广泛的测试用例和边界条件,测试模块是否实现了它允诺的功能。
二、优点与误解
优点:
- 提供一些例子,说明怎么样使用的你的模块。也许有过同样的经验,当使用第三方组件不清楚其API是怎么样调用时,会去查看其API文档,跳过其大段的说明,直接看其样例,然后照样例画瓢。同样单元测试具有样例的功能。
- 为以后的重构,提供安全保障。在《重构:改善既有代码设计》提到,在重构前,必须建立其测试保障体系,以确定重构是否有改其软件行为。
- 降低其不确定性从而降低其风险。在开发中,有多长时间是在和代码编缉器找交道,又有多长时间在和调试器打交道?从表面上看,为每个单元编写测试代码增加了工作量,但是因为这些测试代码不仅为你提供了保护网,可以帮你迅速定位错误,减小对调试器的依赖。所以增加一些工作量,物有所值,而且现今的测试工具,如JUnit,只需写很少的测试代码。
误解:
关于测试的若干误解
- 单元测试——No Silver Bullet
- No Silver Bullet
- No Silver Bullet
- No Silver Bullet - 没有银弹
- 《构建之法》 读后感 —— there is no silver bullet
- 名词解释 —— 抄送(cc)、银弹(silver bullet)
- No Silver Bullet: Essence and Accidents of Software Engineering
- No Silver Bullet: Essence and Accidents of Software Engineering(摘抄)
- 再论《没有银弹》 (“No Silver Bullet”Refired)---经典中的经典,听听大师教诲吧
- [人月神话]读书笔记9--再论没有银弹("No Silver Bullet Refired")
- UVA 11227 The silver bullet
- 没有银弹-软件工程中的根本和次要问题(No Silver Bullet – Essence and Accident in Software Engineering)-
- 没有银弹-软件工程中的根本和次要问题(No Silver Bullet – Essence and Accident in Software Engineering)
- 捷径和妙方quick fix and silver bullet
- POJ3268—Silver Cow Party
- POJ3268—Silver Cow Party
- POJ3258——Silver Cow Party
- 刷题——Silver Cow Party POJ
- mysql错误:Column count doesn't match value count at row 1
- 2011/07/10
- 链表类面试题
- RNDIS
- 关于新闻发布系统
- 单元测试——No Silver Bullet
- 在Windows 下 python django 安装全过程
- VC2005生成Excel文件样例
- C语言嵌入式系统编程修炼之软件架构篇
- SQL锁机制和事务隔离级别
- Internet路由-主机路由表和转发表
- Ubuntu下pdf的中文乱码问题
- tony --- C语言那些事儿(1)
- Linux something