So let’s understand meaning of such words.
It denotes the potential of a problem, but it is not necessary that it will occur. Level of risk differ from application to application
When we identify such risk we need to analyze its impact if it occurred.
For e.g. We cannot predict the occurrence of earthquake. But while constructing any building we need to analyze its potential. Here earthquake may come as a risk. So we need to analyze its all the factors such as its magnitude, area
When we use any software or application wrongly and it does not behave as expected then it is called as error
When design and build of any application or software has mistaken it is referred as defects or bug or fault.
If the design is not as per the clients requirements , it occur as defect
Due to occurrence of defect in the software or application it does not work as expected then it is referred as failure. Not all defects results in failures. It depends on the type of defect occurred
Testing should start as early as possible in SDLC. In early stages cost for solving defects is much less than occurred in later stages.
Order for increase in defects solving costs
Defects found in early stages or small modules are much more operational failures then found in complete application at later staged.
Testing scenarios should be changed over the time. If you will test same scenarios again and again; won’t find any bug in it. Testing scenarios or test cases should be modified so that effective testing and maximum coverage is possible.
Testing indicates the presence of defects:
When we do testing it shows the presence of defects. It reduces the probability of defects but it doesn’t mean that all defects are removed and application is a bug free. There will be some more undiscovered defects present in the application.
Absence of errors fallacy:
Customers are mainly concerned with the working of software or application. They expect it to work efficiently and there desired task gets complete. They are not concerned with what defects are present and how they are getting fixed. If finding and fixing of defects makes the application unusable then it is of no use.
Exhaustive testing is impossible:
It is not possible to test everything. We need to decide and plan the risks and priorities before starting with testing. Test plan plays a very important role. It should be followed properly and should be modified with phase of the application and time.
Testing is context dependent:
Testing should be based on the different scenarios and different locations. Testing of a banking application will be different from a testing of university website. It also varies based on the user’s location and type of the user’s using it.