笔记:Automated Journey Testing with Cascade

感觉是一个很好的介绍Cascade的文章。

Key Takeaways
The problem of testing a system is becoming harder as we have larger teams, as we have more processes and as we adopt microservices architecture.(是的,微服务要背锅)
The testing problem is fundamentally different moving forward. We have less capability for testing specific functional points that we do in the unit test environment.
We are cursed by very costly network calls. And we can't escape this issue, unless you homogenise your tech stack and abstract out the network calls.
We need new tools for dealing with these state machines.The state machine is intrinsically beautiful.
We should take advantage of it.

然后用了很大篇幅分析测试中的问题,最后聚焦在下面两个原因:
Too many developers trying to access the same codebase.(过多的开发人员试图去访问同一代码块。)
The code takes too long to validate, so the semaphore doesn't clear quickly enough.(代码验证需要过长的时间,信号灯不能尽快地清空。)
提出:如果能缓解其中任一子问题,那么该问题就会迎刃而解。

解决方案:
1,将开发人员分为团队
2,优化测试案例的编排(我的理解),引入Cascade框架
Cascade主要面对的问题
What do we call these tests? They no longer focus on a particular requirement, but rather meet multiple requirements in one go.
How do we identify gaps? How do we know what we have missed?
How do we identify what scripts are redundant? If we have a new requirement, how can we know where to insert these new assertions?
Cascade特点:
我们将构成一个过程的每个步骤分别定义为独立的类。进而Cascade框架将可从中管理并生成测试。
在Cascade框架中,广泛地使用了标注。步骤是维护在不同的文件中的,每个步骤文件用@Step标注。数据采用一种IoC形式在步骤间共享,使用了@Supplies和@Demands标注。生命周期方法标注为@Given、@When和@Then方法。
状态机的建模,可以在测试报告中生成图
Cascase可以选择性地运行特定的测试或组测试
Cascade可以使用算法最小化测试集
Cascade可以命名过程测试
Cascade可使用多种方法最小化测试集
Cascade可以关注测试的覆盖情况

总结:
The problem of testing a system is becoming harder as we have larger teams, as we have more processes and as we adopt microservices architecture.
The testing problem is fundamentally different moving forward. We have less capability for testing specific functional points that we do in the unit test environment.
We are cursed by very costly network calls. And we can't escape this issue, unless you homogenise your tech stack and abstract out the network calls.
We need new tools for dealing with these state machines.
The state machine is intrinsically beautiful. We should take advantage of it.

原文地址:https://www.infoq.com/articles/Cascade-Automated-Journey-Testing?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=articles_link&utm_content=link_text

时间: 2024-08-20 22:06:25

笔记:Automated Journey Testing with Cascade的相关文章

论文笔记之:A CNN Cascade for Landmark Guided Semantic Part Segmentation

    A CNN Cascade for Landmark Guided Semantic Part Segmentation  ECCV 2016   摘要:本文提出了一种 CNN cascade (CNN 级联)结构,根据一系列的定位(landmarks or keypoints),得到特定的 pose 信息,进行 语义 part 分割.前人有许多单独的工作,但是,貌似没有将这两个工作结合到一起,相互作用的 multi-task 的工作.本文就弥补这个缺口,提出一种 CNN cascade

Introduction To Stress Testing

This blog covers basics about performance testing and why it is so important to the design and development of a large-scale website system. Bucket Principle Based System Optimization The bucket principle, also known as the short board theory, describ

Seven Microservices Anti-patterns

What it Was, Was Microservices Buzzwords often give context to concepts that evolved and needed a good "tag" to facilitate dialogue. Microservices is a new "tag" that defines areas I have personally been discovering and using for some

在android布局中测试能自动化点击按钮吗?

问题描述 在android布局中测试能自动化点击按钮吗? 我想测试程序的功能,想自动化大多数的用户交互.其中一个是按钮(一个需要用户交互的地方). 是否有可能自动化?是否违背安全呢? 解决方案 给你推荐一个文档,关于简单的Android自动化UI测试.Automated Unit Testing the Android UI 还有button.performClick();

.NET Test Driven Development

development Test Driven DevelopmentBooks Lessons Learned in Software Testing by Cem Kaner, James Bach, and Bret Pettichord.Pragmatic Unit Testing in C# by the Pragmatic Programmers Andy Hunt and Dave Thomas, the preview chapters (one, two) look good.

PostgreSQL 9.6 并行计算 优化器算法浅析

背景 之前写过几篇 PostgreSQL 并行计算的文章,文中并没有仔细描述PostgreSQL是如何决策并行计算,以及并行度的. 开源数据库PostgreSQL攻克并行计算难题https://yq.aliyun.com/articles/44655 PostgreSQL 并行计算 在 xfs, ext4 下的表现https://yq.aliyun.com/articles/53985 PostgreSQL 并不需要用户在SQL中使用HINT来启用并行计算,因为优化器会从成本的角度做出选择,是否

PgSQL · 特性分析 · PostgreSQL 9.6 让多核并行起来

背景 经过多年的酝酿(从支持work process到支持动态fork共享内存,再到内核层面支持并行计算),PostgreSQL 的多核并行计算功能终于在2016年发布的9.6版本中正式上线,为PG的scale up能力再次拔高一个台阶,标志着开源数据库已经攻克了并行计算的难题. 相信有很多小伙伴已经开始测试了. 在32物理核的机器上进行了测试,重计算的场景,性能程线性提升. 目前并行计算支持全表扫描,JOIN,聚合. 一.快速安装PostgreSQL 9.6 为了让大伙能够快速用上9.6,以下

开源数据库PostgreSQL攻克并行计算难题

经过多年的酝酿(从支持work process到支持动态fork共享内存,再到内核层面支持并行计算),PostgreSQL 的并行计算功能终于来了,为PG的scale up能力再次拔高一个台阶,标志着开源数据库已经攻克了并行计算的难题. 相信有很多小伙伴已经开始测试了,我也测试了一个场景是标签系统类应用的比特位运算,昨天测试发现性能相比非并行已经提升了7倍. 调整并行度,在32个核的虚拟机上测试,性能提升了约10多倍.但是实际上并没有到32倍,不考虑内存和IO的瓶颈,是有优化空间.注意不同的并行

PostgreSQL 9.6 引领开源数据库攻克多核并行计算难题

PostgreSQL 9.6 引领开源数据库攻克多核并行计算难题 作者 digoal 日期 2016-10-01 标签 PostgreSQL , 9.6 , 并行计算 , 多核计算 背景 经过多年的酝酿(从支持work process到支持动态fork共享内存,再到内核层面支持并行计算),PostgreSQL 的多核并行计算功能终于在2016年发布的9.6版本中正式上线,为PG的scale up能力再次拔高一个台阶,标志着开源数据库已经攻克了并行计算的难题. 相信有很多小伙伴已经开始测试了. 在