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 UnitTest''''''s. The most important features of PinningTests are: 1. Give an obvious, definitive pass or fail result. 2. Covers all relevant scenarios that you might break. Professional testers get really good at this; ask them to help. 3. Faster is better. Non-requirements for PinningTests: * Robustness. Professional testers get really good at this. Ask them to refrain. 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. * Long-lived. The goal is to hold behavior constant for ''just long enough'' to ReFactor. * Clean code. Hacking the test together is OK. For example, ** Use the C preprocessor to redirect troublesome API calls to write to a log instead. ** Edit your HOSTS file to hijack accessing a network resource