惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
Engineering at Meta
Engineering at Meta
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
量子位
Jina AI
Jina AI
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
L
LangChain Blog
A
About on SuperTechFans
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
美团技术团队
博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium
D
DataBreaches.Net
P
Proofpoint News Feed
小众软件
小众软件
Vercel News
Vercel News
T
The Blog of Author Tim Ferriss
WordPress大学
WordPress大学
雷峰网
雷峰网
G
Google Developers Blog

博客园 - 横刀天笑

基于TCPCopy的Dubbo服务引流工具-DubboCopy Netty中的坑(下篇) 编写明显没有错误的代码 Zookeeper-Zookeeper client Zookeeper-Zookeeper leader选举 Zookeeper-Zookeeper启动过程 Zookeeper-Zookeeper的配置 Zookeeper-Zookeeper可以干什么 Zookeeper--Zookeeper是什么 Linux虚拟文件系统(VFS) JVM Spec 4 JVM Spec 1-3 为什么女生总是将手机遗落在卫生间 Java基础知识复习 普罗米修斯观后感 【转载】来自Clean Code的一段话,正好形容公司目前一个系统 Bloom Filter算法 memcached源代码阅读笔记(二):网络处理部分 关于自动化测试
UI自动化测试随笔
横刀天笑 · 2012-05-25 · via 博客园 - 横刀天笑

2012-05-25 23:46  横刀天笑  阅读(5425)  评论()    收藏  举报

昨天给开发的同事讲我们正在做的自动化测试,同事问了句:为什么API的测试不需要写代码了,而UI的测试还需要写那么多代码呢? 能不写代码么? 

目前我们的自动化测试的现状:

目前主要覆盖两个部分:API的测试和UI的测试。对于API的测试经过框架的封装,基本上只需要编写一个xml描述的test case就可以了,xml里描述了输入,调用和断言。框架就根据这个xml来测试具体的API,基本上(99%)不需要写代码了。而UI的测试在这方面框架封装的却比较少(力所能及的封装一些通用控件),更多的是制定一些分层的规范。

我当时回答:

因为API的输入和输出比较明确,而且目前的API的测试还仅仅是关注在单个API上,而UI这方面输入输出不明确,变化也较多,而且主要关注业务流程,用户场景。

同事又问:

API也会变化啊,UI也可以做到明确啊。

显然我的回答,同事并不满意。后来我也在思索,为什么UI测试就不能像API测试那样不写任何代码,只用一个类似xml的case文件描述一下即可呢?

下班回家在地铁里突然想到,其实对于UI来讲,UI上的每一个可输入的最小的可复用单元都算是一个“接口”,这个接口等价于API测试中的那个接口(REST, RPC等)。如果我们要给UI中的最小输入单元编写测试基本上是可以做到不写代码的(测试人员可以不写代码,由测试框架提供)。而复杂的UI其实也是这些最小接口组合而成的。通过将这些最小”接口“组合成大一些的”接口“,最后组合成页面级的”接口“,其实也可以做到不写程序代码测试UI。后来自己都笑了,这不就是Keyword Driven么。

联想到昨天吴老师 @吴穹 讲到:DSL不仅仅是针对某个领域的,每个项目也可以有自己的DSL。

那么如果我们能够在项目的前一两个迭代,利用Keyword Driven总结出这个项目的DSL,那么后面的测试的开发就会越来越快了啊。