Co-evolving systems identify tightly coupled artifacts that are characterized by high interdependence, such as production code and test code.
In well-tested software systems, tests can even get larger than production code.
Co-evolving systems should be evolved together, as a whole.
- Cause of co-evolution: changes in production code that can impact multiple tests so that a developer may have to correct them in consequence
- Repair of the co-evolution: the manual correction to restore the functional synchronization between the two systems