It can be difficult to test every possible outcome and even the most rigorous of testing may not catch every error in the program. There are many examples of situations where new computer systems or software upgrades have caused major problems because they have not been tested properly.
Testers actively try to break the system, pushing it to extremes to test its strength and resilience.
Some organisations employ hackers to break into their own systems to test their security. These 'white hat hackers' see if they can break a piece of software before it is ready to be released to the public.
Penetration tests are performed by simulating an attack on the software to see if there are any weaknesses that can be exploited.