读完这本书后,我有了很多的收获,首先这本书主要讲了做单元测试的一些原则,单元测试是做什么的,怎么样才是一个好的单元测试等等问题。首先,对于每个新写的函数,在其他代码使用这个函数并对它形成依赖之前,都要先做测试。单元测试是用于判断某个特定条件或场景下某个特定函数的行为。单元测试不但会使你的工作完成得更轻松,而且会令你的设计变得更好,甚至大大减少你花在调试上面的时间。单元测试其实也是一种工具,通过单元测试可以更加快捷的找到出bug的地方,对于代码量大的工程能起到很大的作用。在代码的调试、修改的工程中能为我们提供非常大的帮助。除了代码之外,还有很多东西需要被测试:凌乱的类名,程序库的位置,还要确认代码能通过编译。其实在调试一个复杂测试的同时,就不需调试这些复杂的集成问题了。所有的代码,测试的和产品的,都应该是简洁和清晰的。尤其是测试代码,更应该具有很好
以下是读后笔记:
一、什么是单元测试
单元测试是开发者编写的一段代码,用于检验被测代码的一个很小的、很明确的功能是否正确
二、测试哪些内容 Right-BICEP
结果是否正确
期望的结果是否正确
边界条件
完全伪造或者不一致的输入数据
格式错误的数据
空值或者不完整的值
一些与意料中的合理值相去甚远的数值
检查反向关联
使用反向的逻辑关系来验证
使用其他手段来实现交叉检查
强制产生错误条件
性能特性
三、CORRECT边界条件
一致性(Conformance)——值是否符合预期的格式?
有序性(Ordering)——一组值是该有序还是无序?
区间性(Range)——值是否存在一个最大值和最小值的范围之内?
引用,耦合(Reference)——代码是否引用了一些不受代码本身直接控制的外部因素?
存在性(Existence)——值是否存在?
基础性(Cardinality)——是否恰好有足够的值?
时间性,绝对的或者相对的(Time)——所有事情是否都是按顺序发生的?是否在正确的时间?是否及时?
自动化:
至少包含两方面含义:调用测试自动化、检查结果自动化
彻底的
测试所有可能出现问题的情况,极端的就是每一行代码
可重复
任意顺序的执行其中任一一个测试,产生的结果都是相同
独立的
测试之间应该是独立的,并且必须独立于周围不可控的环境
专业的
在测试代码中,针对好设计的所有普遍规则--维护封装、采用DRY原则、降低耦合,等等——都必须如在产品代码中那样得到遵循
四、好的测试所具有的品质A-TRIP
自动化:至少包含两方面含义:调用测试自动化、检查结果自动化
彻底的
测试所有可能出现问题的情况,极端的就是每一行代码
可重复
任意顺序的执行其中任一一个测试,产生的结果都是相同
独立的
测试之间应该是独立的,并且必须独立于周围不可控的环境
专业的
在测试代码中,针对好设计的所有普遍规则--维护封装、采用DRY原则、降低耦合,等等——都必须如在产品代码中那样得到遵循
以下是读后笔记:
一、什么是单元测试
单元测试是开发者编写的一段代码,用于检验被测代码的一个很小的、很明确的功能是否正确
二、测试哪些内容 Right-BICEP
结果是否正确
期望的结果是否正确
边界条件
完全伪造或者不一致的输入数据
格式错误的数据
空值或者不完整的值
一些与意料中的合理值相去甚远的数值
检查反向关联
使用反向的逻辑关系来验证
使用其他手段来实现交叉检查
强制产生错误条件
性能特性
三、CORRECT边界条件
一致性(Conformance)——值是否符合预期的格式?
有序性(Ordering)——一组值是该有序还是无序?
区间性(Range)——值是否存在一个最大值和最小值的范围之内?
引用,耦合(Reference)——代码是否引用了一些不受代码本身直接控制的外部因素?
存在性(Existence)——值是否存在?
基础性(Cardinality)——是否恰好有足够的值?
时间性,绝对的或者相对的(Time)——所有事情是否都是按顺序发生的?是否在正确的时间?是否及时?
自动化:
至少包含两方面含义:调用测试自动化、检查结果自动化
彻底的
测试所有可能出现问题的情况,极端的就是每一行代码
可重复
任意顺序的执行其中任一一个测试,产生的结果都是相同
独立的
测试之间应该是独立的,并且必须独立于周围不可控的环境
专业的
在测试代码中,针对好设计的所有普遍规则--维护封装、采用DRY原则、降低耦合,等等——都必须如在产品代码中那样得到遵循
四、好的测试所具有的品质A-TRIP
自动化:至少包含两方面含义:调用测试自动化、检查结果自动化
彻底的
测试所有可能出现问题的情况,极端的就是每一行代码
可重复
任意顺序的执行其中任一一个测试,产生的结果都是相同
独立的
测试之间应该是独立的,并且必须独立于周围不可控的环境
专业的
在测试代码中,针对好设计的所有普遍规则--维护封装、采用DRY原则、降低耦合,等等——都必须如在产品代码中那样得到遵循
-
上一篇
第一次软件工程作业 180402班 巩阳昌 -
下一篇
双人项目代码编写规范