Monday, 23 February 2015

Alpha Vs Beta testing

Alpha Vs Beta testing 

 

 

What is Alpha Testing ?

Alpha testing is a type of acceptance testing; performed to identify all possible issues/bugs before releasing the product to everyday users or public.  The focus of this testing is to simulate real users by using blackbox and whitebox techniques. The aim is to carry out the tasks that a typical user might perform. Alpha testing is carried out in a lab environment and usually the testers are internal employees of the organization. To put it as simple as possible, this kind of testing is called alpha only because it is done early on, near the end of the development of the software, and before beta testing.

What is Beta Testing?

Beta Testing of a product is performed by "real users" of the software application in a "real environment" and can be considered as a form of external user acceptance testing.
 Beta version of the software is released to a limited number of end-users of the product to obtain feedback on the product quality. Beta testing reduces product failure risks and provides increased quality of the product through customer validation.
It is the final test before shipping a product to the customers. Direct feedback from customers is a major advantage of Beta Testing. This testing helps to tests the product in real time environment.

 

Alpha Testing versus Beta testing:

Following are the differences of Alpha and Beta Testing:


Alpha Testing
Beta Testing
Alpha testing performed by Testers  
who are usually internal employees 
of the organization
Beta testing is performed by Clients or
 End Users who are not employees of
 the organization
Alpha Testing performed at developer's
 site

Beta testing is performed at client location
 or end user of the product

Reliability and security testing are not
 performed  in-depth Alpha Testing

Reliability, Security, Robustness are 
checked during Beta Testing

Alpha testing involves both the white 
box and black box techniques
Beta Testing typically uses black box 
testing

Alpha testing requires lab environment 
or testing environment

Beta testing doesn't require any lab 
environment or testing environment. 
Software is made available to the public
 and  is said to be real time environment

Long execution cycle may be required 
for Alpha testing

Only few weeks of execution are required 
for Beta testing

Critical issues or fixes can be
 addressed by developers immediately
 in Alpha testing

Most of the issues or feedback is collected 
from Beta testing will be implemented in 
future versions of the product

Alpha testing is to ensure the quality
 of the product before moving to 
Beta testing
Beta testing also concentrates on quality of
 the product, but gathers users input on the 
product and ensures that the product is ready
 for real time users.


Types of Beta Testing

There are different types of Beta tests, and they are as follows:
Traditional Beta testing: Product is distributed to the target market, and related data is gathered in all aspects. This data can be used for Product improvement.
Public Beta Testing: Product is publicly released to the outside world via online channels and data can be gathered from anyone. Based on feedback, product improvements can be done. For example, Microsoft conducted the largest of all Beta Tests for its OS -- Windows 8 before officially releasing it.
Technical Beta Testing: Product is released to the internal group of an organization and gather feedback/data from the employees of the organization.
Focused Beta: Product is released to the market for gathering feedback on specific features of the program. For example, important functionality of the software.
Post release Beta: Product is released to the market and data is gathered to make improvements for the future release of the product.

 

Entry and Exit criteria

Entry Criteria for Alpha testing:
· Software requirements document or Business requirements specification
· Test Cases for all the requirements
· Testing Team with good knowledge about the software application
· Test Lab environment setup
· QA Build ready for execution
· Test Management tool for uploading test cases and logging defects
· Traceability Matrix to ensure that each design requirement has alteast one test case that verifies it
Exit Criteria for Alpha testing
· All the test cases have been executed and passed.
· All severity issues need to be fixed and closed
· Delivery of Test summary report
· Make sure that no more additional features can be included
· Sign off on Alpha testing
Entrance criteria for Beta Testing: 
· Sign off document on Alpha testing
· Beta version of the software should be ready
· Environment ready to release the software application to the public
· Tool to capture real time faults
Exit Criteria for Beta Testing:
· All major and minor issues are closed
· Feedback report should be prepared from public
· Delivery of Beta test summary report

 

Phases of Testing

Alpha and Beta tests are typically carried for "off-the shelf" software or product oriented companies. The Phases of Testing for a product company typically varies from a service oriented organization. Following is the testing phase adopted by product firms

Pre-Alpha:- Software is a prototype. UI is complete. But not all features are completed. At this stage software is not published.
Alpha: Software is near its development and is internally tested for bugs/issues
Beta: Software is stable and is released to limited user base. The goal is to get customer feedback on the product and make changes in software accordingly
Release Candidate (RC): Based on the feedback of Beta Test, you make changes to the software and want to test out the bug fixes. At this stage,  you do not want to make radical changes in functionality but just check for bugs. RC is also put out to the public
Release: All works, software is released to public.
Note: Above is a standard definition of the Testing stages but in order to garner marketing buzz, companies combine stages like "pre-alpha beta", "pre-beta" etc.

 

Advantages & Disadvantages


Advantages Beta Testing
· Reduces product failure risk via customer validation.
· Beta Testing allows a company to test post-launch infrastructure.
· Improves product quality via customer feedback
· Cost effective compared to similar data gathering methods
· Creates goodwill with customers and increases customer satisfaction

Disadvantages Beta Testing
· Test Management is an issue. As compared to other testing types which are usually executed inside a company in a controlled environment, beta testing is executed out in the real world where you seldom have control.
· Finding the right beta users and maintaining their participation could be a challenge

Advantages of Alpha Testing:
· Provides better view about the reliability of the software at an early stage
· Helps simulate real time user behavior and environment.
· Detect many showstopper or serious errors
· Ability to provide early detection of errors with respect to design and functionality

Disadvantages of Alpha Testing: 
· In depth functionality cannot be tested as software is still under development stage Sometimes developers and testers are dissatisfied with the results of alpha testing

 

Myths of Alpha and Beta Testing:

Myth: Alpha and Beta testing are carried out too late in the testing life cycle to merit a benefit
Truth:  Alpha and Beta testing help highlight crucial issues with the software application and provide user feedback.

Myth: Same type of testing is done in Alpha and Beta Testing and they are not different scenarios
Truth: Alpha Testing is done in a lab environment, whereas Beta testing is done by real users reporting real problems based on firsthand experience. Both scenarios are remarkably different.

Myth: Beta type of testing is difficult and time consuming
Truth: Beta testing takes time/experience to obtain the most value. But the data/feedback it provides is invaluable.

Myth: Beta testing generates little or no useful data
Truth: A successful Beta Test can generate tons of valuable information which is otherwise difficult to procure in a lab environment.

 

Conclusion

No matter how many tests you perform, how many bugs you kill, your software is useless if your users do not like it. Beta testing (second Greek alphabet)helps provide authentic feedback of your software from real users.
Alpha testing (first Greek alphabet) helps simulate realtime user environment before the software is sent for Beta Testing and helps shape a stable software candidate eligible for Beta Tests.
Alpha and Beta Testing are indispensable in your testing life cycle.




No comments:

Post a Comment