{"id":25776602,"url":"https://github.com/Cornutum/tcases","last_synced_at":"2025-02-27T06:06:46.480Z","repository":{"id":28702948,"uuid":"32223373","full_name":"Cornutum/tcases","owner":"Cornutum","description":"A model-based test case generator","archived":false,"fork":false,"pushed_at":"2025-02-20T00:56:18.000Z","size":11274,"stargazers_count":225,"open_issues_count":6,"forks_count":55,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-02-20T01:37:24.114Z","etag":null,"topics":["api","combinatorial-testing","java","model-driven","openapi","openapi3","rest","testing","testing-tool"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cornutum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-03-14T17:22:38.000Z","updated_at":"2025-02-14T07:08:41.000Z","dependencies_parsed_at":"2024-02-13T02:29:09.919Z","dependency_job_id":"f37579e4-6977-4e16-b6af-ff50467b0109","html_url":"https://github.com/Cornutum/tcases","commit_stats":{"total_commits":1061,"total_committers":9,"mean_commits":"117.88888888888889","dds":0.5202639019792649,"last_synced_commit":"8895c8d1726c55bd2b327f263663383721918bb7"},"previous_names":[],"tags_count":51,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cornutum%2Ftcases","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cornutum%2Ftcases/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cornutum%2Ftcases/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cornutum%2Ftcases/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cornutum","download_url":"https://codeload.github.com/Cornutum/tcases/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240987435,"owners_count":19889334,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","combinatorial-testing","java","model-driven","openapi","openapi3","rest","testing","testing-tool"],"created_at":"2025-02-27T06:01:27.432Z","updated_at":"2025-02-27T06:06:46.475Z","avatar_url":"https://github.com/Cornutum.png","language":"Java","funding_links":[],"categories":["测试"],"sub_categories":[],"readme":"# Tcases: A Model-Based Test Case Generator #\n\n[![Maven](https://img.shields.io/badge/maven-4.0.5-green.svg)](https://search.maven.org/search?q=tcases-shell)\n[![Javadoc](https://img.shields.io/badge/javadoc-4.0.5-green.svg)](https://javadoc.io/doc/org.cornutum.tcases/tcases-shell)\n\n## What's New? ##\n  * The latest version ([Tcases 4.0.5](ReleaseNotes.md#405)) is now available at the Maven Central Repository.\n    See [*How To Download Tcases*](HowToDownload.md) for download instructions.\n\n  * Having trouble with Tcases? Check out [these tips](./Troubleshooting-FAQs.md).\n\n  * Got a question? Need some guidance? Start a [discussion](https://github.com/Cornutum/tcases/discussions).\n\n## What Does It Do? ##\n\nTcases is a tool for designing tests. It doesn't matter what kind of system you are testing -- UI, command line,\n[REST-ful API](tcases-openapi/README.md#tcases-for-openapi-from-rest-ful-to-test-ful), or backend.  Nor does it matter\nwhat level of the system you are testing -- unit, subsystem, or full system. You can use Tcases to design your tests in any of\nthese situations. With Tcases, you define the input space for your system-under-test and the level of coverage that you\nwant. Then Tcases generates a minimal set of test cases that meets your requirements.\n\nTcases is primarily a tool for black-box test design. For such tests, the concept of \"coverage\" is different from structural\ntesting criteria such as line coverage, branch coverage, etc. Instead, Tcases is guided by coverage of the input space of your\nsystem.\n\nTcases gives you a way to define the input space for your system in a form that is concise but comprehensive. Then Tcases allows\nyou to control the number of test cases in your sample subset by specifying the level of coverage you want. You can start with a\nbasic level of coverage, and Tcases will generate a small set of test cases that touches every significant element of the input\nspace. Then you can improve your tests by selectively adding coverage in specific high-risk areas. For example, you can specify\npairwise coverage or higher-order combinations of selected input variables.\n\n## How Does It Work? ##\n\nFirst, you create a system input definition, a document that defines your system as a set of functions. For each system\nfunction, the system input definition defines the variables that characterize the function input space. If you are testing a Web\nservice API, you can even [generate a system input definition automatically](tcases-openapi/README.md#tcases-for-openapi-from-rest-ful-to-test-ful)\nfrom an OpenAPI definition.\n\nThen, you can create a generator definition. That's another document that defines the coverage you want for each system\nfunction. The generator definition is optional. You can skip this step and still get a basic level of coverage.\n\nFinally, you run Tcases. Tcases is a Java program that you can run from the command line or using the\n[Tcases Maven Plugin](http://www.cornutum.org/tcases/docs/tcases-maven-plugin/). The command line version of Tcases comes with built-in\nsupport for running using a shell script or an ant target. Using your input definition and your generator definition, Tcases\ngenerates a system test definition. The system test definition is a document that lists, for each system function, a set of test\ncases that provides the specified level of coverage. Each test case defines a specific value for every function input\nvariable. Tcases generates not only valid input values that define successful test cases but also invalid values for the tests\ncases that are needed to verify expected error handling.\n\nOf course, the system test definition is not something you can execute directly. (Unless it was\n[derived automatically from an OpenAPI definition](tcases-openapi/README.md#how-do-you-run-generated-api-test-cases)!)\nBut it follows a well-defined schema, which means you can use a variety of transformation tools to convert it into a form that\nis suitable for testing your system. For example, Tcases comes with a built-in transformer that converts a system test\ndefinition into a Java source code template for a JUnit or TestNG test class.\n\n## Get Started! ##\n\n  * **The Lowdown**\n    * [Tcases: The Complete Guide](./Tcases-Guide.md#tcases-the-complete-guide)\n    * [Tcases for OpenAPI](tcases-openapi/README.md#tcases-for-openapi-from-rest-ful-to-test-ful): Testing a REST-ful API? Generate test cases directly from your OpenAPI v3 definition.\n    * [The Tcases Maven Plugin](http://www.cornutum.org/tcases/docs/tcases-maven-plugin/)\n\n  * **Helpful Guides**\n    * [How To Download Using Maven](HowToDownload.md)\n    * [How To Setup a Tcases Web Service](./Tcases-Web-Service.md)\n    * [Using The Tcases API](./Using-Tcases-API.md)\n    * [Troubleshooting FAQ](./Troubleshooting-FAQs.md#troubleshooting-faqs)\n    * [Release Notes](ReleaseNotes.md)\n\n  * **More Info**\n    * [Model-Driven Testing Using Tcases](ModelDrivenTestingForAgileTeams.md)\n    * Javadoc: [Tcases API](http://www.cornutum.org/tcases/docs/api/index.html)\n\n## Contributors ##\n\nThanks to the following people, who have contributed significant improvements to Tcases.\n\n  * [Kerry Kimbrough](https://github.com/kerrykimbrough) (project founder)\n  * [Juglar](https://github.com/juglar)\n  * [Thibault Kruse](https://github.com/tkruse)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCornutum%2Ftcases","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCornutum%2Ftcases","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCornutum%2Ftcases/lists"}