Software Testing Overview
What is testing? Testing is a process of evaluating a system or its component(s) where the intention is to find the match between requirements of the client which satisfies the client needs and necessities. This phase results how the actual and expected behaviours are surfaced in the event of product or application testing and whether it is passed or failed to be recorded for further processes. It means, testing is verification of the identified requirements of client through validating the client’s expectations how a developed product or application behaves as a whole while identifying any gaps, errors or defects.
Who does testing? Each and every IT organisation has its own processes by taking the stakeholders concerned the project(s). Most of the time, following professionals may involve
- Software Tester.
- QA Lead.
- Software Developer.
- Project Lead/Manager.
- End User.
When to Start Testing?
- Make testing process a parallel process of any software development to reduce cost, minimize time to rework / redesign and as far as possible to make error application that is delivered to the client.
- In SDLC, the practice is testing to be started from the Requirements Gathering phase and continues until the deployment of the software.
- Different SDLC models do plan their testing according to the modalities like in Water fall model testing starts only at Testing phase, whereas in incremental model, testing is performed at the end of every increment/iteration and at the end the whole application is tested.
When to Stop Testing?
- This particular aspect cannot be dealt randomly. Its herculean task to identify when to stop testing difficult to determine. Because, testing is a never ending process and no IT company say confidently any software is tested 100% with assurance that software is bugs free.
- Following aspects can be considered to identify or determine when to stop the testing
- Testing to be done or perform on strict deadlines.
- Completion of testing with test case execution.
- Completion of Functional and code coverage to a certain point.
- Management decision.
- Minimization of bugs rate to a certain level with no high priority bugs are identified.