CRS

如果功能复杂的情况下,是不是先写验收测试,然后写单元测试,最后写代码?

STST

是的

从高往低走,无论是分析,还是测试,还是开发

从高往低走,带来的是干净无累赘的,底层依赖高层的优雅的结果

CRS

那模式是否
1.  先写feature
2.  实现自动化验收测试
3.  再写view层的ut(事实上view层的ut咋写?基本没法写啊..)
4.  实现view层(写死)
5.  实现controller的ut
6.  实现controller的代码
7.  重构view和controller,对接起来(这会儿要补针对view和controller的集成测试么?
8.  写model和orm的ut
9.  实现model和orm的代码
10.  重构view,controller,model,完全对接,形成真正可用的功能?

是这么个流程么?
H

可以唠点接地气的不  
CRS

从最顶上往下写?

H

我们经常就是  什么东西开发完了 测一下

CRS

就是玩多了这个..老板要玩玩不一样的..

所以今天结对了两个小时琢磨了一下,没琢磨明白

STST

UI可以先不管,UI设计的时候,注意用一个隔离层,不要直接调用底层的功能

其实就是顶上往下写
先写死view,让测试通过,然后补controller,让controller对接,接着最后补最底下DB的model和orm

自顶向下做,一定会效果好,但是可能很多人无法做到这一点
CRS

但是这里有几个地方没理解啊
如果先写了验收测试
那是否在写view代码之前,还是要先写view的单元测试?

STST

UI的测试先放一放,自动化确实很难

注意把UI层做的尽量薄就行

CRS

BDD的不应该就是先做验收么..,验收基本就是UI的啊

STST

验收测试不是UI吧

CRS

对于web而言基本就是了..

STST

把验收测试理解为UI就有点狭隘了

JXL

我理解就是业务

STST

如果验收测试=UI的话,那么描述登录就是如下面了

"用户名输入框输入 admin,密码输入框输入 123456,点击登录按钮"
这是UI的实现,而不是登录业务的验收

 

登录业务的验收测试应该是:
"调用login方法,参数如下,user=admin,password=123456,期望返回结果True"

DH

这其实不就是之前有群友说的"所有的测试都是功能测试"了么

STST

前面UI只是业务的一种展现方式而已,在UI上面描述验收测试,会导致一点点地变化,测试就失败

Qk

UI应该是验收的一部分吧

STST

UI应该说是单独的一门测试,我尝试了1年多的界面自动化测试,现在放弃了,还是人工点一点靠谱一些

对UI只是一部分

你看客户需求,比如购物车功能,那一定是业务流表达

感觉公司在UI就是为了跑数据

跑大批量数据
JXL

我觉的客户着重点应该是这个业务是否实现

STST

是的,UI只是展现数据的一个方式

没有这个WEB的UI,很容易用一个别的UI来完成,比如命令行,窗体程序都可以
JXL

ui 这么说吧 算是用户体验度了

STST

是的

Qk

验收是为了确定系统是否实现目标

STST

我已经接受了,UI主要是关注用户体验,想自动化真的很难

CRS

cucumber是在描述业务,只不过验收的时候走ui的途径..

JXL

cucumber 没做过 不清楚了

CRS

跑题鸟..
到底BDD开发实践中
ut啥时候插足..

STST

UI可以最先开始,但是不要牵扯逻辑,就是画UI,能表达意思就行
DH

你用BDD做的是UI层的。。跟UT有啥关系啊

STST

用来沟通需求
DH

颗粒度完全不一样

CRS

BDD -> TDD -> refactor

应该是这个过程啊...

今天结对完了有点懵..

STST

BDD我还没去深入理解,我觉得过程应该差不多吧

但是应该是很多并行的,比如TDD就是和refactor密不可分的
CRS

群里有人玩过这种实践的么..,求分享一下

KAI

UI自动化没你们说的那么鸡肋吧,现在很多前端和后端都是分开的。不在UI发起,光测接口不能保证的

STST

UI自动化的问题是成本大,收益小,不是说没用,维护成本太大

KAI

可是不做自动化又怎么"敏捷"呢?核心用例还是需要自动化的

STST


比如这个,业务不变的情况下,把"用户名输入框"替换为下拉框,就会导致失败
DH

其实。。要看底层怎么设计吧。。

STST

针对UI,100个客户有100个看法,但是业务相对要稳定地多

不能看底层怎么设计,一定不要去看底层怎么设计

DH

对咯
其实这个需求完全可以理解成,将XX的内容设置为YY

STST 

而是要看需求怎么描述,底层只能为高层服务,而不是高层根据底层的设计来迁就

DH

至于怎么去设置 底层搞定就可以了

STST

如果先做底层设计,那么底层的设计人员会给你提供一个具有1000多公共方法的列表类,然后高层就去调吧,底层设计人员可能觉得这还不够全面

千万不要从底层入手
DH

肯定都是由需求来设计底层的

STST

是的,高层定义需要的接口,底层去实现这些接口,不要累赘的内容

验收测试与UI的更多相关文章

  1. 基于Calabash-andriod的UI自动化测试(1)-环境和原理

    有时候,一些覆盖happy path的UI自动化还是很有用的.它的一些作用如下: 1.可以迅速实现端到端的功能回归,能够覆盖接口测试覆盖不到的一些地方,如GUI层和接口层的交互产生的问题. 2.非码农 ...

  2. <自动化测试方案_8>第八章、手机端UI自动化测试

    第八章.手机端UI自动化测试 (一)APP测试分类 1,原生APP:Native页面是使用原生系统内核的,相当于直接在系统上操作 2,H5APP:先调用系统的浏览器内核,相当于是在网页中进行操作,较原 ...

  3. 避免重复造轮子的UI自动化测试框架开发

    一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...

  4. jQuery UI resizable使用注意事项、实时等比例拉伸及你不知道的技巧

    这篇文章总结的是我在使用resizable插件的过程中,遇到的问题及变通应用的奇思妙想. 一.resizable使用注意事项 以下是我在jsfiddle上写的测试demo:http://jsfiddl ...

  5. “四核”驱动的“三维”导航 -- 淘宝新UI(需求分析篇)

    前言 孔子说:"软件是对客观世界的抽象". 首先声明,这里的"三维导航"和地图没一毛钱关系,"四核驱动"和硬件也没关系,而是为了复杂的应用而 ...

  6. ABP框架 - Swagger UI 集成

    文档目录 本节内容: 简介 Asp.net Core 安装 安装Nuget包 配置 测试 Asp.net 5.x 安装 安装Nuget包 配置 测试 简介 来自它的网页:“...使用一个Swagger ...

  7. 06.LoT.UI 前后台通用框架分解系列之——浮夸的图片上传

    LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/du ...

  8. 07.LoT.UI 前后台通用框架分解系列之——强大的文本编辑器

    LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/du ...

  9. 01.LoT.UI 前后台通用框架分解系列之——小图片背景全屏显示(可自动切换背景)

    LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/du ...

随机推荐

  1. 图论:Prufer编码-Cayley定理

    BZOJ1430:运用Cayley定理解决树的形态统计问题 由Prufer编码可以引申出来一个定理:Cayley 内容是不同的n结点标号的树的数量为n^(n-2) 换一种说法就是一棵无根树,当知道结点 ...

  2. [Luogu 4092] HEOI/TJOI2016 树

    [Luogu 4092] HEOI/TJOI2016 树 搜了树剖标签不知道怎么就跳出了个暴搜题啊! 管他既然做了就发上来吧- 有修改标签就向下搜并修改,遇到标签即停止. 这题是真的真的短. #inc ...

  3. 地精排序Gnome Sort

    号称最简单的排序算法,只有一层循环,默认情况下前进冒泡,一旦遇到冒泡的情况发生就往回冒,直到把这个数字放好为止 直接看它排序的过程,待排数组[6 2 4 1 5 9] 先设计一个标识i=0然后从头开始 ...

  4. 【HDU】6148 Valley Numer 数位DP

    [算法]数位DP [题意]定义V-number为从左到看单位数字未出现先递增后递减现象的数字,求0~N中满足条件的数字个数.T<=200,lenth(n)<=100 [题解]百度之星201 ...

  5. Elements in iteration expect to have 'v-bind:key' directives.

    code->首选项->设置->在搜索框中输入:vetur.validation.template->你懂的

  6. js_实现给未来元素添加事件。

    未来元素:不是一个页面上的元素,是通过js或者通过后台直接渲染在页面上的元素,也就是说这些元素不是直接写在document中的. 1.对于未来元素,我们想直接用js或者jq操作它们是不起作用的. $( ...

  7. 《Applying Deep Learning to Answer Selection: A Study And an Open Task》文章理解小结

    本篇论文是2015年的IBM watson团队的. 论文地址: 这是一篇关于QA问题的一篇论文: 相关论文讲解1.https://www.jianshu.com/p/48024e9f7bb22.htt ...

  8. peepscan前期准备工作

    具有的功能 1.whoami 2.sub doamin https://dns.aizhan.com/huayi-faucet.com/ 3.dir scan 4.web server 5.port ...

  9. Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc的区别【转】

    转自:http://www.th7.cn/system/lin/201606/167750.shtml 我们都知道在用户空间动态申请内存用的函数是 malloc(),这个函数在各种操作系统上的使用是一 ...

  10. "Flags mismatch irq" register interrupt handler error

    Question : When you see the log "Flags mismatch irq ............", maybe you use the same ...