This page is still under evolution
Software regressions cost a lot of time and energy to fix. Changes happen; they are a part of life. But It depresses me much to see a well written piece of software suddenly stop working due to a change that nobody could foresee. What really hurts is that, often, the bug surfaces much later after the guilty change has been committed. Hence, it is a worthwhile to spend some time to try and mitigate the problem.
The approaches that I have seen fall into these three broad categories:
- Continuous policing
- Single line of development, post-commit verification
- Branched development, pre-commit verification
I will first describe each of the approaches, then list their pros and cons as I see them, and then dish out my own subjective analysis. You have been warned :^)