基于模型的思考方式构造测试数据
基于模型的思考方式构造测试数据
系统测试过程中,我们经常会遇到这样的被测试系统。系统的流程很长,比如Web类型的系统,从申请借款至还款节点,中间有:借款人申请借款、信审、发标、投资人投标、银行放款、借款人还款,等等节点,涉及很长的工作流。
那么在面对这么多节点系统时,有时候需要跳过前面几个节点,只验证后面的某个节点(因为只有该节点改动了吗,其他节点没改动过需求)。
这个时候怎么办?一步,一步从头至尾的页面填数据,打开我们的自动化selenium工具录制?还是一步就把数据推进到这次需求改动的节点呢,比如:借款人还款节点,界面打开就有数据了。当然,是一步推到想测试的节点最好,省去了前面节点的模拟录入,手工录入的环节。
我们都知道实际在软件的研发过程中,每个节点是不同的页面,每个节点页面的数据需要补充完整之后,且成功保存之后才能进行到下个节点的展示界面,进行录入和校验页面数据。
那么问题来了…
如果当前某个节点页面存在缺陷,js啊、数据各种校验不通过啊,等等。直接推进到任意节点,则是非常高效而且特别方便的做法。
做研发和测试筒子,都知道数据落盘(存储)一般都是在数据库里面的,传统的造数据方式给对应节点页面涉及的表插数据,找DBA或者脚本能力不错的同事写一组数据进去,这个方法是可行的,但是对于系统内部数据库设计完全没有理解,数据和数据之家的关系是什么样的,也没有理解。
基于模型的思考方式构造测试数据
如果采用领域模型的方式,先去整理完整的业务过程(借款人申请借款、信审、发标、投资人投标、银行放款、借款人还款)都涉及了什么业务对象,这些对象又归属哪些域。
再去整理每个节点会引起哪些对象的变化,分别给这些对象造数据达到推进到指定节点的目的。
参考下图:
注:4132/4133 等编号,则是调用后台触发执行具体数据库脚本的脚本编号。
- objective-C中的接口与泛型
- 段永朝:天性,互联网的灵性回归
- objective-C中的Class(类类型),Selector(选择器SEL),函数指针(IMP)
- 数据中心进水了怎么办?数据中心如何防洪?
- 戴若犁:虚拟中的现实
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(1)
- objective-C中如何判断一个类中有没有定义某个方法
- Steve Boswell:智能口罩让PM2.5滚蛋
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)
- objective-C中的扩展方法与partial class
- 仿优酷Android客户端图片左右滑动(自动滑动)
- objective-C: NSString应该用initWithFormat? 还是 stringWithFormat?
- objective-C 的内存管理之-实例分析
- Tim Berners-Lee:网络的自由和开放
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Java单元测试——Mock技术配置
- 简单的场景分析LinearLayout 源码
- 避免栽坑之掌握Jenkins工作原理
- 如何检测JavaScript中的死循环?
- vue插槽2.6.0+
- 聊聊claudb的transaction command
- Lombok 的作者,成功讨伐 IntelliJ IDEA!
- springboot2之优雅处理返回值
- 通过NVM管理Node.js多版本
- 探究 Android 签名机制和原理
- “有迹可循”的灰盒测试分析
- 想用 Gitee 做图床工具,失败了~~
- Nginx系列:配置跳转的常用方式
- Python骚操作:一行代码实现探索性数据分析
- 吊打 Tomcat ,Undertow 性能很炸!!