Daily hundreds of softwares are being developed and released in the market. Each of them has their own value, purpose, functionalities, and services. The process of developing these softwares involves certain phases such as Requirement specifications, design, coding, testing, implementation, maintenance. After the coding of the software is done, there comes the phase of testing. A process of executing a code, with the intention of finding errors or software bugs in a program or in an application is known as Software testing. It also includes the validation and verification process where we need to check whether the final application or software satisfies the user, company, technical requirements which were discussed at the time of requirements specification. It is to check whether the user is satisfied with the software produced.
The one who tests the software is called Software Tester. He tries to find the bugs in the product. There is no software that has no bugs. Tester does his job in two ways. First is checking each and every line of code for the errors semantically, runtime errors, compilation errors, etc. He charges for no of lines he has tested. The other way is to check the final product and test it by giving different values and checking how it responds in each situation.
For example, in a website there is a date value to be entered by the user, so the tester checks by giving value Feb 30th and observes how the system responds. If it accepts the value, then that is a bug, if not then the system should throw an error. It can also take email validations and many other aspects will be tested. So this is called Manual testing. Here the tester don’t require technical knowledge of software testing, he just needs to think logically, how to break the system to get the bugs out. Developer thinks to build the system whereas tester thinks to break the system. The more no of bugs he found, the more he is good at testing but it is not good for the developer.
So put it in simpler words it is to find whether the requirements are being followed. To find the gaps, missing requirements in comparison with the actual requirements taken, errors, testing is used by executing the system.
There are different types of testing. If you have to check in smallest part of the system it is called unit testing. A group of units which are being checked is called component testing as group of units is called components. When the whole system needs a test then we call it system testing where many components, units are brought together. This is a very costly process. Before releasing the product it is tested once by providing real—time environment and it is called beta testing.
We can even use some IDEs to develop the softwares, as it notifies you at least with syntactical errors, so that during testing no of bugs found will be less.