The efforts of the software developer teams are focused on conducting tests to detect different types of errors in a systematic way, with the least amount of cost, time and effort.