In computer programming, unit testing is a procedure used to validate
that individual units of source code are working properly. A unit is the
smallest testable part of an application. In procedural programming a unit may
be an individual program, function, procedure, etc., while in object-oriented
programming, the smallest unit is a method; which may belong to a base/super
class, abstract class or derived/child class.
Ideally, each test case is independent from the others; mock objects and test
harnesses can be used to assist testing a module in isolation. Unit testing is
typically done by developers and not by Software testers or end-users.