# Testing

Software testing is the activity of checking software quality under a test. It is carried to ensure that the software system is free of errors. It helps to detect bugs, errors, missing requirements, etc.

Testing is all about make sure that the software behave as expected. That the software will always responds in a predictable way every time.

👍🏾 Chevere tests are located at Chevere\Tests namespace

# Design decisions

# Testing Framework

Tests should be always compatible with the latest PHPUnit production release.

# Required testing

Unit testing, Integration testing and Functional testing are required.

# Test Doubles

  • Mocks must be used for external dependencies
  • Mocks must be avoided for own components

👴🏾 Mocking is avoided in own components because it doesn't trigger any trade-off in our context

# Coverage

All the code must be covered, code coverage must be equals to 100%.

# Conventions

  • Must be named with Test suffix
  • Must be located at Tests/<component>/