test-04-test case generate 测试用例生成 tcases 快速开始

拓展阅读

junit5 系列

基于 junit5 实现 junitperf 源码分析

Auto generate mock data for java test.(便于 Java 测试自动生成对象信息)

Junit performance rely on junit5 and jdk8+.(java 性能测试框架。性能测试。压测。测试报告生成。)

自动生成测试用例

入门指南

关于本指南

本指南详细解释了Tcases的工作原理。在涉及示例时,本指南展示了在使用Tcases作为 shell 命令运行时如何操作。如果你使用 Tcases Maven
Plugin 运行 Tcases,命令行细节会略有不同,但所有概念都保持不变。

安装 Tcases Maven 插件

要获取 Tcases Maven 插件的依赖信息,请访问
插件的文档站点。

安装 Tcases 发行版

要获取 Tcases 的命令行版本,请从 Maven Central Repository 下载 Tcases 二进制分发文件,使用以下步骤。

  1. 访问 Central Repository 页面 的 tcases-shell
  2. 找到最新版本的条目并点击“浏览”。
  3. 要下载分发的 ZIP 文件,请点击“tcases-shell-KaTeX parse error: Expected group after '_' at position 51: …击“tcases-shell-_̲{version}.tar.gz”。

将分发文件的内容解压到任何你喜欢的目录 —— 这现在是你的 “Tcases 主目录”。解压分发文件将创建一个 “Tcases 发布目录” —— 一个形式为 tcases-m.n.r 的子目录,其中包含此版本 Tcases 的所有文件。发布目录包含以下子目录。

  • bin: 用于运行 Tcases 的可执行 shell 脚本
  • docs: 用户指南、示例和 Javadoc
  • lib: 运行 Tcases 所需的所有 JAR 文件

还有一步,你就可以开始了:将 bin 子目录的路径添加到你系统的 PATH 环境变量中。

JSON?还是 XML?

所有 Tcases 文档的首选形式是 JSON,它能够表达所有 Tcases 的特性,并且在本指南的所有示例中都使用 JSON。

但 Tcases 的原始版本使用 XML 作为所有文档的格式,对于较旧的文档,仍然支持 XML。你可以在本指南的原始版本中找到有关使用 XML 的所有详细信息,包括如何将现有的 XML 项目转换为 JSON。

从命令行运行

你可以直接从 shell 命令行运行 Tcases。如果你使用 bash 或类似的 UNIX shell,可以运行 tcases 命令。或者,如果你使用 Windows 命令行,你可以使用 tcases.bat 命令文件以完全相同的语法运行 Tcases。

例如,为了快速检查,你可以运行 Tcases 自带的一个示例,使用以下命令。

cd ${tcases-release-dir}
cd docs/examples/json 
tcases < find-Input.json 

关于 tcases 命令(以及 tcases.bat 命令)的接口的详细信息,请参阅
TcasesCommand.Options 类的 Javadoc。要在命令行上获得帮助,请运行 tcases -help

理解 Tcases 的结果

运行 Tcases 时会发生什么?Tcases 读取一个系统输入定义,这是一个定义要测试的系统函数的 “输入空间” 的文档。从这个文档中,Tcases 生成一个称为 系统测试定义 的不同文档,它描述了一组测试用例。

尝试在其中一个示例系统输入定义上运行 Tcases。以下命令将为 find 命令的示例生成测试用例,稍后在本指南中详细说明。

cd ${tcases-release-dir}
cd docs/examples/json 
tcases < find-Input.json 

生成的系统测试定义将写入标准输出。它看起来像这样:对于 find 函数,一个测试用例定义列表,其中每个定义都为函数的所有变量定义了值。

{
  "system": "Examples",
  "find": {
    "testCases": [
      {
        "id": 0,
        "name": "pattern='empty'",
        "has": {
          "properties": "fileExists,fileName,patternEmpty"
        },
        "arg": {
          "pattern": {
            "value": "",
            "source": "empty"
          },
          "fileName": {
            "value": "defined"
          }
        },
        "env": {
          "file.exists": {
            "value": true
          },
          "file.contents.linesLongerThanPattern": {
            "NA": true
          },
          "file.contents.patternMatches": {
            "NA": true
          },
          "file.contents.patternsInLine": {
            "NA": true
          }
        }
      },
      ...
    ]
  }
}

故障排除常见问题

遇到问题了吗?请查看故障排除FAQ以获取帮助。

对输入空间进行建模

Tcases根据您创建的 系统输入定义 创建测试定义。但是,您如何做到这一点呢?这就是本节的目的。

系统输入定义是对被测系统(SUT)的 “输入空间” 进行建模的文档。我们说它 “建模” 系统输入,因为它并不是字面上列举所有可能的输入值。相反,系统输入定义列出了影响系统结果的系统输入的所有重要方面。可以将其视为描述系统 “输入空间” 中 “变化维度” 的方式。某些变化维度是显而易见的。如果您正在测试 add 函数,您知道至少有两个变化维度 —— 被相加的两个不同数字。但是要找到所有关键维度,您可能需要更深入地查看。

例如,考虑如何测试一个简单的 “列出文件” 命令,例如 UNIX 中的 ls 命令。(为了保持简单,假设没有要担心的命令选项或开关。)显然,变化维度之一是给定的文件名数量。ls 应该处理不仅一个文件名,还有许多文件名的列表。如果没有给出文件名,ls 预计会产生完全不同的结果。但是每个文件名本身呢?ls 将根据名称标识的是简单文件还是目录而产生不同的结果。因此,文件名的类型是一个额外的变化维度。但还不止于此!某些文件名可能标识实际文件,但其他文件名可能是不存在的文件的虚假名称,这种差异会对 ls 预计要执行的操作产生重大影响。因此,这是另一个变化维度,与文件名本身无关,而是涉及 ls 运行的环境状态。

您可以看到,对输入空间进行建模需要对SUT进行仔细的思考。这是没有任何工具可以为您完成的工作。但是,Tcases为您提供了一种捕捉这种知识并将其转化为有效测试用例的方法。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

windows安装conda环境,开发openai应用准备,运行第一个ai程序

文章目录 前言一、windows创建openai开发环境二、国内代理方式访问openai的方法&#xff08;简单方法&#xff09;三、测试运行第一个openai程序总结 前言 作者开发第一个openai应用的环境准备、第一个openai程序调用成功&#xff0c;做个记录&#xff0c;希望帮助新来的你。 …

Centos7 安装与卸载mysql

卸载 ps ajx | grep mysql &#xff1a; 查看当前服务器是否有mysql 没有的话就不需要卸载咯。 centos7 通过yum下载安装包通常是以.rpm为后缀&#xff0c;rpm -qa 可以查看当前服务器上所有的安装包&#xff1a; rpm -qa | grep mysql | xargs yum -y remove :将查询到的mysql…

一张图总结架构设计的40个黄金法则

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;很多小伙伴拿到非常优质的架构机会&#xff0c;常常找尼恩求助&#xff1a; 尼恩&#xff0c;我这边有一个部门技术负责人资深架构师的机会&#xff0c;非常难得&#xff0c; 但是有一个大厂高P在抢&#xff0…

Gaara靶机练习

渗透测试 一.信息收集1.确定IP地址2.nmap扫描3.目录扫描 二.hydra爆破1.ssh连接2.信息探索 三.提权gdb提权提权 一.信息收集 1.确定IP地址 ┌──(root㉿kali)-[~/kali/web] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:10:3c:9b, IPv4: 192.168.9.10 S…

基于协方差矩阵自适应演化策略(CMA-ES)的高效特征选择

特征选择是指从原始特征集中选择一部分特征&#xff0c;以提高模型性能、减少计算开销或改善模型的解释性。特征选择的目标是找到对目标变量预测最具信息量的特征&#xff0c;同时减少不必要的特征。这有助于防止过拟合、提高模型的泛化能力&#xff0c;并且可以减少训练和推理…

ubuntu双系统安装注意事项(磁盘分区大小设置,安装Ubuntu后系统windows无法启动)

安装教程可参考&#xff1a; 1.(视频)&#xff1a;双系统启动效果_哔哩哔哩_bilibili 2.Ubuntu20.04双系统安装详解&#xff08;内容详细&#xff0c;一文通关&#xff01;&#xff09;_ubuntu20.04安装教程-CSDN博客 详细安装教程视频已经给出&#xff0c;本文主要补充一些…

godot初学笔记

godot开发工具下载地址 godot下载地址 godot入门视频 godot入门教学b站地址 素材下载地址 素材下载地址 最终成品图 2D3D如何切换 添加2D场景 添加其他节点 添加人物节点 设置人物为接地 给人物添加Sprite 2d 给人物设置材质 解决材质糊的问题 设置材质包切割 在场景中实…

北京大学 wlw机器学习2022春季期末试题分析

北京大学 wlw机器学习2022春季期末试题分析 前言新的开始第一题第二题第三题 前言 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章&#xff0c;了解一下Markdown的基本语法知识。 新的开始 第…

使用lodash原地起飞,总结了几个常用的lodash方法

前言 &#x1f4eb; 大家好&#xff0c;我是南木元元&#xff0c;热爱技术和分享&#xff0c;欢迎大家交流&#xff0c;一起学习进步&#xff01; &#x1f345; 个人主页&#xff1a;南木元元 目录 什么是lodash lodash的按需引入 数组操作 求交集 求合集 求差集 求总和…

小程序基础学习(请求封装)(重点,核心)

目录 首先&#xff1a; 封装一个request请求的js文件&#xff0c;用的是Promise 然后&#xff1a; 请求编写 原理&#xff1a;首先在页面加载完成以后发送一次请求数据&#xff0c;由于请求的数据会反复使用&#xff0c;直接把他抽离到外面&#xff0c;以后直接调用。在使用a…

【IDEA】瑞_IDEA模版注释设置_IDEA自动生成注释模版(详细图文步骤)

文章目录 1 概要2 类的自定义模版注释3 自定义模版注释3.1 方法的自定义模版注释3.2 属性的自定义模版注释 &#x1f64a; 前言&#xff1a;在Java开发中&#xff0c;注释具有不可或缺的重要性&#xff0c;注释负责解释代码&#xff0c;能帮助开发人员深入理解代码的逻辑和功能…

Python 潮流周刊#35:Python JIT 编译器和 Numpy2 即将推出

△△请给“Python猫”加星标 &#xff0c;以免错过文章推送 你好&#xff0c;我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容&#xff0c;大部分为英文。本周刊开源&#xff0c;欢迎投稿[1]。另有电报频道[2]作为副刊&#xff0c;补充发布更加丰富的资讯&#xff0c;…

反序列化提升刷题

例题&#xff1a; <?php //flag is in flag.php highlight_file(__FILE__); error_reporting(0); class Modifier { private $var; public function append($value) { include($value); echo $flag; } public function __invoke(){ …

AcWing 843. n-皇后问题

#include <iostream> #include <cstring> #include <algorithm>using namespace std; const int N 10; int n; int col[N], dg[N N], rdg[N N]; // 列占用// 正对角线占用// 副对角线占用 char table[N][N]; // 棋盘void dfs(int index) {if(i…

大型语言模型综述/总结 LLM A Survey of Large Language Models

A Survey of Large Language Model AbstractINTRODUCTIONOVERVIEW背景LLM的新兴能力LLM的关键技术GPT 系列模型的技术演进 大语言模型资源公开可用的模型检查点或 API常用语料库代码库资源 预训练数据收集架构 论文标题&#xff1a;A Survey of Large Language Model 论文地址&…

ssm基于java的智能训练管理平台论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差&#x…

Required request parameter ‘ids‘ for method parameter type List is not present]

在写delete方法的时候&#xff0c;出现了bug 于是将RequestParam换成PathVariable 两者有何区别&#xff1f; pathVariable和RequestParam的区别 在Spring MVC框架中&#xff0c;PathVariable 和 RequestParam 是两种用于从HTTP请求中获取参数的注解&#xff0c;它们的区别…

【前后端的那些事】开源!快速上手富文本+富文本图片上传

文章目录 fullText富文本1. 后端接口1.1 定义常量1.2 定义返回实体类1.3 上传图片接口1.4 下载图片接口 2. 前端代码编写2.1 安装2.2 快速使用 3. 配置富文本图片上传地址3.1 配置图片上传配置 4. 全部代码展示 前言&#xff1a;最近写项目&#xff0c;发现了一些很有意思的功能…

基于卡尔曼滤波的视频跟踪,基于卡尔曼滤波的运动小球跟踪

目录 完整代码和数据下载链接&#xff1a;基于卡尔曼滤波的视频跟踪&#xff0c;基于卡尔曼滤波的运动小球跟踪&#xff08;代码完整&#xff0c;数据齐全&#xff09;资源-CSDN文库 https://download.csdn.net/download/abc991835105/88738577 卡尔曼滤波原理 RBF的定义 RBF理…
最新文章