In this series about testing, we will share some information about Testing levels. These are some concepts we came to know when starting to know about software testing. We hope that they will be helpful to you.
1. Unit testing (UT)
The first level of Testing levels-Unit testing, also known as component testing, refers to tests that verify the functionality of a specific section of code, usually at the function level. Unit testing is done on a small piece, or unit of code. Nunit, TestDriven.NET is a tool to test units.
2. Integration testing (IT)
Integration testing is any type of software testing that seeks to verify the interfaces between components against a software design.
The purpose of IT is to test the functionality, reliability and performance of the system when integrated.
IT is done on modules that have been UT tested and then IT will determine whether the combination of modules will produce the desired output. IT can either be done by independent testing or by the programmer.
3. System testing
System testing tests a completely integrated system to verify that it meets its requirement. It is a method of monitoring and evaluating the behavior of a complete software product or system and has been fully integrated, based on pre-defined specifications and functional requirements. It is the solution to the question “Does a complete system work properly according to requirements?”
4. Acceptance testing
The last one of Testing levels, the system is delivered to the user for acceptance testing. In this type of testing, the software is tested by the user to find out if the software meets the user’s expectations and performs as expected. During this test phase, the tester may also perform or the customer has their own testers to perform.
There are two types of acceptance testing: Alpha testing and Beta testing:
- Alpha testing: It is the internal testing type, the software will be performed by an independent testing team or by customers at the software production site.
- Beta Testing: It is the type of testing that customers perform in their own environment. This type of test is performed after Alpha testing.
Difference of Alpha testing & Beta testing
|Role||Alpha testing is performed by testers who are employees of the organization or company.||Beta testing is performed by customers or end users who are not employees of the organization or company.|
|Alpha Testing is performed at the software development site.||Performed in real environment, and hence activities cannot be controlled|
|White box and / or Black box testing techniques are involved||Only Black box testing techniques are involved|
|System Testing is performed before Alpha Testing||Alpha Testing is performed before Beta Testing|
|Stakeholders||Engineers, quality assurance team, and product management team||Product management, quality management, and user experience teams|
|Testing time||Usually after System testing phase or when the product is 70% – 90% complete||Usually after Alpha Testing and product is 90% – 95% complete`|
|Participants||Technical Experts, Specialized Testers with good domain knowledge||End users to whom the product is designed|
Pros and cons of Alpha and Beta Testing
|Pros||Provides better view about the reliability of the software at an early stage||Reduces product failure risk via customer validation|
|Helps simulate real time user behavior||Allow a company to test post-launch infrastructure|
|Detect many serious errors||Cost effective compared to similar data gathering methods|
|Ability to provide early detection of errors with respect to design and functionality||Improves product quality, increases customer satisfaction|
|Cons||Functionality cannot be tested as software is still under development stage||Beta testing is executed out in the real world where you seldom have control.|
|Sometimes developers and testers are dissatisfied with the results of alpha testing|
For more information about Testing services, please contact us
Lotus Quality Assurance (LQA)
Tel: (+84) 24-6660-7474