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.mzph.cn/news/621823.shtml

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

相关文章

js中关于字符串的创建和判断类型

文章目录 创建方法判断类型的技巧区分1、typeof2、instanceof 共点1、Object.prototype.toString.call2、库函数 参考链接&#xff1a;JS字符串的创建和常用方法 如何判断JS中一个变量是 string 类型 创建方法 字符串有着两种的创建方法&#xff0c;一个是使用构造函数&#x…

openssl3.2 - 官方demo学习 - server-arg.c

文章目录 openssl3.2 - 官方demo学习 - server-arg.c概述笔记备注END openssl3.2 - 官方demo学习 - server-arg.c 概述 TLS服务器, 等客户端来连接; 如果客户端断开了, 通过释放bio来释放客户端socket, 然后继续通过bio读来aceept. 笔记 对于开源工程, 不可能有作者那么熟悉…

HCIA-Datacom题库(自己整理分类的)_09_Telnet协议【14道题】

一、单选 1.某公司网络管理员希望能够远程管理分支机构的网络设备&#xff0c;则下面哪个协议会被用到&#xff1f; RSTP CIDR Telnet VLSM 2.以下哪种远程登录方式最安全&#xff1f; Telnet Stelnet v100 Stelnet v2 Stelnet v1 解析&#xff1a; Telnet 明文传输…

中职组安全-win20230217-环境-解析

*任务说明&#xff1a; 仅能获取win20230217的IP地址 用户名&#xff1a;test&#xff0c;密码&#xff1a;123456 访问服务器主机,找到主机中管理员名称,将管理员名称作为Flag值提交&#xff1b; john 访问服务器主机,找到主机中补丁信息,将补丁编号作为Flag值提交&#xff…

【数字人】9、DiffTalk | 使用扩散模型基于 audio-driven+对应人物视频 合成说话头(CVPR2023)

论文&#xff1a;DiffTalk: Crafting Diffusion Models for Generalized Audio-Driven Portraits Animation 代码&#xff1a;https://sstzal.github.io/DiffTalk/ 出处&#xff1a;CVPR2023 特点&#xff1a;需要音频对应人物的视频来合成新的说话头视频&#xff0c;嘴部抖…

《Git学习笔记:Git入门 常用命令》

1. Git概述 1.1 什么是Git&#xff1f; Git是一个分布式版本控制工具&#xff0c;主要用于管理开发过程中的源代码文件&#xff08;Java类、xml文件、html页面等&#xff09;&#xff0c;在软件开发过程中被广泛使用。 其它的版本控制工具 SVNCVSVSS 1.2 学完Git之后能做…

R语言【paleobioDB】——pbdb_intervals():通过参数选择,返回多个地层年代段的基本信息

Package paleobioDB version 0.7.0 paleobioDB 包在2020年已经停止更新&#xff0c;该包依赖PBDB v1 API。 可以选择在Index of /src/contrib/Archive/paleobioDB (r-project.org)下载安装包后&#xff0c;执行本地安装。 Usage pbdb_interval (id, ...) Arguments 参数【..…

顺序表的实现(上)(C语言)

本文章主要对顺序表的介绍以及数据结构的定义,以及几道相关例题,帮助大家更好理解顺序表. 文章目录 前言 一、顺序表的静态实现 二、顺序表的动态实现 三.定义打印顺序表函数 四.定义动态增加顺序表长度函数 五.创建顺序表并初始化 六.顺序表的按位查找 七.顺序表的按值…

力扣 第 121 场双周赛 解题报告 | 珂学家 | 数位DP

前言 整体评价 T3, T4 都是典题 T1. 大于等于顺序前缀和的最小缺失整数 思路: 模拟 class Solution { public:int missingInteger(vector<int>& nums) {set<int> s(nums.begin(), nums.end());int acc nums[0];for (int i 1; i < nums.size(); i) {if …

Win10专业版系统搭建DNS解析服务

Win10专业版 纯新手&#xff0c;也没弄过Linux的。不喜勿喷&#xff0c;有问题请指出 第一天一头雾水整了几个小时没结果&#xff0c;第二天豁然开朗&#xff0c;10分钟明白了第一天的问题所在。 Win10 安卓&#xff1a; iOS&#xff1a; 搭建DNS服务器的意义&#xff1a; 屏蔽…

运算放大器相关知识总结(1)

1、 前言 最近做了一个小项目&#xff0c;这个项目是研发一款阻抗测量仪。这个阻抗测量仪可以测量人体在不同频率下的生物电阻抗&#xff0c;该设备的核心是模拟电路&#xff0c;技术难点是减小模拟电路噪声。该项目前前忙了2个多月&#xff0c;借着研发这个项目的机会把自己掌…

ivrobot乐高EV3 鲸鱼 能力风暴自制遥控手柄库文件和编程样例 使用指南

编程示例&#xff1a; 资源下载链接&#xff1a; https://download.csdn.net/download/abilix_tony/88739582 EV3 mindstorms能用基础版和高阶版&#xff08;条形编程界面&#xff09; EV3 classroom只能用基础版 &#xff08;scratch模块形状编程界面&#xff09; 请根据使…

WEB前端人机交互导论实验-实训2格式化文本、段落与列表

1.项目1 文本与段落标记的应用&#xff1a; A.题目要求: B.思路&#xff1a; &#xff08;1&#xff09;首先&#xff0c;HTML文档的基本结构是通过<html>...</html>标签包围的&#xff0c;包含了头部信息和页面主体内容。 &#xff08;2&#xff09;在头部信息…

【AI的未来 - AI Agent系列】【MetaGPT】2. 实现自己的第一个Agent

在MetaGPT中定义的一个agent运行示例如下&#xff1a; 一个agent在启动后他会观察自己能获取到的信息&#xff0c;加入自己的记忆中下一步进行思考&#xff0c;决定下一步的行动&#xff0c;也就是从Action1&#xff0c;Action2&#xff0c;Action3中选择执行的Action决定行动…

ADSelfService Plus 推出离线多因素身份验证以提升远程工作安全性

采用先进验证方法&#xff0c;确保在任何时间、地点或连接问题下对业务数据的合法访问即使远程用户未连接到身份验证服务器或互联网&#xff0c;也可通过MFA安全认证。 MFA 得克萨斯州德尔瓦雷 — 2023年5月3日 — Zoho Corporation 旗下的企业IT管理部门ManageEngine今日宣布…

抖音小店无货源爆单技巧大公开!教你如何与达人合作!

大家好&#xff0c;我是电商花花。 现在越来越多的人开始关注抖音小店电商&#xff0c;尝试着做抖音小店&#xff0c;我们做抖音小店除了要选品之外&#xff0c;我们还要学会找达人合作&#xff0c;让达人帮我们带货出单。 今天给大家讲一下如何找达人合作带货&#xff0c;如…

【AIGC】AnimateDiff:无需定制化微调的动画化个性化的文生图模型

前言 Animatediff是一个有效的框架将文本到图像模型扩展到动画生成器中&#xff0c;无需针对特定模型进行调整。只要在大型视频数据集中学习到运动先验知识。AnimateDiff就可以插入到个性化的文生图模型中&#xff0c;与Civitai和Huggingface的文生图模型兼容&#xff0c;也可…

polar CTF CB链

一、题目 二、解答 1、通过jar包&#xff0c;可以看到/user路由下有反序列化操作 看到存在commons-beanutils依赖且版本为1.9.2&#xff0c;可利用CB链Getshell。 使用ysoserial项目中的CommonsBeanutils1链写一个POC&#xff0c;注意确保ysoserial项目中的pom.xml中的comm…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux网络编程第一天-socket编程(物联技术666)

更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。 物联技术666-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式培训笔记,嵌入式硬件,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机领域.https://blog.csdn.net/weixin_3980490…

8.1 Centos安装部署Redis

文章目录 前言一、下载Redis二、编译Redis三、配置redis.conf四、启动Redis服务端五、启动Redis客户端测试前言 本文将手把手演示在CentOS7上安装部署Redis。 一、下载Redis 可以使用wget命令进行下载,这里下载到/app目录 wget http://download.redis.io/releases/redis-5.…