All Projects β†’ lordofthejars β†’ diferencia

lordofthejars / diferencia

Licence: Apache-2.0 license
Tool to detect regressions between services

Programming Languages

go
31211 projects - #10 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to diferencia

kmval
A Kubernetes Kustomize Manifest Validator
Stars: ✭ 24 (-52.94%)
Mutual labels:  testing-tools
awesome-cypress
πŸŽ‰ A curated list of awesome things related to Cypress
Stars: ✭ 274 (+437.25%)
Mutual labels:  testing-tools
pymongo inmemory
A mongo mocking library with an ephemeral MongoDB running in memory.
Stars: ✭ 25 (-50.98%)
Mutual labels:  testing-tools
oz
Oz is a behavioral web-ui testing framework developed to reduce test maintenance by using a predictive model rather than a scriptive model when writing tests.
Stars: ✭ 23 (-54.9%)
Mutual labels:  testing-tools
vividus-starter
VIVIDUS-based test project template
Stars: ✭ 43 (-15.69%)
Mutual labels:  testing-tools
mock-hls-server
Fake a live/event HLS stream from a VOD one. Useful for testing. Supports looping.
Stars: ✭ 61 (+19.61%)
Mutual labels:  testing-tools
divo
Docker Integration and Validation Orchestrator for Elixir with Mix
Stars: ✭ 31 (-39.22%)
Mutual labels:  testing-tools
json-crate
πŸ“¦ json-crate: a minimalistic promise-based json database
Stars: ✭ 29 (-43.14%)
Mutual labels:  testing-tools
meteorman
A DDP client with GUI (The Postman for Meteor)
Stars: ✭ 51 (+0%)
Mutual labels:  testing-tools
ruby-dns-mock
DNS mock server written on πŸ’Ž Ruby. Mimic any DNS records for your test environment with fake DNS server.
Stars: ✭ 50 (-1.96%)
Mutual labels:  testing-tools
selenium-auto-wait
Utility to automatically manage all web element waits and enables to write wait-free selenium tests.
Stars: ✭ 31 (-39.22%)
Mutual labels:  testing-tools
SHAFT ENGINE
SHAFT is an MIT licensed test automation engine. Powered by best-in-class frameworks like Selenium WebDriver, Appium & RestAssured it provides a wizard-like syntax to increase productivity, and built-in wrappers to eliminate boilerplate code and to ensure your tests are extra stable and your results are extra reliable.
Stars: ✭ 170 (+233.33%)
Mutual labels:  testing-tools
network image mock
Mock response for Image.network to help Flutter widget tests pass.
Stars: ✭ 22 (-56.86%)
Mutual labels:  testing-tools
toster
DSL framework for testing Android apps
Stars: ✭ 31 (-39.22%)
Mutual labels:  testing-tools
react-router-testing-utils
A collection of utilities to test React Router with React Testing Library (Work in progress 🚧)
Stars: ✭ 34 (-33.33%)
Mutual labels:  testing-tools
react-jsdom
Render React components to actual DOM nodes in Node.js
Stars: ✭ 31 (-39.22%)
Mutual labels:  testing-tools
scenarioo
Scenarioo Docu Viewer for Automated Documentation using UI/E2E-Tests
Stars: ✭ 62 (+21.57%)
Mutual labels:  testing-tools
distest
A library used to do integration testing on discord bots
Stars: ✭ 29 (-43.14%)
Mutual labels:  testing-tools
DebugWindow
δΈ€δΈͺεœ¨ηœŸζœΊδΈŠζ΅‹θ―•ζ—Άζ–ΉδΎΏζŸ₯ηœ‹θΎ“ε‡Ίζ—₯εΏ—ηš„ε°ε·₯具。(A debug tool which helps you view the console logs on the device when you test you APP.)
Stars: ✭ 36 (-29.41%)
Mutual labels:  testing-tools
blackhole
Blackhole is an MTA written on top of asyncio, utilising async and await statements that dumps all mail it receives to /dev/null.
Stars: ✭ 61 (+19.61%)
Mutual labels:  testing-tools

Diferencia

Build Status

When building a service-based architecture where each service might be deployed independently, it is important to validate that the new version of the service is still compatible with the old version and this new version is able to produce a response that it is still processable by any consumer.

One way of resolving this problem is by using contracts and contract testing. You define a contract (or agreement) on how the API should look like to communicate between consumer and provider services, so when a new version of the service (either consumer or provider) is released, you check it meets the contract. If not then you know that something has been broken, and you need to fix it before you release the service. One of these libraries for writing contract tests is Pact.

But contract tests are not infallible, and in our experience, there are some drawbacks that might occur.

  • You can implement a new service endpoint but not defining it in the contract. Since contract does not know about its existence, this endpoint is never validated by contract test.

  • If you have already implemented several services, then it is really painful to start writing contracts for already developed services that you know that they are working. So usually you end up by validating this manually.

  • In our experience, contract tests are not widely adopted and companies rely on manual testing to validate that services can communicate with each other without any problem.

In this sense, Diferencia helps you in mitigating these problems. Obviously, the best approach would be contract tests + Diferencia, but if you cannot do contract tests or you are into manual testing for validating compatibility between services, then definitely Diferencia is your tool.

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