One response to the question is: "you're never done testing; the burden simply shifts from you (the software engineer) to the end user." Every time the user executes a computer program, the program is being tested. This sobering fact underlines the
importance of other software quality assurance activities. Another response (somewhat
cynical but nonetheless accurate) is: "you're done testing when you run out of
time or you run out of money.