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)。

相关文章 :

  • 测试技巧–不编写测试
  • 端到端测试的滥用–测试技术2
  • 您应该对什么进行单元测试? –测试技术3
  • 常规单元测试和存根–测​​试技术4
  • 使用模拟的单元测试–测试技术5
  • 为旧版代码创建存根-测试技术6
  • 有关为旧版代码创建存根的更多信息–测试技术7
  • 为什么要编写单元测试-测试技巧8

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

9针串口定义测试方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358925.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu下c 访问mysql_Ubuntu下用C语言访问MySQL数据库

在Ubuntu下费了好长时间终于让C操作MySQL成功了,在此把方法记下来,留着以后用。先安装MySQL 代码: sudo apt-get install mysql在Ubuntu下费了好长时间终于让C操作MySQL成功了,在此把方法记下来,留着以后用。先安装MySQL代码:sudo…

HTML5新增的主体结构元素

article元素section元素nav元素aside元素time元素与微格式pubdate属性 1.article元素 代码片段: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>HTML学习计划</title> </head> …

在Eclipse中使用JUnit4进行单元测试(图文教程一)

在Eclipse中使用JUnit4进行单元测试 单元测试&#xff0c;JUnit4。 这两个有什么关系呢&#xff1f;这就好比&#xff08;草&#xff09;单元测试和&#xff08;割草机&#xff09;。用这个JUnit4工具去辅助我们进行测试。其实不理解这个也没关系&#xff0c;听多了见多了用多了…

Java 9和Project Jigsaw如何破坏您的代码

Java 9迫在眉睫&#xff0c;它将带有完整的Project Jigsaw 。 在我从OpenJFX邮件列表的最近讨论中得知它可能会破坏现有代码之前&#xff0c;我并没有对此给予太多关注。 这对于Java非常不寻常&#xff0c;因此引起了我的兴趣。 我阅读了该项目的JEP和一些相关文章&#xff0c…

php一句话后门学习(含免杀)

php一句话后门 开发很久的可利用函数 eval和assert php任意代码执行的一句话后门&#xff0c;我们喜欢用的是传统的eval&#xff0c;php5&#xff0c;7通用。 <?php eval($_POST[a]) ?>但由于eval不能拆分&#xff0c;早期也有人喜欢用assert&#xff0c;这样通过编…

mysql 表结构 增删改查_mysql学习【第3篇】:数据库之增删改查操作

注意的几点&#xff1a;1.如果你在cmd中书命令的时候&#xff0c;输入错了就用\c跳出2.\s查看配置信息一、操作文件夹(库)增&#xff1a;create database db1 charset utf8;删&#xff1a;drop database db1;改&#xff1a;alter database db1 charset gbk;查&#xff1a;show …

HTML5的非主体结构元素(header、footer、hgroup、assress)

header元素footer元素hgroup元素address元素网页编排规则 1.header元素 代码演示: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>header元素</title> </head> <body> &l…

Oracle 基础 —SQL语句优化的途径

一&#xff1a;SQL语句的优化途径 1.选择合适的Oracle优化器 (1).RBO 基于规则进行优化的优化器 --Oracle 10G 后被抛掉 (2).CBO基于成本(CPU 和 内存的占用率)优化的优化器 --优化器使用的模式根据目标而定 CBO 的优化模式&#xff1a; Rule:基于规则 Choose:默认&#xff…

DVWA通关教程(上)

简介&#xff1a; DVWA是一款基于PHP和mysql开发的web靶场练习平台&#xff0c;集成了常见的web漏洞如sql注入,xss&#xff0c;密码破解等常见漏洞。本教程将以DVWA为例&#xff0c;演示常见的web漏洞的利用和攻击。 登录创建数据库&#xff08;账号为admin&#xff0c;密码为…

HTML5表单新增元素与属性(form、formaction、formmethod、formenctype、formtarget、autofous、required、labels)

表单内元素的form属性表单内元素的formaction属性​​​​​​​表单内元素的formmethod属性​​​​​​​表单内元素的formenctype属性​​​​​​​表单内元素的formtarget属性​​​​​​​表单内元素的autofous属性​​​​​​​表单内元素的required属性​​​​​​​…

python getostime_Python os.getrandom()用法及代码示例

Python中的OS模块提供了与操作系统进行交互的功能。操作系统属于Python的标准实用程序模块。该模块提供了使用依赖于操作系统的功能的便携式方法。os.getrandom()方法用于生成适合加密使用的大小随机字节的字符串&#xff0c;或者可以说此方法生成包含随机字符的字符串。它也可…

2048

最近用WPF写了款2048的小游戏&#xff0c;最早接触这款游戏是在手游上&#xff0c;觉得蛮好的&#xff0c;于是就用WPF实现了下&#xff0c;界面运行流畅&#xff0c;操作便捷&#xff0c;虽说程序在可玩度上还稍有欠缺&#xff0c;不过这也是WPF在游戏开发中的一个新篇章 程序…

表单新增元素与属性(control、placehoulder、list、AutoComplete、pattern、SelectionDirection、indeterminate属性)

标签的control属性文本框的placehoulder属性文本框的list属性文本框的AutoComplete属性文本框的pattern属性文本框的SelectionDirection属性复选框的indeterminate属性image提交按钮的height属性与width属性1.标签的control属性 代码演示: <!DOCTYPE html> <html la…

jboss7.0.2_JBoss AS 7.0.2“ Arc”发布–使用绑定选项

jboss7.0.2有关JBoss AS7方面的更多好消息。 JBoss AS 7.0.2.Final“ Arc”已经发布&#xff01; 自AS 7.0.1发布以来已经过去了一个月。 在这短时间内&#xff0c;修复了许多错误&#xff0c;并实现了更多功能和改进。 所有这些错误修复和功能已包含在此7.0.2版本中。 此新版…

DVWA通关教程(中)

不安全的验证码&#xff08;Insecure CAPTCHA&#xff09; Insecure CAPTCHA(不安全的验证码)主要是绕过验证码的安全验证&#xff0c;一般都有逻辑漏洞。 难度&#xff08;low&#xff09; 审计代码 <?phpif( isset( $_POST[ Change ] ) && ( $_POST[ step ] 1 …

UVa 208 Firetruck【回溯】

题意&#xff1a;给出一个n个节点的无向图&#xff0c;以及某个节点k&#xff0c;按照字典序从小到大输出从节点1到节点k的所有路径 看的题解 http://blog.csdn.net/hcbbt/article/details/9755147 因为节点数很少&#xff08;小于20&#xff09;&#xff0c;所以可以先用floyd…

html中使用静态图片做一个csdn网站的首页

简单使用csdn网站的截图做一个网站的DEMO, 简单把CSDN网站分为四个图片(自己截图),分别为上,左,中,右,使用IDEA创建一个静态Web项目。 代码演示:(不添加样式,简单演示效果) <!DOCTYPE html> <html lang="en"> <head><meta chars…

使用docker-compose的Spring会话演示

我之前已经写过一个令人振奋的新项目&#xff0c;称为Spring-session &#xff0c;它为基于Java的Web应用程序提供了一种外部化用户会话的干净方法。 我设法使用docker-compose为spring-session进行了良好的演示设置&#xff0c;这展示了该项目的优势&#xff0c;我想在这里写…

kail利用msf工具对ms11-003漏洞入侵渗透Win7

前言&#xff1a; windows7IE溢出攻击 实验环境&#xff1a; 工具&#xff1a;metasploit 靶机两台&#xff1a;windows 7和kali2020 攻击机IP地址&#xff1a;10.20.29.129 被攻击机IP地址&#xff1a;10.20.29.134 步骤&#xff1a; 1、在kali里面打开metasploit漏洞…

5月5日 百度搜索技巧

1.“”——精确匹配 如果输入的查询词很长&#xff0c;百度在经过分析后&#xff0c;给出的搜索结果中的查询词&#xff0c;可能是拆分的。如果您对这种情况不满意&#xff0c;可以尝试让百度不拆分查询词。给查询词加上双引号&#xff0c;就可以达到这种效果。如&#xff1a;“…