Model Checking, Tla Plus, TLC, Java, Concurrency.
is an approach that has been applied quite successfully in industry. It is much more powerful than randomized simulations, and much easier to carry out than formal proofs. Model checking works by basically enumerating all the possible behaviors of a system, and by checking that they all have the