Formal verification (https://en.wikipedia.org/wiki/Formal_verification) can be used to prove the correctness of computer software, and eventually most critical software will slowly move towards being formally verified. That however means that we need to get better at creating the specs for how software _should_ operate, so we can actually test that.