大数据测试用例分析

news2024/11/15 20:12:31

基于大数据分析,对业务系统产生的日志进行智能分析,能够识别日志中的接口、参数、业务流,并依据分析的结果生成测试用例。

问题与背景

业务复杂

业务系统的复杂性,对测试人员的业务能力提出严格要求,加重测试成本。

覆盖面低

系统功能的繁多与变化,导致难以全面覆盖。比如,某个版本某个接口参数新增了一个枚举值,测试人员并不知道

用例低效

测试用例的没计,高度依赖测试人员的能力,并且与真实用户的操作脱离。

需求与目标

一、数据源

某个系统的海量交易日志,主要是请求与响应日志报文

二、方法

通过对生产环境交易日志运用大数据分析,对主要业务进行识别

三、目标

根据日志而不是需求,来生成高覆盖率的测试案例

生成面向交易的案例

生成面向流程的案例

日志回放

大数据功能测试解决方案

一、参数分析:类型智能识别

对日志报文的参数的 【参数类型】进行自动识别,根据每个参数的值决定字段是:枚举型、数值型、字符串型。

二、单接口测试用例

根据测试用例等价类原则,产生单接口测试用例并支持导出操作。

三、流程化测试用例

以客户号、手机号、资金账户等标识用户角色为主线,以时间戳先后顺序进行对日志分析处理,生成流程化测试用例。

四、日志回放

使用生产日志进行回放。按用户标识进行归类,再排序后进行回放。

TBCD 系统的结构

本项目主要基于TBCD系统实现

TBCD系统:是“日志用例转换软件”的简称。本软件产品是我公司基于大数据分析,对业务系统产生的日志进行智能分析,能够识别日志中的接口、参数、业务流,并依据分析的结果生成测试用例。

测试案例生成流程

一、日志清洗

根据客户标识和业务规则关联请求报文与应答报文

日志清洗也是其它功能操作的前提

二、单接口

测试用例

单接口测试用例只分析日志调用的接口及数据,不进行业务场景和流程的分析。

单接口测试用例阶段会进行数据类型分析和输入值的等价类分析,让测试者掌握测试的覆盖情况。

三、流程化

测试用例

结合多种算法:循环分析、频度分析、数据流分析在庞大的日志数据中查找业务场景,生成流程类测试用例。

四、日志回放

重现用户的操作。

一、日志清洗

操作步骤:

使用方提供的日志

把存放目录日志的目录配置到BTCD中

输入标题,选择好日志类型,提交清洗

二、单接口测试用例中的等价类分析

下图是根据测试等价类原则产生的有效组合图表展示。

图标中的柱状图代表一个有效组合,Y轴取值代表组合出现的频度。

三、单接口测试用例的展示

下图是描述一个单接口测试用例的图形。

蓝色:入参, 红色:出参, 从内到外依次为:数据字段,类型,枚举值。

四、单接口测试用例的导出

可以将单接口导出为Excel格式执行。

左边是分析出的接口用例文件,右边是一个打开的接口文件。

五、流程化测试用例

分析出的流程化测试用例显示为列表。

支持流程测试用例的导出。(原子流是一个用户操作,普通流是不同用户的同一个操作;)

六、流程测试用例知识图谱

流程用例按功能号的使用路径,以图谱方式展现

图谱展现内容包括频次、功能号及顺序

图谱形式清晰易懂

产品价值

一、快速构建接口自动化的测试体系

二、重现生产问题,实现快速排查

三、完全实现模拟用户操作行为的自动化测试

四、无需脚本,无需设计用例,缩短测试周期

五、生产真实数据下的测试,完全模拟生产业务流程

六、测试过程,测试数据,测试结果集中管理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1116434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【深度学习-第4篇】使用MATLAB快速实现CNN多变量回归预测

上一篇我们讲了使用CNN进行分类的MATLAB代码。 这一篇我们讲CNN的多变量回归预测。 是的,同样是傻瓜式的快速实现。 一、什么是多变量回归预测 多变量回归预测则是指同时考虑多个输入特征进行回归预测。举几个例子: 房价预测:给定一组房…

苹果开发者 Xcode发布TestFlight全流程

打包前注意事项 使用Xcode导出安装包之前,必须先确认账户的所有合约是否全部同意,如果有不同意的,在出包的时候会弹出报错 点击前往苹果开发者官网https://appstoreconnect.apple.com/agreements/ 登录自己的开发者账户后,可以看…

【LeetCode】61. 旋转链表

1 问题 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例 1: 输入:head [1,2,3,4,5], k 2 输出:[4,5,1,2,3] 示例 2: 输入:head [0,1,2], k 4 输出&…

用Nginx搭建一个具备缓存功能的反向代理服务

在同一台服务器上,使用nginx提供服务,然后使用openresty提供反向代理服务。 参考《Ubuntu 20.04使用源码安装nginx 1.14.0》安装nginx。 参考《用Nginx搭建一个可用的静态资源Web服务器》搭建静态资源Web服务器,但是/nginx/conf/nginx.conf里…

点云cloudpoint生成octomap的OcTree的两种方法以及rviz可视化

第一种:在自己的项目中将点云通过ros的topic发布,用octomap_server订阅点云消息,在octomap_server中生成ocTree 再用rviz进行可视化。 创建工作空间,记得source mkdir temp_ocotmap_test/src cd temp_ocotmap_test catkin_make…

系列一、文件

一、概述 文件对我们并不陌生,简单的讲文件就是保存数据的地方,比如大家经常使用的word文档,txt文件,excel文件,mp3音乐文件,mp4视频文件...等等,它既可以是一张图片,也可以是一段视…

C++之继承<2>【详解】

C之继承<2>【详解】 1. 派生类的默认成员函数1.1 1. 构造成员函数1.2 拷贝复制1.3 构造函数和析构函数的执行顺序 2. 继承和友元3. 继承与静态成员 1. 派生类的默认成员函数 1.1 1. 构造成员函数 派生类的构造函数必须调用基类的构造函数初始化基类的那…

力扣刷题 day50:10-20

1.存在重复元素 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 方法一:集合去重 #方法一:集合去重 def containsDuplicate(nums):return len(n…

八股总结(招聘)

线程创建方法: 继承 Thread 类实现 Runnable 接口通过 ExecutorService 和 Callable\ 实现有返回值的线程基于线程池的execute(),创建临时线程

嵌入式面试常见问题(二)

1.malloc如何分配内存? 进行虚拟地址空间的分布:程序地址空间-》程序虚拟地址空间-》进程虚拟地址空间 内存布局: ​ 进程虚拟地址空间和PCB(Process Control Block,进程控制块)进行串联 : ​…

微信小程序进阶——后台交互

目录 一、后台准备 1.1 pom.xml 1.2 配置数据源 1.3 整合mybatis 二、前后端交互 2.1 method1 2.2 method2 2.2.1 封装request 2.2.2 头部引用util 2.2.3 编写方法 2.2.4 展示效果 三、WXS的使用 3.1 会议状态 3.1.2 引入wxs 3.1.3 修改代码 3.1.4 展示效果 3…

计算机毕业设计 基于SpringBoot笔记记录分享网站的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

Mysql 中的性能调优方法

Mysql 性能调优方法可以从四个方面来说,分别是: 表结构与索引 SQL 语句优化 Mysql 参数优化 硬件及系统配置 这四个方面的优化成本和优化效果是成反比的。 表结构和索引的优化 表结构和索引的优化,主要可以下面这些方面去优化: 分…

NewStarCTF 2023 公开赛道 WEEK2|WEB 游戏高手

app_v2.js就是游戏文件 右键“用调试器打开”: var gameScore 0; 就是当前分数, 打开控制台,输入 gameScore 1000000,回车 就可以得到flag

字节码进阶之ASM字节码操作类库详解

文章目录 0.前言1. 引言2. ASM简介3. 字节码基础知识回顾 4. ASM的核心概念5. ASM的基本用法5.1. 读取和分析字节码5.2. 修改和生成字节码 6. ASM的高级用法6.1. 字节码增强技术6.2. 自定义类加载器和类定义 7. 实例演示:使用ASM实现简单的字节码增强 字节码进阶之A…

代码随想录算法训练营第二十八天丨 回溯算法part04

491.递增子序列 思路 这个递增子序列比较像是取有序的子集。而且本题也要求不能有相同的递增子序列。 在90.子集II (opens new window)中是通过排序,再加一个标记数组来达到去重的目的。 而本题求自增子序列,是不能对原数组进行排序的,排…

前端工作方式要换了?HTMX简介:无需JavaScript的动态HTML

HTMX允许你使用扩展的HTML语法代替 JavaScript 来实现交互性。HTMX 在标记中直接为你提供HTTP 交互,并支持许多其他交互需求,无需求助于 JavaScript。这是一个有趣的想法,可能最终会影响到web前端的工作方式。让我们看看如何使用HTMX以及它的…

pytorch 入门 (三)案例一:mnist手写数字识别

本文为🔗小白入门Pytorch内部限免文章 🍨 本文为🔗小白入门Pytorch中的学习记录博客🍦 参考文章:【小白入门Pytorch】mnist手写数字识别🍖 原作者:K同学啊 目录 一、 前期准备1. 设置GPU2. 导入…

聊聊分布式架构09——分布式中的一致性协议

目录 01从集中式到分布式 系统特点 集中式特点 分布式特点 事务处理差异 02一致性协议与Paxos算法 2PC(Two-Phase Commit) 阶段一:提交事务请求 阶段二:执行事务提交 优缺点 3PC(Three-Phase Commit&#x…

kubeadm初始化搭建cri-dockerd记录 containerd.io

07.尚硅谷_搭建K8s集群(kubeadm方式)-部署master节点_哔哩哔哩_bilibili 视频里的版本只有1.17而现在(2023.10.20)kubernetes最新版本是1.28,需要搭载cri-dockerd, 先去网站下载了对应的rpm包cri-dockerd…