“Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not.” (TutorialsPoint, 2016)
Software needs to be tested to determine if all requirements were met. If there are any errors, bugs, mistakes, or gaps in the system.
Who does testing?
The more the better. Different points of view are required in this process: Normally, there is a software testing team; however, software developers, managers, and users also participate.
It is important to implement this phase throughout the development.
Why? To save time, reduce costs and errors.
Testing never ends
This means that there is always some improvement to the system; therefore, testing is needed to see if there is something to be improved.
Types of testing:
There are lots of testing types including compatibility, performance, usability, security, recovery, comparison, stress, unit, load, regression, system, etc.
Most known testing types are alpha testing which is done at the end of the development phase, where the software is almost complete; beta, where end-users are the ones testing the system supposedly finished; and black-box which tests if the system covers requirements.