UNIT TESTING is a software test in which individual units/ components of the software are tested. The purpose is to verify that each unit of the software performs as designed. One unit is the smallest testable part of any software. It usually has one or more inputs and usually a single output. In procedural programming, a unit may be an individual program, a function, a procedure, etc. In object-oriented programming, the smallest unit is a method, which may belong to a base/ super class, abstract class or derived/ child class.
Advantage
* Tests can be started at an earlier stage. You don't have to wait until the GUI is available.
* Tests are more thorough, with the ability to cover most paths.
Disadvantage
* Because tests can be very complex, highly qualified resources are required, with thorough knowledge of programming and implementation.
* Maintenance of test scripts can be a burden if the implementation changes too often.
* Because this test method is closely linked to the application to be tested, tools cannot be readily available for any type of implementation/platform.
* Integration Test?: Test for detecting defects at the interfaces and in the
Interactions between integrated components or systems. See also component integration
testing, system integration tests.
* system testing: Testing the integration of systems and packages; testing
Interfaces to external organizations (e.g. electronic data exchange, Internet).