Forced-error testing is a kind of software testing that forces the creation of conditions for the software, which cause errors.
Its purpose is to find any error conditions that were improperly handled or not detected at all. Software bugs conditions must be handled properly. Remember, that for any valid state, there is always a void condition.
It is difficult to get a complete list of error conditions. Ways of drawing up such list of conditions require the performance of the following actions:
- Communication with developers
- A list of error messages from the engineers
- Using specifications data
- Applying the experience
- Verification of the string data in resource file
- Analysis of each potential case, which can lead to errors
- Use of typical valid/invalid input data
- Implementation of tools to extract test strings out of the sources
- Creation an error state according to test cases. This can be implemented through incorrect input, disconnecting from the net, etc.
- Checking the software bugs detection logic. Detection is performed through validation. Test cases should be directed to the shortcomings of the validation logic.
- Verifying the software bugs handling logic. Check whether the application is able to handle the error condition yourself correctly, whether the application allows the user to correct the error, whether the system recovers from errors itself. This can be done either on the client side or on the server side.
- Verifying the software bugs communication. Check whether an error message appears when error condition, whether it is made correctly and whether the message is clear to the user.
- Checking for possible problems that may be associated with the occurrence of the error condition.
The purpose of the forced-error test is to create error conditions for the application. At the first phase of testing you should make sure that the error message was received by the client. At the second stage make sure that the error message is correct. It must be user friendly and provide information on conflict resolution.
There are many ways to gather error condition information. The best way is to get a list of preliminary errors from the developers. The additional errors can be detected during the testing process, based on past experience of testing or by chance.
A full forced-error testing can be followed by several builds, caused by a significant work of a testing team. Only by creating a numerical unexpected error conditions, you can define the conditions that were not known before.