candidate: Depending on the scope of tests , we can categorize them in three families : " Test in the small " : a test that checks a single function or class ( Unit test ) " Test in the large " : a test that checks a group of classes , such as * Module test ( a single module ) * Integration test ( more than one module ) * System test ( the entire system ) " Acceptance test " : a formal test defined to check acceptance criteria for a software * Functional test * Non functional test ( performance , stress test ) Software verification is often confused with software validation .