4. Project V1 - monolith version
- Fuel control / GPS position system
- in-house fuel control hardware
- TomTom GPS position system as data gateway
- Monolith architecture for data processing via
WebFleet API
- UI customers area
5. Classic monolith testing
- Stable 3rd party API
- Classic testing requirements and approaches
- Data flows modeling before hardware is functional
6. Project’s evolution V2
- New 2nd sub-system for agriculture
- Extendable to 3rd sub-system for industry
- Own data processing system via GSM instead of
TomTom
- Universal hardware for all
sub-systems
- Hardware shop
7. End-2-end testing for data routing feature
- Mock entry point API with emulated flow
- Required etalon data fixtures preload or setup via QA API
- Setup test infrastructure with all services deployed
- Execute test
- Assert all expected behavior
14. What is a solution?
- Consumer-driven contracts
- Provider-driven contracts
15. https://docs.pact.io
“Do you set your house on fire
to test your smoke alarm?”
Pact PHP: https://github.com/pact-foundation/pact-php
16. Each consumer captures their expectations of the provider in a separate contract
Consumer-Driven Contracts
17. Pact framework
- Pact is contract testing framework
- Contract is a collection of
interactions.
- Each interaction consist of
expected request and minimal
expected response.
50. CI / Jenkins - Control backward compatibility by versions and tags
New consumer 1.0.2 changed schema expectation
New provider 1.0.2 changed provided schema
Provider 1.0.2 and Consumer 1.0.2 should be deployed simultaneously only!