Martin Fowler的 测试金字塔 已经过时,在前端使用“ Testing Trophy (测试奖杯)”;在后端使用Spotify工程模型中的“ 测试蜂窝testing honeycomb ”。

您听到的有关软件测试的几乎所有建议都是不好的:它要么表面不好,要么导致糟糕的结果,要么因为专注于错误的事物(通常是工具)而分心。

人们喜欢辩论写测试中某种类型的的百分比,但这很分散注意力。几乎有没有团队能编写具有表现力的测试:这些测试能确定明确的界限,快速可靠地运行,并且仅出于有用的原因而失败。

金字塔测试

大多数人都熟悉著名的测试金字塔。

长期以来,这是组织测试的非常有效的方法。在微服务世界中,这可能是有害的。微服务中最大的复杂性不在于服务本身,而在于其与其他人的交互方式,这一点值得特别注意。

微服务中的单元测试unit test数量太多,这会限制微服务的“无需更改测试即可更改代码”的方式。由于必须更改测试,这对迭代的速度产生了负面影响。

后端的测试蜂窝testing honeycomb


在微服务体系结构中,对于每个微服务而言,拥有数量太多的单元测试并不是最佳选择。每个微服务都具有单个业务功能,而不是整个业务。这可能只是业务范围的一小部分,因此不值得为微服务编写太多的单元测试用例。构造我们的微服务测试的更好方法是通过测试蜂窝,如下图所示:

如上图所示,集成部分比其他部分更大,这意味着我们的主要重点将放在集成测试。

前端的测试奖杯Testing Trophy

Testing Trophy(测试奖杯)是一种从上到下的专业方法,用于测试Web应用程序。这是关于编写足够的测试-正确的测试。这不是要达到100%的覆盖率。

由Kent C. Dodds推出的测试奖杯在前端测试中越来越受欢迎。奖杯的顺序是:

-端到端测试
-集成测试
-单元测试
-静态测试


通过使用这种行之有效的测试方法,您将分层使用以下技术:

  1. 静态测试:使用静态类型系统和linter捕获诸如拼写错误和语法之类的基本错误。

工具 :

代码格式化程序,例如Prettier;
像ESLint;
类型检查器,例如TypeScript和Flow。
2.单元测试:编写针对应用程序的关键行为和功能的有效单元测试。单元测试可验证棘手的算法是否正常工作。

工具:Jest.

单元测试是测试单个代码单元,例如函数或React组件。您不需要浏览器或数据库即可运行单元测试,因此它们非常快速。

3.集成测试:集成测试使您确信应用程序的所有功能都能按预期运行。开发集成测试,以全面审核您的应用程序,并确保所有内容和谐地正常工作。

工具:Jest and Enzyme 或 react-testing-library.

集成测试可验证大型功能甚至整个页面,而无需任何后端,数据库或浏览器。

4.端到端测试:端到端测试可确保您的应用程序整体上正常工作:前端和后端以及数据库和其他所有内容。对关键路径进行自动点击测试,而不是依赖用户为您完成此操作。

工具:Cypress.

端到端测试主要对应于金字塔中的UI测试。

这四层自动化测试为您提供信心,快速,省钱地交付专业的JavaScript应用程序。

最后|资源

我的学习群:644956177 群里有技术大牛一起交流分享~

上面这些是我的收集和整理,这些资料,对于【软件测试】的朋友来说应该是最全面的仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你

关注【程序媛木子】微信公众号里海量资源免费获取~
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

金字塔测试早已过时!相关推荐

  1. 推销员地毯式轰炸的模式早已过时

    推销员地毯式轰炸的推销模式是非常传统的,是温州乡镇企业十年.二十年前的做法,早已过时,只不过你有了技巧上的改善.所以,你应该在营销模式上进行深入思考和创新          选手简介     张维勇, ...

  2. 测试自动化金字塔在软件开发中是如何使用的?

    测试自动化金字塔,是一个指南,指导您进行什么类型的测试以及每种测试的数量.测试自动化金字塔有助于创建更高效的测试,并导致向客户发布更可靠的软件. 测试自动化金字塔的好处 测试自动化的大部分好处显而易见 ...

  3. 敏捷实践 | 浅谈测试金字塔

    Why 为什么要学习测试金字塔 之前做测试培训的时候经常会被问到几个问题--我们项目没有自动化测试,老板想让我做,我搞了几个星期 selenium 怎么不行呢?我应该先做 API 测试还是 UI 测试 ...

  4. Day918.测试金字塔 -SpringBoot与K8s云原生微服务实践

    测试金字塔 Hi,我是阿昌,今天学习记录的是关于测试金字塔的内容. 软件质量是衡量一个软件是否成功的重要标准,在软件的生命周期中,如果没有良好的质量管控,很容易造成产品质量不满足客户预期,最终导致项目 ...

  5. 组织机构代码输入测试用例_测试代码以用于过大的输入

    组织机构代码输入测试用例 在编写单元测试时,我们主要关注业务的正确性. 我们将竭尽所能,开开心心地走在最前沿. 我们有时会进行微基准测试并衡量吞吐量. 但是经常遗漏的一个方面是当输入过大时我们的代码如 ...

  6. ArcGIS中栅格数据的金字塔详解

    1 栅格金字塔定义 金字塔可用于改善性能.它们是原始栅格数据集的缩减采样版本,可包含多个缩减采样图层.金字塔的各个连续图层均以 2:1 的比例进行缩减采样.以下是为栅格数据集创建的两级金字塔示例: 图 ...

  7. 测试驱动开发 测试前移_测试驱动开发简介

    测试驱动开发 测试前移 I've been programming for five years and, honestly, I have avoided test-driven developme ...

  8. 测试软件ipc,IPC整机测试工具

    IPC整机测试工具是一款由天视通推出的IPC测试软件,可以帮助用户对电脑中的网络摄像机模组进行测试,软件适用于TH66E等整机设备,可用于测试设备和配件是否已经正确连接,确保连接没有问题. 使用说明 ...

  9. 自动测试容易失败?这5个原因你值得反思!

    之前在某测试论坛中,吐槽自己公司自动化测试项目失败,大概过程是自己所在部门的自动化测试经历了几次步进式的建设,都具有阶段性的成果,但是总的看来却不是一个成功的案例. 因为赶进度,仓促的投入让一大堆的脚 ...

最新文章

  1. Python:Resquest模块
  2. AppleWatch开发-AlertController
  3. asp子窗口读取父窗口数据_算法与数据结构基础 - 数组(Array)
  4. Java编程比C编程好吗?《精通Unix下C语言与项目实践》读书笔记(15)
  5. .NET Core中间件的注册和管道的构建(1)---- 注册和构建原理
  6. python3 爬虫第三步 本文包你学会正则 不会就来锤我
  7. beetl 时间输出格式化
  8. kibana 查询_干货 | Elasticsearch、Kibana数据导出实战
  9. hbase shell查询表中某字段不为空的数据量_HBase工作原理
  10. 高等数学-不定积分基本公式
  11. 托福考试前你需要知道哪些事情
  12. IBM推出新功能 加速AI应用
  13. h5页面唤起打电话、发短信功能
  14. (ECPC 16) (6/11)
  15. Supervised Contrastive Learning 论文学习
  16. 一张图片告诉你win10各版本之间的主要区别
  17. 如何安全登陆邮箱?这些邮箱登陆入口你知道吗?
  18. vue中iframe嵌套页面父子组件互相通信
  19. 微信中怎么打开apk下载链接 微信跳转打开外部浏览器打开apk文件
  20. 《游梦人·诗的诞生》

热门文章

  1. 爬虫养成记 - urllib2的调试和错误处理
  2. Hyper-V实战:高可用性-配置Hyper-V群集
  3. ​asp家教交流平台系统设计网站作品
  4. xterm远程连服务器连不上_VS Code Remote 发布!开启远程开发新时代
  5. python 两个变量同时循环_python基础篇(子非鱼)
  6. risc 服务器 操作系统,数据中心系统用RISC还是CISC?
  7. java大津法确定阈值,大津法得到自适应阈值
  8. 64位系统下一个32位的程序究竟可以申请到多少内存?
  9. LeetCode31.下一个排列 JavaScript
  10. 记录下返回list给前端 遇到 $ref:$.data.*** 问题