You expect your software to function properly, on the basis of the programming rules that the software manufacturer or you have put into it. At a certain moment a system can become so complex, that you can not rely on it for a full 100 percent; errors creep in. When you are implementing new versions of software, you can ask yourself: is everything still working properly? To ensure quality you can continuously check the functioning of the system with application controls.