|
1 | | -# End-to-End Testing Project Maturity Model |
| 1 | +# System Testing Maturity Model |
2 | 2 |
|
3 | 3 | [](https://github.com/smartcontractkit/chainlink-testing-framework/actions/workflows/framework-golden-tests.yml) |
4 | 4 | [](https://github.com/smartcontractkit/chainlink-testing-framework/actions/workflows/framework-golden-tests.yml) |
5 | 5 | [](https://github.com/smartcontractkit/chainlink-testing-framework/actions/workflows/framework-golden-tests.yml) |
6 | 6 | [](https://github.com/smartcontractkit/chainlink-testing-framework/actions/workflows/framework-golden-tests.yml) |
7 | 7 | [](https://github.com/smartcontractkit/chainlink-testing-framework/actions/workflows/framework-golden-tests.yml) |
8 | 8 |
|
| 9 | +System-level testing is where you test the entire system (all components working together) to ensure everything behaves as expected in a realistic environment: |
| 10 | +- Your own applications/services are deployed in a setup as close to production as possible (Docker, Kubernetes, cloud VMs, etc.). |
| 11 | +- Third-party dependencies (like APIs, databases, payment gateways) are replaced with high-fidelity fakes (mocks, stubs, or test versions) to avoid relying on real external systems. |
| 12 | + |
| 13 | +The goal is to catch integration issues, performance problems, and system-wide failures before going to production. |
| 14 | + |
9 | 15 | ## Level 0 |
10 | 16 |
|
11 | | -The team creates and maintains a high-level test plan outlining the components involved and test cases in any format. |
| 17 | +The team creates and maintains a high-level system test plan outlining the components involved and test cases in any format. |
12 | 18 |
|
13 | 19 | If the team decides on minimal or no manual testing and the project is trivial, they can consolidate all test cases into `go test` cases, outline the required implementations and commit templates up front. |
14 | 20 |
|
@@ -62,7 +68,7 @@ Recommended test cases: |
62 | 68 | - Stress test (limiting container resources) |
63 | 69 |
|
64 | 70 | ## Level 5 |
65 | | -The team has complete ownership of their persistent staging environment. |
| 71 | +The team has complete ownership of their persistent staging environment or also uses ephemeral environments, usually with `K8s`. |
66 | 72 |
|
67 | 73 | The team can use [components caching](https://smartcontractkit.github.io/chainlink-testing-framework/framework/components/caching.html) to reuse testing logic on staging and substitute staging environment URLs instead of an ephemeral environment. |
68 | 74 |
|
|
0 commit comments