搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
weixin_40725706
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
pyqt5背景色设置使用css或者是调色板
2
五一 Llama 3 超级课堂 | 第一节 本地Web Demo部署 实践笔记
3
HBase优化之Apache Phoenix二级索引_skip-scan-join table 0
4
【idea插件神器】教你如何使用IDEA一键set实体类中所有属性_idea设置set所有bean属性
5
群晖HomeAssistant安装HACS插件商店结合内网穿透实现公网访问本地智能家居_群晖hacs安装包
6
学习通刷课_学习通自动刷视频插件
7
RP2040-HAT-MODBUS-C_arduino rp2040 modbus
8
腾讯计算机编程本科年薪,腾讯程序员年薪80万,却感慨:天花板太低,想放弃工作去读研!...
9
【云原生】kubernetes中pod的生命周期、探测钩子的实战应用案例解析
10
7 Series FPGAs Integrated Block for PCI Express IP核 Advanced模式配置详解(三)_advanced设置
当前位置:
article
> 正文
后台数据逻辑的测试分析方法
作者:weixin_40725706 | 2024-05-28 07:38:22
赞
踩
获取页面数据的后台计算逻辑
一. 关于后台数据逻辑的
测试
分析
(一)基于业务场景的分析
1. 背景分析
用户角色:数据的使用者,属于什么岗位,什么角色,关注点是什么。
应用场景:数据在哪些前端业务系统中使用,业务关系是怎样的。
使用目的:使用这些数据的目的是什么,能够为业务带来怎样的效益。
2. 业务场景分解
统计维度:针对每个维度的粒度,层次和成员等。
统计口径:针对哪个时间段的数据进行统计
统计指标:每个指标的定义及情景细分
计算逻辑:维度和指标的计算逻辑
更新频率:数据更新的频率。
3. 关于历史数据的考量
比如新增字段,历史数据是否需要补数。
(二)基于程序设计的分析
1. 存储过程
所在包名
调用方式:通常是定时程序,数据库job或
java
quartz
功能说明:初始化逻辑和增量更新逻辑。
改动方式:新增或修改
入参出参
目标表
2. 数据表
结果表:表结构是否满足业务统计要求
中间表:a.用途;b.更新或删除的机制
源表:a.源数据是否能满足需求;b.源数据的分布;c.源表之间的关联关系
3. Java逻辑
接口类型:通常是查询接口
接口名称
改动方式:新增或修改
入参返回
实现逻辑
4. 存储过程和java接口的调用时机
存储过程的调用顺序和执行时间。
Java接口的调用时机和触发条件。
5. 初始化数据,增量更新数据,实时处理数据
初始化数据:对当前所有数据的处理结果。
增量更新数据:对每日变化数据的处理结果。
实时处理数据:业务系统产生业务数据的同时进行数据处理的结果。
注意:除了测试初始化数据以外,还需要模拟增量更新数据的处理和需要实时处理的数据。
(三)基于结果表的或基于检查点的分析
1. 列数据(字段):
检查点:
每个字段的取值赋值是否正确;
哪些场景下需要更新字段值,程序是否都有考虑;
增量跑的时候,是否会错误的更新不该更新的数据;
对列值进行分类,观察是否有特殊数据,给予特别关注。
2. 行数据(记录):
检查点:分类统计记录数,分析合理性。
(四)基于边界条件和边界数据的分析
这里只关注系统测试层面的边界条件和边界数据,对于代码层面的边界值测试建议在单元测试阶段完成,成本更低。
1. 边界条件
需要测试上边界和下边界,以及超越上下边界的情况。
在包含边界条件的程序中可能开始一直是大于号判断,到了下边界可能会忘了改成小于号判断。
2. 边界数据
对于值的范围,值的个数,有序集合,需要选取正好等于,刚刚大于,刚刚小于,或者有序集合的第一个和最后一个。
二. 关于后台数据逻辑的测试方法
(一)常规测试方法
1. 编写测试数据准备脚本(按维度)
查询出基于测试分析得到的各种测试数据类型
2. 编写测试数据验证脚本(按指标)
按指标计算逻辑直接查询得到或间接得到一个预期的结果值。
3. 查结果表
根据测试数据ID查结果表,得到一个实际的结果值。
4. 比较预期结果值和实际结果值
(二)基于存储过程的测试方法
是基于常规测试方法的分析基础上,将SQL打包成procedure,能够更快速的执行,并将测试结果记录到测试表中。
1. 拆分,从复杂到简单:
将复杂的逻辑拆分成若干个简单片段,保证每个片段的数值或属性值容易得到。
2. 建测试表:
在测试环境中,构建一张测试数据表,除ID外,为每个片段设置一个或几个表字段,用于存储每个片段得到的中间值。
3. 编写测试存储过程:
按照Step 1拆分的片段逻辑,直接使用数据库存储过程实现整个过程的统计分析,即写一个测试用的存储过程。
4. 执行测试存储过程和程序代码:
测试执行时,先执行被测功能代码逻辑,再基于同一个数据源执行存储过程的测试用例,最后对比测试表最终计算结果和被测功能代码逻辑的计算结果。
5.分析比较结果并定位问题:
如果结果不一致,可根据测试数据表存储的中间值,方便的进行手工核对,定位出错点是测试用例还是代码逻辑。
若用例出错,及时修正测试用例;若测试用例没有出错,则可以根据计算过程的中间值,结合debug工具,定位代码逻辑的bug点
好处:方便进行批量测试。
(三)基于探索式的随机测试方法
1. 基于结果表,从各种维度去查询数据,观察是否有可疑的数据
2. 基于结果表,用明显不合理的条件从反向去验证是否有异常数据存在
3. 基于源表,查询关键字段的数据状态。
观察是否有异常数据,对异常数据是否需要清洗机制。
4. 基于数据特点,分析是否可能有多对多的表关联情况,可能导致数据翻倍
需要分析出存储过程中涉及到哪些源表,源表之间的关系和数据特点
(四)基于生产模拟的用户验收式测试方法
从业务系统前台操作产生业务数据,通过真实模拟源数据的产生,检查结果表的统计数据是否正确。
最后,还是祝福我的小宝贝聪明勇敢,善良快乐。祝福我的家人们平平安安,健健康康,真的好爱你们。
版权声明:本文出自 暖洋洋 的51Testing软件测试博客:http://www.51testing.com/?15019819
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。
最新内容请见作者的GitHub页:http://qaseven.github.io/
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/weixin_40725706/article/detail/636285
推荐阅读
article
企业
运用
人工智能
的
案例
_
计量
服务
企业
优秀
案例
7:
PLC
全自动测控系统在
计量
检测中
的
运用......
导语安徽中天石化股份有限公司始建于1998 年。作为国内知名
的
润滑油脂专业生产商,公司建有一流
的
润滑油脂智能制造生产线,...
赞
踩
article
Ubuntu23.04
安装
Wine
和
微信
_
wine
微信
...
在终端输入命令
wine
tricks,打开
wine
图形管理界面,选择“选择默认的
Wine
容器”,点确定,选择“运行卸载程序...
赞
踩
article
BERT
-
BiLSTM
-
CRF
基于
BERT
预
训练
的
中文
命名实体识别
TensorFlow
实现...
向AI转型的程序员都关注了这个号????????????机器学习AI算法工程 公众号:datayxTensorflow ...
赞
踩
article
逻辑
测试
_
逻辑
测试
法...
条件覆盖率的公式:条件覆盖率=被评价到的条件取值的数量/条件取值的总数X100%[1] 条件覆盖的缺点:只_
逻辑
测试
法逻...
赞
踩
article
java
开发
安全
_Java
安全
开发...
Java Security Develop1. 拒绝服务 DDOSxml外部实体攻击(阻塞)定义白名单自定义 Entit...
赞
踩
article
【Sql
Server
】实验报告五:SQL
数据
更新_添加新品“
gn0011
sup002
cn001
...
董元和版
数据
库系统课程3-1实验
数据
库的创建与管理_添加新品“
gn0011
sup002
cn001
乐至三合一咖啡 ...
赞
踩
article
Git
学习笔记---初始化
本地
库
和
查看
本地
库
的
状态
_
git
查看
本地
状态
...
最近在学习
git
,下面整理学习的步骤和笔记以及一些错误提示的解决方法,以便日后
查看
,希望对读者有帮助。 若喜欢的话可以...
赞
踩
article
数据结构
--
栈和
队列
详解...
【
数据结构
】栈和
队列
详解
数据结构
--
栈和
队列
详解 栈和
队列
...
赞
踩
article
导数
的
概念
——“
高等数学
”_
导数
高数...
导数
的
概念
和几何意义,可导与连续
的
关系,还有更多内容等待学习。
导数
高数 各位CSDN
的
uu们...
赞
踩
article
苹果MacOS系统使用微软
远程
桌面
连接
Windows
电脑桌面详细步骤_
microsoft
remot...
日常工作生活中,有时候会涉及到不同设备不同操作系统之间需要进行
远程
控制的场景。比如在家
远程
办公,用家里的Mac电脑
远程
控...
赞
踩
article
高频
Jmeter
软件测试
面试题
_
jmeter
面试题
...
近期,有很多粉丝在催更关于
Jmeter
的
面试题
,索性抽空整理了一波,以下是一些高频
Jmeter
面试题
,拿走不谢~_jme...
赞
踩
article
Mendix
开发
网页移动
App
项目
考虑
因素_
mendix
如何
收费...
Mendix
开发
网页移动
App
项目
考虑
因素中州软件
开发
园在使用
mendix
作为个人、公司企业内部管理网站移动
App
的
开发
...
赞
踩
article
程序员
交接
文档
_一个.
NET
程序员
"
2019
"
跳槽3次
的
悲惨故事...
2019年是值得深思
的
一年,在找工作上没有那么用心,导致碌碌无为,在这里我建议大家找工作
的
时候不要太着急...要不然会被...
赞
踩
article
组件
理解_
html
组件
的理解...
大部分
组件
相同的三大特性:props:定制数据slot:定制结构
组件
通信(订阅发布模式)定义
组件
类比系统提供的
组件
:比如...
赞
踩
article
日志
分析工具:
画出
loss
曲线_如何根据
basicsr
的
日志
画图
...
基本功能:生成
loss
图片,保存到log
日志
的
同一目录下,取名与log文件一致;内容涉及正则化&plot
画图
技巧在跑深度...
赞
踩
article
彻底理解
JDBC
_
com
.
mys
ql
.
jdbc
public class
driver
extend...
1注册
JDBC
驱动注册
JDBC
驱动的三种方式(以
mys
ql
为例):Class.forName(“
com
.
mys
ql
.jd...
赞
踩
article
【C++】STL——
map
的介绍和
使用
、
map
的
构造
函数
、
map
的
迭代
器、
map
的容量和
访问
函数
、m...
STL、
map
的介绍、
map
的
使用
、
map
的
构造
函数
、
map
的
迭代
器、
map
的容量和
访问
函数
、empty、size、op...
赞
踩
article
git
在
mac
环境下
升级
的方法
_
mac
升级
git
...
问题:在
mac
系统下发现通过命令行提交代码总是提示有新版本
git
可以update,并且每次都提示,很闹心,所以就有了
升级
...
赞
踩
article
Unity
内置
渲染
管线
、SRP、URP、
HDRP
的关系_
unity
urp和
hdrp
怎么选...
— 高清
管线
流程( 消耗资源和money多 ),专注于高端图形
渲染
,针对高端硬件配置,像PC、XBox 和Playsta...
赞
踩
article
【转】
android
repo
/
git
server
建立过程(
1
)...
一、安装
git
dameon$ sudo apt-get install
git
-daemon-run二、设置仓库目录修...
赞
踩
相关标签
企业运用人工智能的案例
ubuntu
微信
java开发安全
数据库
sql
git
java
数据结构
人工智能
算法
学习
动态规划
线性代数
macos
microsoft
windows
jmeter
软件测试
程序人生
自动化测试
python
web app
javascript