Testing is a key part of the software development cycle. It is often planned out before the programming has even started. There are two basic types of testing:
- Final Testing
- Iterative Testing
Final Testing is carried out at the end of the development. All the required features (of the program) have been added in and the program is tested against the initial requirements. This creates a program that meets the requirements as stated at the start of the project. However this finished program might not be what the program is actually intended to do as initial requirements are not always precise enough, and people often modify what they want as things are developed.
Iterative Testing helps avoid this problem (mentioned above). A program goes through the development cycle a few times, and it is tested and checked with the customer at each stage. As features are added they are tested to make sure that a) they work and b) they are actually what is needed. This approach can lead to a much more suitable product but it can also take a lot longer as the requirements are adjusted.
Eg: A field for an Integer between 1 and 10
|1||Extreme / Boundary|
Extreme / Boundary
|"Dog"||Erroneous (not a number)|
|3.4||Erroneous (not an integer)|
When testing you need to use three types of test data:
- Normal Data - things that the user is likely to input
- Extreme or boundary Data - values at the very limit of what should be allowed
- Erroneous Data - data that shouldn't be allowed, should be rejected - should cause an error.