written 5.8 years ago by |
Unit Testing is a level of software testing where individual units/ components of a software are tested. The purpose is to validate that each unit of the software performs as designed. Unit tests are basically written and executed by software developers to make sure that code meets its design and requirements and behaves as expected.
The goal of unit testing is to segregate each part of the program and test that the individual parts are working correctly. This means that for any function or procedure when a set of inputs are given then it should return the proper values. It should handle the failures gracefully during the course of execution when any invalid input is given. A unit test provides a written contract that the piece of code must assure. Hence it has several benefits. Unit testing is basically done before integration as shown in the image below.
What is unit testing?
Method Used for unit testing: White Box Testing method is used for executing the unit test.
When Unit testing should be done?
Unit testing should be done before Integration testing.
By whom unit testing should be done?
Unit testing should be done by the developers.
Advantages of Unit testing:
- Issues are found at early stage. Since unit testing are carried out by developers where they test their individual code before the integration. Hence the issues can be found very early and can be resolved then and there without impacting the other piece of codes.
- Unit testing helps in maintaining and changing the code. This is possible by making the codes less interdependent so that unit testing can be executed. Hence chances of impact of changes to any other code gets reduced.
- Since the bugs are found early in unit testing hence it also helps in reducing the cost of bug fixes. Just imagine the cost of bug found during the later stages of development like during system testing or during acceptance testing. In System Testing, software is tested such that it works fine for different operating system. It is covered under the black box testing technique. In this we just focus on required input and output without focusing on internal working. Acceptance testing is often done by the customer to ensure that the delivered product meets the requirements and works as the customer expected.