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

news2025/2/27 2:54:23

拓展阅读

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.coloradmin.cn/o/1382857.html

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

相关文章

Error: error:0308010C:digital envelope routines::unsupported的解决方案

因为最近安装了pnpm对node版本有要求&#xff0c;升级了node版本是18以后&#xff0c;在运行之前的项目&#xff0c;就跑不起来了&#xff0c;报错如下&#xff1a; Error: error:0308010C:digital envelope routines::unsupported解决方案一&#xff1a; node版本切换到16版…

三、MySQL实例初始化、设置、服务启动关闭、环境变量配置、客户端登入(一篇足以从白走到黑)

目录 1、选择安装的电脑类型、设置端口号 2、选择mysql账号密码加密规则 3、设置root账户密码 4、设置mysql服务名和服务启动策略 5、执行设置&#xff08;初始化mysql实例&#xff09; 6、完成设置 7、MySQL数据库服务的启动和停止 方式一&#xff1a;图形化方式 方式…

MySQL-多表连接查询

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现错误&am…

camtasia studio2024免费版如何下载?怎么录屏?

camtasia studio怎么录屏&#xff1f;Camtasia Studio是一款专门录制屏幕动作的工具&#xff0c;它能在任何颜色模式下轻松地记录屏幕动作&#xff0c;包括影像、音效、鼠标移动轨迹、解说声音等等。一般情况下&#xff0c;用户使用camtasia studio进行录屏时&#xff0c;需要注…

基于协同过滤的零食推荐系统

介绍 协同过滤算法&#xff1a;协同过滤是推荐系统中比较常用的算法之一&#xff0c;其核心思想是寻找用户之间的相似性&#xff0c;通过发现用户之间的共性&#xff0c;向用户推荐可能喜欢的商品或服务。Python Django Vue&#xff1a;Django 是一个基于 Python 的 Web 开发框…

【学术精选】NLP可投的顶会信息(近期截稿)

顶级会议推荐 引言 国际学术会议是一种学术影响度较高的会议&#xff0c;它具有国际性、权威性、高知识性、高互动性等特点&#xff0c;其参会者一般为科学家、学者、教师等。具有高学历的研究人员把它作为一种科研学术的交流方式&#xff0c;能够为科研成果的发表和对科研学术…

《工具录》fierce

工具录 1&#xff1a;fierce2&#xff1a;选项介绍3&#xff1a;示例 本文以 kali-linux-2023.3-vmware-amd64 为例。 1&#xff1a;fierce fierce 是开源的网络安全工具&#xff0c;用于进行域名扫描和子域名枚举。 官方网址&#xff1a;https://github.com/mschwager/fierc…

引领行业赛道!聚铭网络入选安全419年度策划“2023年教育行业优秀解决方案”

近日&#xff0c;由网络安全产业资讯媒体安全419主办的《年度策划》2023年度优秀解决方案评选结果正式出炉&#xff0c;聚铭网络「高校大日志留存分析及实名审计解决方案」从众多参选方案中脱颖而出&#xff0c;被评为“教育行业优秀解决方案”&#xff0c;以硬核实力引领行业赛…

第四节课 XTuner 大模型单卡低成本微调实战 作业

文章目录 笔记作业 笔记 XTuner 大模型单卡低成本微调原理&#xff1a;https://blog.csdn.net/m0_49289284/article/details/135532140XTuner 大模型单卡低成本微调实战&#xff1a;https://blog.csdn.net/m0_49289284/article/details/135534817 作业 基础作业&#xff1a;…

linux磁盘总结

什么是page_cache linux读写磁盘&#xff0c;如果都是采用directIO的话&#xff0c;效率太低&#xff0c;所以我们在读写磁盘上加了一层缓存&#xff0c;page_cache。读的话&#xff0c;如果page_cache有的话&#xff0c;就不用向磁盘发出请求。写的话&#xff0c;也直接写入的…

Python与VSCode环境:手把手教你安装与配置【第22篇—python安装与配置】

文章目录 1. 安装Python2. 配置Python虚拟环境3. 安装Vscode4. 安装Python插件5. 配置Vscode与虚拟环境6. 创建Python项目7. 运行和调试8. 使用扩展功能 9. 安装Jupyter支持10. 版本管理与集成11. 自定义配置结语 随着Python的普及&#xff0c;选择一款高效的集成开发环境&…

Clickhouse表引擎之CollapsingMergeTree引擎的原理与使用

前言 继续上次关于clickhouse的一些踩坑点&#xff0c;今天讲讲另外一个表引擎——CollapsingMergeTree。这个对于引擎对于数据量较大的场景是个不错的选择。注意&#xff0c;选择clickhouse的一般原因都是为了高效率查询&#xff0c;提高用户体验感&#xff0c;说白了就是以空…

网络-DHCP中继(思科)

思科 前提&#xff1a;将R1 R3配置16板卡 将R1更改标识符为三层交换机 将R3更改标识符为交换机 拓扑图&#xff1a; R2进行配置 配置IP地址 为12.0.0.2 配置默认路由到R1的f1/4接口 配置dhcp地址池 配置vlan10的地址池 配置vlan20的地址池 三层交换机R1进行配置 将f1/4接口…

瑞_Java开发手册_(四)安全规约

&#x1f64a;前言&#xff1a;本文章为瑞_系列专栏之《Java开发手册》的安全规约篇。由于博主是从阿里的《Java开发手册》学习到Java的编程规约&#xff0c;所以本系列专栏主要以这本书进行讲解和拓展&#xff0c;有需要的小伙伴可以点击链接下载。本文仅供大家交流、学习及研…

springboot学生信息管理系统

&#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;一 、设计说明 1.1研究背景 随着…

【Windows】基于Hyper-V安装Ubuntu虚拟机

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍基于Hyper-V安装Ubuntu虚拟机。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更新…

22款奔驰C260L升级ACC自适应巡航 解放双脚 出行更加安全

有的时候你是否厌倦了不停的刹车、加油&#xff1f;是不是讨厌急刹车&#xff0c;为掌握不好车距而烦恼&#xff1f; 如果是这样&#xff0c;那么就升级奔驰原厂ACC自适应式巡航控制系统&#xff0c;带排队自动辅助和行车距离警报功能&#xff0c;感受现代科技带给你的舒适安全…

监测服务器硬件设备运行状况的软件 - wgcloud

WGCLOUD是一款开源免费的运维平台&#xff0c;具有轻量&#xff0c;高效&#xff0c;性能稳定&#xff0c;部署简单&#xff0c;上手容易等特点 WGCLOUD可以监测服务器的cpu&#xff0c;内存&#xff0c;磁盘&#xff0c;负载&#xff0c;磁盘&#xff0c;缓存&#xff0c;网络…

【rust/bevy】从game template开始

目录 说在前面步骤进入3D控制方块问题 说在前面 操作系统&#xff1a;win11rust版本&#xff1a;rustc 1.77.0-nightlybevy版本&#xff1a;0.12 步骤 rust安装 这里 windows下建议使用msvc版本bevy安装 这里clone代码git clone https://github.com/NiklasEi/bevy_game_templa…

Docker运行RabbitMQ并使用SpringAMQP操作

文章目录 一、RabbitMQ运行二、整合SpringAMQP1. 引入依赖 三、测试1. 消费者2. 生产者3. 运行 一、RabbitMQ运行 拉取docker镜像 docker pull rabbitmq:3-management基础运行命令 docker run \-e RABBITMQ_DEFAULT_USERrabbitmq \-e RABBITMQ_DEFAULT_PASSrabbitmq \--name…