搜索
查看
编辑修改
首页
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
【React 源码】如何以及为什么React Fiber使用链表遍历组件树_react 获取当前组件所在渲染树中的位置
2
使用 Verdaccio 搭建一个企业级私有 npm 库_verdaccio notify
3
第3章 Spring Security 的用户认证机制(2024 最新版)
4
VLOOKUP的使用方法_如何用vlookup函数查找录入
5
Hive的安装_查看hive安装目录
6
渗透测试怎么做,看完这个我也学会了【宝藏教程】_渗透测试教程
7
SpringBoot 2.2.5 整合Kafka,实现消息的发送及消费_spirng boot 实现 发送消息到 kafka 并消费数据
8
智能家居|基于SprinBoot+vue的智能家居系统(源码+数据库+文档)_智能家居类项目 springboot
9
OJ提交题目中的语言选项里G++与C++的区别_汇编oj
10
详解文件包含漏洞及其解决方法_文件包含漏洞的修复建议
当前位置:
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
AVR单片机-
ATMEGA64
-
UART1
串口
中断
方式_
avr
串口
中断
...
简单记录一下
ATMEGA64
-
UART1
串口
中断
方式使用。_
avr
串口
中断
avr
串口
中断
&...
赞
踩
article
27
个实用
的
Visual
Studio
Code
扩展
插件,让我们
的
工作效率
翻倍...
前端Q我是winty,专注分享前端知识和各类前端资源,乐于分享各种有趣
的
事,关注我,一起做个有趣
的
人~公众号点击上方前端...
赞
踩
article
Gitee
vs插件(
Gitee
Extension
for
Visual
Studio
)...
Gitee
码云(gitee.com)是开源中国推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管。ht...
赞
踩
article
SQL
server
中的
创建
表的语法理解_sql
server
create
schema
...
创建
表的语法CREATE SCHEMA 模式名 go :
创建
表的模式CREATE TABLE 模式名.表名():
创建
指定...
赞
踩
article
开发
安全
Java
应用程序
的13条
规则
((
Mark
)(3)...
始终在代码中公开尽可能少的信息。隐藏实施细节支持可维护和
安全
的代码。
开发
安全
Java
应用程序
的13条
规则
((
Mark
)(...
赞
踩
article
仿
百度
搜索
输入框提示js
代码
(
php
+
mysql
数据库
版),
php
+
ajax
做仿
百度
搜索
下拉自动提示...
php
+
ajax
做仿
百度
搜索
下拉自动提示框
php
+
mysql
+
ajax
实现
百度
搜索
下拉提示框 主要有3个文件三个文件在同...
赞
踩
article
【前端必备技能
java
之
若依
框架
认证
(
登录
注册
)
模块
梳理】_
若依
注册
时序图...
必备技能
java
系列梳理的文章并不涉及造轮子,以
若依
框架为基础,分析微服务Spring Cloud的能力,并理清微服务在...
赞
踩
article
【论文笔记】
EMBEDDING
ENTITIES
AND
RELATIONS
FOR LEARN-I...
摘要提出了一个准确率更高的双线性公式,一个利用学习到的关系嵌入来挖掘逻辑规则的方法。背景在可扩展到大型知识库的关系学习方...
赞
踩
article
UML
语言与软件
架构
设计
(持续更新中)_uml
架构
设计
和
模块
划分...
1.前言本文是以《软件
架构
设计
》和《大象Think in
UML
》两本书的内容为基础进行讲述,以个人的理解做了提炼和总结...
赞
踩
article
如何使
Mac
版本
的
git
升级
至
最新版
_
mac
git
升级
...
/ 具体的地址需要在brew install
git
命令后查看,我的是这个地址。(如果
Mac
不是Apple Silico...
赞
踩
article
docker
镜像
瘦身工具
docker
-
slim
...
docker
-
slim
的主要作用是对
docker
镜像
进行瘦身的工具。经过瘦身处理的
镜像
会变小一些甚至变小数倍,且瘦身收仍...
赞
踩
article
UOS系统下
FFmpeg
源码
编译
安装及
注意事项
_
uos
编译
ffmpeg
...
条件当前
编译
环境:国产UOS系统(基于linux),CPU是ARM架构需要安装
ffmpeg
3.4版本。通过
源码
编译
进行...
赞
踩
article
ANDROID
隐藏
任务栏
systemui
systembar
全屏显示_
android13
s...
原文:http://blog.csdn.net/xiaogezq0/article/details/8662464(1)...
赞
踩
article
开发
安全
Java
应用程序
的
13条
规则
((
Mark
),突围金九银十面试季_
java
项目
安全
性
设计原则...
漏洞喜欢隐藏在复杂性中,因此在不牺牲功能
的
情况下使代码尽可能简单。使用成熟
的
设计原则(例如DRY)(不要重复),将帮助您...
赞
踩
article
外汇
m>天眼
m>:爆雷!
m>MBG
m>
m>大通
m>
m>金融
m>又被曝
m>拖欠工资
m>
m>,
m>
m>再次出现
m>欲去别地“圈钱”?_
m
&
g
暴雷...
最近有消息称MultiBank Group·
m>大通
m>
m>金融
m>(以下简写
m>MBG
m>
m>大通
m>
m>金融
m>)平台要在马来西亚展业了
m>,
m>当看到这个消息的时...
赞
踩
article
我的
四轴
专用
PID
参数
整定
方法
及原理---超长文慎入(转)_
动力学
补偿 需要
调参
...
给
四轴
调了好久的
PID
,总算是调好了,现分享
PID
参数
整定
的心得给大家,还请大家喷的时候手下留情。 首先说明一下,这篇...
赞
踩
article
SQL的
with
as
作为
中间
表
使用
_
sql
中间
表...
/(3)
with
as
使用
, tmp 相当于临时
中间
表可以起到缓存的作用,在后面的
sql
中可以多次
使用
.// (2)...
赞
踩
article
数据结构
专题二:2.6
链表
删除
结点
_
链表
结点
的
删除
...
///
删除
,
删除
指定位置
的
值,或者
删除
给定
的
值//情形一:
删除
指定
结点
的
后继
结点
//情形二:
删除
第i个
结点
,假定头
结点
的
...
赞
踩
article
《
图解
密码
技术
》
笔记
_
图解
密码
技术
学习
笔记
...
图解
密码
技术
的学习_
图解
密码
技术
学习
笔记
图解
密码
技术
学习
笔记
《...
赞
踩
article
数学建模——农村
公交
与异构
无人机
协同
配送
优化_
问题
3在
问题
2
的
基础上
,
如果
每个
需求
点有
取货
的
需求
,
且...
公交
站点数据:包括站点
的
位置和之间
的
距离。
需求
点数据:包括
需求
点
的
位置和
配送
需求
。A类
无人机
性
能
参数:包括最大飞行距离、...
赞
踩
相关标签
单片机
嵌入式硬件
vscode
git
github
ide
编辑器
开发工具
数据库
sql
sqlserver
安全
java
开发语言
仿百度搜索输入框提示js代码(php+mysql数据库版)
前端
人工智能
docker
linux
FFmpeg
源码编译
面试
后端