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 http://www.onestoptesting.com/unit-testing/#">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. Benefits: The goal of unit testing is to isolate each part of the
program and show that the individual parts are correct. A unit test
provides a strict, written contract that the piece of code must
satisfy. As a result, it affords several benefits.
Facilitates change
Unit testing allows the programmer to refactor code at a later date, and make
sure the module still http://www.onestoptesting.com/unit-testing/benefits.asp# - - works correctly (i.e. regression testing). The procedure
is to write test cases for all functions and methods so that whenever a change
causes a fault, it can be quickly identified and fixed.
Readily-available unit tests make it easy for the programmer to check whether
a piece of code is still working properly. Good unit test design produces test
cases that cover all paths through the unit with attention paid to loop
conditions.
In continuous unit testing environments, through the inherent practice of
sustained maintenance, unit tests will continue to accurately reflect the
intended use of the executable and code in the face of any change. Depending
upon established development practices and unit test coverage, up-to-the-second
accuracy can be maintained. Simplifies Integration
Unit testing helps to eliminate uncertainty in the units themselves and can
be used in a bottom-up testing style approach. By testing the parts of a program
first and then testing the sum of its parts, integration testing becomes much
easier.
A heavily debated matter exists in assessing the need to perform manual
integration testing. While an elaborate hierarchy of unit tests may seem to have
achieved integration testing, this presents a false sense of confidence since
integration testing evaluates many other objectives that can only be proven
through the human factor.
Some argue that given a sufficient variety of test
automation systems, integration testing by a human test group is unnecessary.
Realistically, the actual need will ultimately depend upon the characteristics
of the product being developed and its intended uses. Additionally, the human or
manual testing will greatly depend on the availability of resources in the
organization. Documentation
Unit testing provides a sort of living documentation of the system.
Developers looking to learn what functionality is provided by a unit and how to
use it can look at the unit tests to gain a basic understanding of the unit API.
Unit test cases embody characteristics that are critical to the success of
the unit. These characteristics can indicate appropriate/inappropriate use of a
unit as well as negative behaviors that are to be trapped by the unit. A unit
test case, in and of itself, documents these critical characteristics, although
many software development environments do not rely solely upon code to document
the product in development.
On the other hand, ordinary narrative documentation is more susceptible to
drifting from the implementation of the program and will thus become outdated
(e.g. design changes, feature creep, relaxed practices to keep documents up to
date).
------------- http://www.quick2sms.com - Send Unlimited FREE SMS to Any Mobile Anywhere in INDIA,
Click Here
|