All Projects → Cornutum → Tcases

Cornutum / Tcases

Licence: mit
A model-based test case generator

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Tcases

Mockoon
Mockoon is the easiest and quickest way to run mock APIs locally. No remote deployment, no account required, open source.
Stars: ✭ 3,448 (+3247.57%)
Mutual labels:  api, rest, openapi, openapi3
Openapi Generator
OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
Stars: ✭ 10,634 (+10224.27%)
Mutual labels:  api, rest, openapi, openapi3
Fastapi
FastAPI framework, high performance, easy to learn, fast to code, ready for production
Stars: ✭ 39,588 (+38334.95%)
Mutual labels:  api, rest, openapi, openapi3
Apispec
A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification)..
Stars: ✭ 831 (+706.8%)
Mutual labels:  api, openapi, openapi3
Openapi Viewer
Browse and test a REST API described with the OpenAPI 3.0 Specification
Stars: ✭ 82 (-20.39%)
Mutual labels:  api, openapi, openapi3
Kin Openapi
OpenAPI 3.0 implementation for Go (parsing, converting, validation, and more)
Stars: ✭ 776 (+653.4%)
Mutual labels:  api, openapi, openapi3
Swagger Ui
Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.
Stars: ✭ 21,279 (+20559.22%)
Mutual labels:  rest, openapi, openapi3
Widdershins
OpenAPI / Swagger, AsyncAPI & Semoasa definitions to (re)Slate compatible markdown
Stars: ✭ 856 (+731.07%)
Mutual labels:  api, openapi, openapi3
Swagger Core
Examples and server integrations for generating the Swagger API Specification, which enables easy access to your REST API
Stars: ✭ 6,898 (+6597.09%)
Mutual labels:  rest, openapi, openapi3
Fusio
Open source API management platform
Stars: ✭ 946 (+818.45%)
Mutual labels:  api, rest, openapi
Compojure Api
Sweet web apis with Compojure & Swagger
Stars: ✭ 1,056 (+925.24%)
Mutual labels:  api, rest, openapi
Vue Openapi
OpenAPI viewer component for VueJS
Stars: ✭ 66 (-35.92%)
Mutual labels:  api, openapi, openapi3
Oas Kit
Convert Swagger 2.0 definitions to OpenAPI 3.0 and resolve/validate/lint
Stars: ✭ 516 (+400.97%)
Mutual labels:  api, openapi, openapi3
Awesome Openapi3
😎 A list of awesome projects related to OpenAPI 3.0.x, curated by the community
Stars: ✭ 469 (+355.34%)
Mutual labels:  api, openapi, openapi3
Api Platform
Create REST and GraphQL APIs, scaffold Jamstack webapps, stream changes in real-time.
Stars: ✭ 7,144 (+6835.92%)
Mutual labels:  api, rest, openapi
Swagger Parser
Swagger Spec to Java POJOs
Stars: ✭ 468 (+354.37%)
Mutual labels:  rest, openapi, openapi3
Dreamfactory
DreamFactory API Management Platform
Stars: ✭ 1,148 (+1014.56%)
Mutual labels:  api, rest, openapi
Dredd
Language-agnostic HTTP API Testing Tool
Stars: ✭ 3,770 (+3560.19%)
Mutual labels:  api, openapi, openapi3
Goa
Design-based APIs and microservices in Go
Stars: ✭ 4,493 (+4262.14%)
Mutual labels:  api, rest, openapi
Oas Generator
NodeJS RESTful APIs scaffolding based OpenAPI 3.x specs using oas-tools and express.
Stars: ✭ 32 (-68.93%)
Mutual labels:  api, rest, openapi3

Tcases: A Model-Based Test Case Generator

What's New?

  • The latest version (Tcases 3.5.1) is now available at the Maven Central Repository. See How To Download Tcases for download instructions.

  • Tcases 3.5.1 provides improvements to Tcases for OpenAPI. See the release notes for details.

  • Having trouble with Tcases? Check out these tips.

  • Subscribe to the Tcases Forum group to get notifications and share experiences with other Tcases users.

What Does It Do?

Tcases is a tool for designing tests. It doesn't matter what kind of system you are testing -- UI, command line, REST-ful API, or backend. Nor does it matter what level of the system you are testing -- unit, subsystem, or full system. You can use Tcases to design your tests in any of these situations. With Tcases, you define the input space for your system-under-test and the level of coverage that you want. Then Tcases generates a minimal set of test cases that meets your requirements.

Tcases is primarily a tool for black-box test design. For such tests, the concept of "coverage" is different from structural testing critieria such as line coverage, branch converage, etc. Instead, Tcases is guided by coverage of the input space of your system.

Tcases gives you a way to define the input space for your system in a form that is concise but comprehensive. Then Tcases allows you to control the number of test cases in your sample subset by specifying the level of coverage you want. You can start with a basic level of coverage, and Tcases will generate a small set of test cases that touches every significant element of the input space. Then you can improve your tests by selectively adding coverage in specific high-risk areas. For example, you can specify pairwise coverage or higher-order combinations of selected input variables.

How Does It Work?

First, you create a system input definition, a document that defines your system as a set of functions. For each system function, the system input definition defines the variables that characterize the function input space. If you are testing a Web service API, you can even generate a system input definition automatically from an OpenAPI spec.

Then, you can create a generator definition. That's another document that defines the coverage you want for each system function. The generator definition is optional. You can skip this step and still get a basic level of coverage.

Finally, you run Tcases. Tcases is a Java program that you can run from the command line or using the Tcases Maven Plugin. The command line version of Tcases comes with built-in support for running using a shell script or an ant target. Using your input definition and your generator definition, Tcases generates a system test definition. The system test definition is a document that lists, for each system function, a set of test cases that provides the specified level of coverage. Each test case defines a specific value for every function input variable. Tcases generates not only valid input values that define successful test cases but also invalid values for the tests cases that are needed to verify expected error handling.

Of course, the system test definition is not something you can execute directly. (Unless it was derived automatically from an OpenAPI spec!) But it follows a well-defined schema, which means you can use a variety of transformation tools to convert it into a form that is suitable for testing your system. For example, Tcases comes with a built-in transformer that converts a system test definition into a Java source code template for a JUnit or TestNG test class.

Get Started!

Contributors

Thanks to the following people, who have contributed significant improvements to Tcases.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].