Unit tests are NOT enough
Unit tests are NOT enough. Microservice components and contract tests are NOT enough. We need Acceptance Tests too.
Unit tests are NOT enough.
Microservice components and contract tests are NOT enough.
They are useful for developers to get feedback if parts of the system work, but they don't give feedback if the whole system works together.
Unit Tests give feedback if some units (e.g. classes, functions) exhibit desired behavior
Component Tests give feedback if some components (e.g. Frontend, Microservice #1, Microservice #2, etc) exhibit desired behavior
Contract Tests give feedback on the microservices can communicate and whether they are syntactically compatible.
All of these can pass, but Acceptance Tests could fail because one team perhaps had a misunderstanding regarding the expectation for their own component behavior, or the contracts were syntactically compatible but not semantically compatible.
Only Acceptance Tests can catch those issues.
That's why you need Acceptance Tests as the gatekeeper before releasing.
Acceptance Tests are about specifying behavior from the end user’s perspective.
That’s why Acceptance Tests are a must-have in a Continuous Delivery Pipeline. They evaluate whether the system is releasable.
Do NOT release without Acceptance Tests.