Thoughts on Tests
Test Goals
Decouple
With the "Tame the Monolith" project, our long-term vision is to make apps self-contained and loosely coupled, with the eventual goal of moving (some) into separate repos, and possibly into independent deployment units if desired.
To achieve this end, we need to decouple our tests so that tests within a particular self-contained app are just for that app.
Reduction
The "Tame the Monolith" project forces us to proactively define seams and boundaries and therefore, also ownership of tests. In so doing, we hope to assess individual tests and determine whether they provide any additional value over other tests. This directly addresses an existing developer pain point with an over abundance of tests that need to be maintained.
This reduction process would be part of a deeper cleaning effort and can be done on an app-by-app basis, with adequate tools and best practices.
Proposal for discussion
Extracted from a previous brainstorming session (edx-platform Code Structure: Hackathon XIV):