Unit Testing
Unit Testing is a level of software testing where individual units or components of a software tested. The purpose of unit testing is to validate the each unit of software is as per given design or not.
Once the units are ready, individual components should be tested to verify that the units function as per the specifications. Unit test is a validation procedure to check working of the smallest module of source code. Test cases are written for all functions and methods to identify and fix the problems faster. For testing of unit, dummy objects are written such as stubs and drivers. This helps in testing each unit separately when all the code is now written. Usually a developer uses this method to review his code
Integration Testing
Individual software modules are combined and tested as a group under integration testing. Integration testing follows units testing and is done before system testing. The purpose is to validate functional, performance and reliability requirements.
Test cases are constructed to test all components and their interfaces and confirm whether they are working correctly. It also includes inter-process communication and shared data areas.
System Testing
System testing is a software testing phase that focuses on evaluating the complete and integrated system as a whole. It aims to validate the behavior of the system against its specified requirements and ensure that it meets the desired functionality, performance, reliability, and other quality attributes.
System testing is performed on a fully assembled and configured software system, including all its components, modules, and external interfaces. It verifies the system’s compliance with the defined system requirements and ensures that it operates as expected in various scenarios and environments.
User Acceptance Testing
Acceptance tests describe black-box requirements, identified by your project customers, which you system must conform to. Acceptance tests really are first class requirements artifacts because they describe the criteria by which, the customer will determine whether the system meets their needs.
Objective
The objectives of acceptance testing are to:
- Determine whether the application satisfies its acceptance criteria.
- Enable the customer organization to determine whether to accept the application.
- Determine if the application is ready for deployment to the full user community.
- Report any failures to the development teams so that the associated defects can be fixed.
Acceptance Testing
Accepiance testing is the process of evaluating the product with the current needs of its end users. It is usually done by end users or customers after the testing group has successfully completed the testing. It involves operating the software in production mode for a pre-specific period of time. If the software is developed under contract, the contracting customer does the accepting testing. For Example: Proper messages should be provided for the navigation from one part to another for an end-user.
Acceptance testing can be done in two different ways.
- ALPHA Testing
- BETA Testing
Alpha Testing
- Alpha testing is usually performed by end users inside the development organization.
- The testing is done in a controlled environment.
- Developers are present.
- The defects found by end users are noted down by the development team and fixed before release.
Beta Testing
- Beta testing is usually performed by end users outside the development organization and inside the end users organization.
- Environment is not under control.
- Developers are not present.
- The defects found by end users are reported to the development organization.