9针串口定义测试方法_一些定义–测试技术9

9针串口定义测试方法

我认为我即将结束有关测试技术的博客系列,感觉好像已经过去了。 对我来说更清楚的一件事是,测试方法仍处于起步阶段,因此是开发人员之间争执或讨论的明确来源,这是一件好事。

我怀疑我们正处于职业发展史上的某个时刻,写作测试学科才刚刚起步,有一天会成为普通人,并作为基础编程课程的一部分被教授(1)。 今天的博客提供了本系列以前的博客中使用的术语的摘要。

单元测试
我在本系列博客的第二部分中介绍了单元测试的定义,并提出了Shane Warden的观点,他在他的《 敏捷开发的艺术》一书中指出,单元测试的运行速度应为“每秒数百”。 迈克尔·费瑟斯(Michael Feathers)在他的《 有效处理旧版代码》一书中指出,在以下情况下,单元测试不是单元测试:

  1. 它与数据库对话。
  2. 它通过网络进行通信。
  3. 它涉及文件系统。
  4. 您必须对环境做一些特殊的事情(例如编辑配置文件)才能运行它。

我还引用了罗伊·奥什罗夫(Roy Osherove)的话,他在他的《单元测试的艺术》一书中一个很好的单元测试总结为:“一段自动化的代码,它调用被测试的方法或类,然后检查关于该方法或方法的逻辑行为的一些假设。类。 单元测试几乎总是使用单元测试框架编写的。 它可以轻松编写并快速运行。 它是完全自动化,可信赖,可读性和可维护性的。”

单元测试可以使用来概括FIRST缩写:快速,独立的,可重复的,自我确认和及时的。

何时使用单元测试
单元测试是测试的基础。 如果您使用的是测试驱动开发(TDD),则在编写生产代码之前要编写失败的测试。 如果您不使用TDD,则至少要在生产代码的同时编写测试,即编写方法,然后编写其测试。 这种技术不涉及TDD附带的范式转换,但是它比编写所有代码后编写测试要好得多,通常开发人员认为这很乏味。 每个场景都应该有一个测试,将其翻译成简明的英语意味着您代码的每条路径:每个if语句的两端和switch语句的每种情况。 简而言之,每个项目都应具有数百个单元测试,并且您应该确信,如果更改部分代码,则不会破坏某些内容。

存根
存根用于将被测对象与系统其余部分隔离。 它们是被注入到您的对象中以在测试情况下替换实际对象的对象。 马丁·福勒(Martin Fowler)在他的论文《莫克斯不是存根》中将存根定义为:

“存根提供对测试过程中进行的呼叫的固定答复,通常根本不响应为测试编程的内容之外的任何内容。 存根还可以记录有关呼叫的信息,例如电子邮件网关存根,它可以记住“已发送”的消息,或者仅记住“已发送”的消息数量。”

…从单元测试的艺术中得出的类似定义是:

“存根是系统中现有依赖项(或协作者 )的可控替代。 通过使用存根,您可以测试代码而无需直接使用依赖项。”

cks
模拟是用于模仿或模拟生产对象的行为或角色的替换对象。 这实际上意味着检查被测对象是否按预期方式调用了模拟对象上的方法,如果没有,则测试失败。 因此,您是在断言方法调用的正确性和通过代码的执行路径,而不是在常规单元测试的情况下断言被测试方法的返回值。

整合测试
集成测试与单元测试相反。 集成测试背后的想法是证明您的对象彼此之间以及围绕它们的系统之间进行协作。 套用迈克尔羽毛,集成测试

  1. 与数据库对话。
  2. 通过网络进行通信。
  3. 触摸文件系统。
  4. 要求您对环境做一些特殊的事情(例如编辑配置文件)以运行它。

单元测试领域的Roy Osherove指出,“集成测试意味着将两个或更多或更多依赖软件模块作为一组一起测试”。 对我而言,这毕竟使定义受到了太多限制,在测试单个模块中的对象时,您可以访问数据库或文件系统,同时确定对象是否可以协作。

在我之前从事的项目中,通常会有一个专门编写用于集成测试的模块。 这是因为集成测试的数量少于单元测试(也许以1:10的比率),并且由于它们访问环境的事实通常要慢得多,因此将所有集成测试合并到自己的Maven模块中意味着他们不必在每次构建模块时都运行,从而加快了构建和开发时间。

端到端集成测试
我已经在本系列的第二篇博客中详细介绍了端到端测试,因此,可以概括地说,可以将它们定义为集成测试的一种特例,因为该测试始于系统边界或仅在系统边界之后,并通过系统的所有层。 系统边界在哪里,或者紧接在系统边界后面是一个有争议的问题。 对于Spring MVC应用而言,没有理由不应该从控制器代码开始进行端到端测试,而忽略浏览器和调度程序servlet。 毕竟,我怀疑Spring的家伙已经彻底测试了他们的代码,那么为什么还要浪费时间测试它呢? 另外,测试前端看起来像是一整个鱼缸。

(1)我经常怀疑测试技术实际上并没有在拼贴画和大学中教授,但是我对此没有任何证据。 如果有任何学者可以告诉我,单元测试是受教,受鼓励的,并且是计算机科学学位课程的组成部分,那么我很高兴听到他们的来信。

参考:“ 一些定义–测试技术9”(来自Captain Debug's Blog的 JCG合作伙伴 Roger Hughes)。

相关文章 :


翻译自: https://www.javacodegeeks.com/2011/12/some-definitions-testing-techniques-9.html

9针串口定义测试方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值