What is Software Testing ? Types of testing – Alpha, Beta, Acceptance

“Testing is the process of executing a program with the intent of finding faults.”

Testing is an important aspect of the software development life cycle. It is basically the process of testing the newly developed software, prior to its actual use. The program is executed with desired input(s) and the output(s) is/are observed accordingly. The observed output(s) is/are compared with expected output(s). If both are same, then the
program is said to be correct as per specifications, otherwise there is something wrong somewhere in the program. Testing is a very expensive process and consumes one-third to one-half of the cost of a typical development project. It is largely a systematic process but partly intuitive too. Hence, good testing process entails much more than just executing a program a few times to see its correctness.

Testing is the process of demonstrating that errors are not present.

The purpose of testing is to show that a program performs its intended functions correctly.

Testing is the process of establishing confidence that a program does what it is supposed to do.

Customers may use the software in different and strange ways. Their involvement in testing may help to understand their minds and may force developers to make necessary changes in the software. These three terms are related to the customer’s involvement in testing with different meanings.

Alpha Testing

These terms are used when the software is developed as a product for anonymous customers. Therefore, acceptance testing is not possible. The alpha tests are conducted at the developer’s site by the customer. These tests are conducted in a controlled environment and may start when the formal testing process is near completion.

Beta Testing

The beta tests are conducted by potential customers at their sites. Unlike alpha testing, the developer is not present here. It is carried out in an uncontrolled real life environment by many potential customers. Customers are expected to report failures, if any, to the company. These failure reports are studied by the developers and appropriate changes
are made in the software. Beta tests have shown their advantages in the past and releasing a beta version of the software to the potential customer has become a common practice. The company gets the feedback of many potential customers without making any payment.

Acceptance Testing

This term is used when the software is developed for a specific customer. The customer is involved during acceptance testing. He/she may design adhoc test cases or well planned test cases and execute them to see the correctness of the software. This type of testing is called acceptance testing and may be carried out for a few weeks or months. The discovered errors are fixed and modified and then the software is delivered to the customer.