All Projects → EMResearch → Evomaster

EMResearch / Evomaster

Licence: lgpl-3.0
A tool for automatically generating system-level test cases. Currently targeting REST APIs.

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects

Projects that are alternatives of or similar to Evomaster

Serverest
APIs REST simulando loja virtual para servir de estudo de testes de API de forma manual ou automatizada
Stars: ✭ 223 (+47.68%)
Mutual labels:  rest, api-rest, api-testing
Js Client
A Open-API derived JS + Node.js API client for Netlify
Stars: ✭ 170 (+12.58%)
Mutual labels:  rest, api-rest
Mobx Rest
REST conventions for Mobx
Stars: ✭ 164 (+8.61%)
Mutual labels:  rest, api-rest
Httpie
As easy as /aitch-tee-tee-pie/ 🥧 Modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. https://twitter.com/httpie
Stars: ✭ 53,052 (+35033.77%)
Mutual labels:  rest, api-testing
Appkernel
API development made easy: a smart Python 3 API framework
Stars: ✭ 152 (+0.66%)
Mutual labels:  rest, api-rest
Just Api
💥 Test REST, GraphQL APIs
Stars: ✭ 768 (+408.61%)
Mutual labels:  rest, api-testing
Graphql2rest
GraphQL to REST converter: automatically generate a RESTful API from your existing GraphQL API
Stars: ✭ 181 (+19.87%)
Mutual labels:  rest, api-rest
reky
Reky is an opensource API development platform. It automatically visualizes API response with outstanding graphs & tables.
Stars: ✭ 22 (-85.43%)
Mutual labels:  api-rest, api-testing
Json Server Heroku
Deploy json-server to Heroku & Azure 🆙 🆓
Stars: ✭ 310 (+105.3%)
Mutual labels:  rest, api-rest
http-rider
Simple and Powerful desktop client for working with JSON APIs
Stars: ✭ 27 (-82.12%)
Mutual labels:  api-rest, api-testing
Mobile Security Framework Mobsf
Mobile Security Framework (MobSF) is an automated, all-in-one mobile application (Android/iOS/Windows) pen-testing, malware analysis and security assessment framework capable of performing static and dynamic analysis.
Stars: ✭ 10,212 (+6662.91%)
Mutual labels:  rest, api-testing
Hoppscotch
👽 Open source API development ecosystem https://hoppscotch.io
Stars: ✭ 34,569 (+22793.38%)
Mutual labels:  api-rest, api-testing
Gemini
Model Driven REST framework to automatically generate CRUD APIs
Stars: ✭ 138 (-8.61%)
Mutual labels:  rest, api-rest
Restclient.net
.NET REST Client Framework for all platforms
Stars: ✭ 143 (-5.3%)
Mutual labels:  rest
Koa Restful Boilerplate
Koa 2 RESTful API boilerplate
Stars: ✭ 146 (-3.31%)
Mutual labels:  rest
Javadevjournal
Source code for the tutorials published on the Javadevjournal site.
Stars: ✭ 141 (-6.62%)
Mutual labels:  rest
Evolutionsimulator
Evolution Simulator with Box2D
Stars: ✭ 143 (-5.3%)
Mutual labels:  evolutionary-algorithms
Sp Rest Proxy
🌐 SharePoint REST API Proxy for local Front-end development tool-chains
Stars: ✭ 147 (-2.65%)
Mutual labels:  rest
Node Express Mongoose Passport Jwt Rest Api Auth
Node, express, mongoose, passport and JWT REST API authentication example
Stars: ✭ 146 (-3.31%)
Mutual labels:  rest
Chatbotwidget
ChatBot UI to integrate with Rasa's REST channel
Stars: ✭ 142 (-5.96%)
Mutual labels:  rest

EvoMaster: A Tool For Automatically Generating System-Level Test Cases

Maven Central javadoc CI CircleCI codecov

Summary

EvoMaster (www.evomaster.org) is a tool that automatically generates system-level test cases. Internally, it uses an Evolutionary Algorithm and Dynamic Program Analysis to be able to generate effective test cases. The approach is to evolve test cases from an initial population of random ones, trying to maximize measures like code coverage and fault detection.

Key features:

  • At the moment, EvoMaster targets RESTful APIs compiled to JVM 8 and 11 bytecode. Might work on other JVM versions, but we provide NO support for it.

  • The APIs must provide a schema in OpenAPI/Swagger format (either v2 or v3).

  • The tool generates JUnit (version 4 or 5) tests, written in either Java or Kotlin.

  • Fault detection: EvoMaster can generate tests cases that reveal faults/bugs in the tested applications. Different heuristics are employed, like checking for 500 status codes and mismatches from the API schemas.

  • Self-contained tests: the generated tests do start/stop the application, binding to an ephemeral port. This means that the generated tests can be used for regression testing (e.g., added to the Git repository of the application, and run with any build tool such as Maven and Gradle).

  • Advanced whitebox heuristics: EvoMaster analyses the bytecode of the tested applications, and uses several heuristics such as testability transformations and taint analysis to be able to generate more effective test cases.

  • SQL handling: EvoMaster can intercept and analyse all communications done with SQL databases, and use such information to generate higher code coverage test cases. Furthermore, it can generate data directly into the databases, and have such initialization automatically added in the generated tests. At the moment, EvoMaster supports H2 and Postgres databases.

  • Blackbox testing mode: can run on any API (regardless of its programming language), as long as an OpenAPI schema is provided. However, results will be worse than whitebox testing (e.g., due to lack of bytecode analysis).

  • Authentication: we support auth based on authentication headers and cookies. However, at the moment we do not support OAuth.

Known limitations:

  • To be used for whitebox testing, users need to write a driver manually. We recommend to try blackbox mode first (should just need a few minutes to get it up and running) to get an idea of what EvoMaster can do for you.

  • Execution time: to get good results, you might need to run the search for several hours. We recommend to first try the search for 10 minutes, just to get an idea of what type of tests can be generated. But, then, you should run EvoMaster for something like between 1 and 24 hours (the longer the better, but it is unlikely to get better results after 24 hours).

  • External services (e.g., other RESTful APIs): currently there is no support for them (e.g., to automatically mock them). It is work in progress.

  • NoSQL databases (e.g., MongoDB): currently no support. It is work in progress.

  • Failing tests: the tests generated by EvoMaster should all pass, and not fail, even when they detect a fault. In those cases, comments/test-names would point out that a test is revealing a possible fault, while still passing. However, in some cases the generated tests might fail. This is due to the so called flaky tests, e.g., when a test has assertions based on the time clock (e.g., dates and timestamps). There is ongoing effort to address this problem, but it is still not fully solved.

Videos

Hiring

Each year we usually have funding for postdoc and PhD student positions to work on this project (in Oslo, Norway). For more details on current vacancies, see our group page at AISE Lab.

Documentation

Funding

EvoMaster has been funded by:

  • 2020-2025: a 2 million Euro grant by the European Research Council (ERC), as part of the ERC Consolidator project Using Evolutionary Algorithms to Understand and Secure Web/Enterprise Systems.
  • 2018-2021: a 7.8 million Norwegian Kroner grant by the Research Council of Norway (RCN), as part of the Frinatek project Evolutionary Enterprise Testing.

This project has received funding from the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement No 864972).

License

EvoMaster's source code is released under the LGPL (v3) license. For a list of the used third-party libraries, you can directly see the root pom.xml file. For a list of code directly imported (and then possibly modified/updated) from other open-source projects, see here.

YourKit supports open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.

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].