Encoding the boundary within which we want our program to lie is a great concept.
Maybe tests are like a rough dotted line around the boundary. Having a well typed API or module signature is another useful tool. It gives us some strict but shallow boundaries. They don't get into the details of which values shall be involved just what sorts of values go in and out and each junction.
It's also very valuable to think about not just the entropy space of our programs but their inputs - both user input and dependencies. We often forget about all the possible entropy that can affect the behavior of our software. A build failing when there's a space in the directory path. Tests failing on french computers because of locale issues, or if your program is run [a bit past midnight on friday](https://www.reddit.com/r/linux/comments/7eiist/why_does_man_print_gimme_gimme_gimme_at_0030/dq59bme/).
The reproducible builds project is another kind of attempt at reducing entropy, providing barriers and boundaries within which we can get some order among the chaos of 2^n.