There are two fundamental approaches to verification:
- Dynamic verification, also known as Test or Experimentation - This is good for finding bugs
- Static verification, also known as Analysis- This is useful for proving correctness of a program although it may result in false positives
There are four levels of verification:
1. Component Testing: Verifying the design implementation for one software element like unit / module or a group of software elements
2. Integration Testing: Testing with orderly progression which involves the integration of various software and / or hardware elements together and tested. It continuous until the complete system has been integrated.
3. System Testing: A type of testing which tests integrated software and hardware system verification whether the system meets the specified requirements.
4. Acceptance Testing: A testing process that determines whether a system satisfies the acceptance criterion and for enabling the customer for determining whether or not to accept the system.