A SimpleMinded automated test that locks down the behavior of existing, otherwise un-tested code.
For example, run an algorithm and collect logs as a baseline. Each time you make a change, run the program again and compare the logs against the baseline. As long as there is no difference, you have some confidence that things are still working.
Under the safe umbrella of PinningTests, you can begin to ReFactor and create UnitTests.
The most important features of PinningTests are:
Non-requirements for PinningTests:
Maybe you don't need to run your tests in every environment that you ship. For a GUI, it's fine to record mouse clicks and keystrokes.