金字塔测试早已过时!
Martin Fowler的 测试金字塔 已经过时,在前端使用“ Testing Trophy (测试奖杯)”;在后端使用Spotify工程模型中的“ 测试蜂窝testing honeycomb ”。
您听到的有关软件测试的几乎所有建议都是不好的:它要么表面不好,要么导致糟糕的结果,要么因为专注于错误的事物(通常是工具)而分心。
人们喜欢辩论写测试中某种类型的的百分比,但这很分散注意力。几乎有没有团队能编写具有表现力的测试:这些测试能确定明确的界限,快速可靠地运行,并且仅出于有用的原因而失败。
金字塔测试
大多数人都熟悉著名的测试金字塔。
长期以来,这是组织测试的非常有效的方法。在微服务世界中,这可能是有害的。微服务中最大的复杂性不在于服务本身,而在于其与其他人的交互方式,这一点值得特别注意。
微服务中的单元测试unit test数量太多,这会限制微服务的“无需更改测试即可更改代码”的方式。由于必须更改测试,这对迭代的速度产生了负面影响。
后端的测试蜂窝testing honeycomb
在微服务体系结构中,对于每个微服务而言,拥有数量太多的单元测试并不是最佳选择。每个微服务都具有单个业务功能,而不是整个业务。这可能只是业务范围的一小部分,因此不值得为微服务编写太多的单元测试用例。构造我们的微服务测试的更好方法是通过测试蜂窝,如下图所示:
如上图所示,集成部分比其他部分更大,这意味着我们的主要重点将放在集成测试。
前端的测试奖杯Testing Trophy
Testing Trophy(测试奖杯)是一种从上到下的专业方法,用于测试Web应用程序。这是关于编写足够的测试-正确的测试。这不是要达到100%的覆盖率。
由Kent C. Dodds推出的测试奖杯在前端测试中越来越受欢迎。奖杯的顺序是:
-端到端测试
-集成测试
-单元测试
-静态测试
通过使用这种行之有效的测试方法,您将分层使用以下技术:
- 静态测试:使用静态类型系统和linter捕获诸如拼写错误和语法之类的基本错误。
工具 :
代码格式化程序,例如Prettier;
像ESLint;
类型检查器,例如TypeScript和Flow。
2.单元测试:编写针对应用程序的关键行为和功能的有效单元测试。单元测试可验证棘手的算法是否正常工作。
工具:Jest.
单元测试是测试单个代码单元,例如函数或React组件。您不需要浏览器或数据库即可运行单元测试,因此它们非常快速。
3.集成测试:集成测试使您确信应用程序的所有功能都能按预期运行。开发集成测试,以全面审核您的应用程序,并确保所有内容和谐地正常工作。
工具:Jest and Enzyme 或 react-testing-library.
集成测试可验证大型功能甚至整个页面,而无需任何后端,数据库或浏览器。
4.端到端测试:端到端测试可确保您的应用程序整体上正常工作:前端和后端以及数据库和其他所有内容。对关键路径进行自动点击测试,而不是依赖用户为您完成此操作。
工具:Cypress.
端到端测试主要对应于金字塔中的UI测试。
这四层自动化测试为您提供信心,快速,省钱地交付专业的JavaScript应用程序。
最后|资源
我的学习群:644956177 群里有技术大牛一起交流分享~
上面这些是我的收集和整理,这些资料,对于【软件测试】的朋友来说应该是最全面的仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你
关注【程序媛木子】微信公众号里海量资源免费获取~
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
金字塔测试早已过时!相关推荐
- 推销员地毯式轰炸的模式早已过时
推销员地毯式轰炸的推销模式是非常传统的,是温州乡镇企业十年.二十年前的做法,早已过时,只不过你有了技巧上的改善.所以,你应该在营销模式上进行深入思考和创新 选手简介 张维勇, ...
- 测试自动化金字塔在软件开发中是如何使用的?
测试自动化金字塔,是一个指南,指导您进行什么类型的测试以及每种测试的数量.测试自动化金字塔有助于创建更高效的测试,并导致向客户发布更可靠的软件. 测试自动化金字塔的好处 测试自动化的大部分好处显而易见 ...
- 敏捷实践 | 浅谈测试金字塔
Why 为什么要学习测试金字塔 之前做测试培训的时候经常会被问到几个问题--我们项目没有自动化测试,老板想让我做,我搞了几个星期 selenium 怎么不行呢?我应该先做 API 测试还是 UI 测试 ...
- Day918.测试金字塔 -SpringBoot与K8s云原生微服务实践
测试金字塔 Hi,我是阿昌,今天学习记录的是关于测试金字塔的内容. 软件质量是衡量一个软件是否成功的重要标准,在软件的生命周期中,如果没有良好的质量管控,很容易造成产品质量不满足客户预期,最终导致项目 ...
- 组织机构代码输入测试用例_测试代码以用于过大的输入
组织机构代码输入测试用例 在编写单元测试时,我们主要关注业务的正确性. 我们将竭尽所能,开开心心地走在最前沿. 我们有时会进行微基准测试并衡量吞吐量. 但是经常遗漏的一个方面是当输入过大时我们的代码如 ...
- ArcGIS中栅格数据的金字塔详解
1 栅格金字塔定义 金字塔可用于改善性能.它们是原始栅格数据集的缩减采样版本,可包含多个缩减采样图层.金字塔的各个连续图层均以 2:1 的比例进行缩减采样.以下是为栅格数据集创建的两级金字塔示例: 图 ...
- 测试驱动开发 测试前移_测试驱动开发简介
测试驱动开发 测试前移 I've been programming for five years and, honestly, I have avoided test-driven developme ...
- 测试软件ipc,IPC整机测试工具
IPC整机测试工具是一款由天视通推出的IPC测试软件,可以帮助用户对电脑中的网络摄像机模组进行测试,软件适用于TH66E等整机设备,可用于测试设备和配件是否已经正确连接,确保连接没有问题. 使用说明 ...
- 自动测试容易失败?这5个原因你值得反思!
之前在某测试论坛中,吐槽自己公司自动化测试项目失败,大概过程是自己所在部门的自动化测试经历了几次步进式的建设,都具有阶段性的成果,但是总的看来却不是一个成功的案例. 因为赶进度,仓促的投入让一大堆的脚 ...
最新文章
- Python:Resquest模块
- AppleWatch开发-AlertController
- asp子窗口读取父窗口数据_算法与数据结构基础 - 数组(Array)
- Java编程比C编程好吗?《精通Unix下C语言与项目实践》读书笔记(15)
- .NET Core中间件的注册和管道的构建(1)---- 注册和构建原理
- python3 爬虫第三步 本文包你学会正则 不会就来锤我
- beetl 时间输出格式化
- kibana 查询_干货 | Elasticsearch、Kibana数据导出实战
- hbase shell查询表中某字段不为空的数据量_HBase工作原理
- 高等数学-不定积分基本公式
- 托福考试前你需要知道哪些事情
- IBM推出新功能 加速AI应用
- h5页面唤起打电话、发短信功能
- (ECPC 16) (6/11)
- Supervised Contrastive Learning 论文学习
- 一张图片告诉你win10各版本之间的主要区别
- 如何安全登陆邮箱?这些邮箱登陆入口你知道吗?
- vue中iframe嵌套页面父子组件互相通信
- 微信中怎么打开apk下载链接 微信跳转打开外部浏览器打开apk文件
- 《游梦人·诗的诞生》
热门文章
- 爬虫养成记 - urllib2的调试和错误处理
- Hyper-V实战:高可用性-配置Hyper-V群集
- ​asp家教交流平台系统设计网站作品
- xterm远程连服务器连不上_VS Code Remote 发布!开启远程开发新时代
- python 两个变量同时循环_python基础篇(子非鱼)
- risc 服务器 操作系统,数据中心系统用RISC还是CISC?
- java大津法确定阈值,大津法得到自适应阈值
- 64位系统下一个32位的程序究竟可以申请到多少内存?
- LeetCode31.下一个排列 JavaScript
- 记录下返回list给前端 遇到 $ref:$.data.*** 问题