All Projects → enspirit → webspicy

enspirit / webspicy

Licence: MIT license
A technology agnostic specification and test framework that yields better coverage for less testing effort.

Programming Languages

ruby
36898 projects - #4 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to webspicy

code-examples
Code examples from the https://sttp.site book
Stars: ✭ 19 (-54.76%)
Mutual labels:  software-engineering, software-testing
events
Repository of events for the Software Crafters Sydney community
Stars: ✭ 13 (-69.05%)
Mutual labels:  software-engineering, software-testing
StressThing
a software testing platform to perform stress test on web of things
Stars: ✭ 12 (-71.43%)
Mutual labels:  software-engineering, software-testing
tg
Trident Genesis
Stars: ✭ 14 (-66.67%)
Mutual labels:  software-engineering, software-testing
Nimoy
A testing and specification framework for Python 3
Stars: ✭ 76 (+80.95%)
Mutual labels:  test-framework, specification
ArchitectureWeekly
Architecture Weekly - links and resources to boost your knowledge and developer skills
Stars: ✭ 1,060 (+2423.81%)
Mutual labels:  software-engineering
NBi
NBi is a testing framework (add-on to NUnit) for Business Intelligence and Data Access. The main goal of this framework is to let users create tests with a declarative approach based on an Xml syntax. By the means of NBi, you don't need to develop C# or Java code to specify your tests! Either, you don't need Visual Studio or Eclipse to compile y…
Stars: ✭ 102 (+142.86%)
Mutual labels:  test-framework
donate-spec
The Missing Donation Specification for Open Source Software
Stars: ✭ 13 (-69.05%)
Mutual labels:  specification
flyteidl
Specification of the IR for Flyte workflows and tasks. Also Interfaces for all backend services. https://docs.flyte.org/projects/flyteidl/en/stable/
Stars: ✭ 27 (-35.71%)
Mutual labels:  specification
spec-pattern
Specification design pattern for JavaScript and TypeScript with bonus classes
Stars: ✭ 43 (+2.38%)
Mutual labels:  specification
portman
Port OpenAPI Specs to Postman Collections, inject test suite and run via Newman 👨🏽‍🚀
Stars: ✭ 530 (+1161.9%)
Mutual labels:  test-framework
bpmn-spec
A tool to run tests for BPMN processes on Zeebe
Stars: ✭ 28 (-33.33%)
Mutual labels:  test-framework
freesources
Repository of free resources for learning Software Development
Stars: ✭ 38 (-9.52%)
Mutual labels:  software-engineering
specifications-ITS-REST
openEHR REST API Specifications
Stars: ✭ 20 (-52.38%)
Mutual labels:  specification
refined.blog
curated list of personal blogs
Stars: ✭ 144 (+242.86%)
Mutual labels:  software-engineering
proposals
Temporal proposals
Stars: ✭ 54 (+28.57%)
Mutual labels:  specification
ceil
Helmut Hoffer von Ankershoffen experimenting with auto-provisioned RPi cluster running K8S on bare-metal
Stars: ✭ 42 (+0%)
Mutual labels:  software-engineering
SEntiMoji
data, code, pre-trained models and experiment results for "SEntiMoji: An Emoji-Powered Learning Approach for Sentiment Analysis in Software Engineering"
Stars: ✭ 27 (-35.71%)
Mutual labels:  software-engineering
awesome-backend
🚀 A curated and opinionated list of resources (English & Russian) for Backend developers | Структурированный список ресурсов для изучения Backend разработки
Stars: ✭ 826 (+1866.67%)
Mutual labels:  software-engineering
f2e-spec
Alibaba Front-end Coding Guidelines and Relevant Tools
Stars: ✭ 548 (+1204.76%)
Mutual labels:  specification

Test

Webspicy

A specification and test framework for web services seen as black-box software operations. Webspicy yields a better test coverage for a smaller testing effort.

See webspicy in action and make the tutorial on https://yourbackendisbroken.dev

Have a look at doc/*.md for vocabulary and vision as well as ROADMAP.md.

Features

  • Declarative specification of HTTP web services + their tests

  • Framework/language agnostic: webspicy is written in Ruby, but can be used to test web services for backends written in any language / framework.

  • Black box testing: webspicy focuses on web services seen as blackboxes. It has no knowledge of the implementation, and focuses on HTTP and input/output data instead. Investing in such testing makes those tests more stable and your API design better.

  • Formal and human-friendly data schema with strong data matching semantics, thanks to http://finitio.io

  • Test instrumentation and generation, based on PRE & POST contracts.

  • Extra goodness for Rubyists: being written in ruby, webspicy also supports testing Rack applications directly (through rack/test), which boosts the test suite.

  • Extra goodies: when a specification is written, it can also be used for mocking the API, generating an openapi file, etc.

Is this used on real-world cases?

Yes, webspicy is currently used on a dozen production components. Our biggest specification has 324 specification files for thousands of tests, 35% of them being generated.

Getting started with the commandline

To install webspicy on your developer computer, install ruby then:

gem install webspicy

Then execute webspicy help to see the options.

webspicy --help

Using the docker image(s)

If you just want to play with the commandline tool without having to install ruby & webspicy, you can use the docker image we provide for the commandline:

docker run enspirit/webspicy --help

If you have a specification & test suite somewhere, an easy way to run the whole suite (or integrate it in your continuous integration pipeline) is to use our :tester docker image. Just mount your test suite as a volume in /home/app and you are good to go:

docker run -v path/to/tests:/formalspec enspirit/webspicy:tester

If your plan is to test a backend that runs on your own machine (vs. publicly on the Internet or inside the default docker network), you will need to add some networking option, as shown below. Please refer to Docker documentation.

docker run -v path/to/tests:/formalspec --network=host enspirit/webspicy:tester

Contributing

Please use github issues for questions and bugs, and pull requests for submitting improvement proposals and new features.

Contributors

  • Bernard Lambeau (blambeau)
  • Louis Lambeau (llambeau)
  • Yoann Guyot (ygu)
  • Felix Holmgren (@felixyz)

Enspirit (https://enspirit.be) and Klaro App (https://klaro.cards) are both actively using, contributing and funding work on this library. Please contact Bernard Lambeau for any question.

Licence

Webspicy is distributed under a MIT Licence, by Enspirit SRL.

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