笔记: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.
最后更新:2017-11-03 10:03:40
上一篇:
阿里EB级大数据体系,如何做到秒级响应、高效赋能?
下一篇:
Spring AOP从入门到放弃之概念以及Spring Boot AOP demo
传奇数学家拉马努金留下的数学神谕,解开了多年悬而未决的神秘难题
【最近面试遇到的一些问题】运行时异常与一般异常有何异同
Access数据库访问助手类
如何在 Apache 中重定向 URL 到另外一台服务器
J2EE中自定义标签以及TagSupport和BodyTagSupport的用法
山西省医院协会牵手科大讯飞 依托省人民医院推进 “ AI + 医疗”落地
阿里云ECS服务器配置怎么选择?(新手教程)
不如到雄县的街头走一走
android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
《Ansible权威指南》一1.2 Ansible发展史