Unit Testing :
Unit testing of software applications is done
during the development (coding) of an application.The objective of unit testing is to isolate a
section of code and verify its correctness. In procedural programming a unit
may be an individual function or procedure The goal of unit testing is to isolate each
part of the program and show that the individual parts are correct. Unit
testing is usually performed by the developer.
Why do Unit Testing? Why it
is important?
Sometimes software
developers attempt to save time by doing minimal unit testing. This is a myth
because skimping on unit testing leads to higher defect fixing costs during
system testing, integration testing and even beta testing after the application
is completed. Proper unit testing done during the development stage saves both
time and money in the end.
Building unit Test Cases
Unit testing is commonly automated, but may still be
performed manually. The IEEE does not favor one over the other. A manual approach
to unit testing may employ a step-by-step instructional document.
Under the automated approach-
A developer could write another section of code in the
application just to test the function. They would later comment out and finally
remove the test code when the application is done.
They could also isolate the function to test it more
rigorously. This is a more thorough unit testing practice that involves copy
and pasting the function to its own testing environment to other than its
natural environment. Isolating the code helps in revealing unnecessary
dependencies between the code being tested and other units or data spaces in
the product. These dependencies can then be eliminated.
A coder may use a Unit Test Framework to develop
automated test cases. Using an automation framework, the developer codes
criteria into the test to verify the correctness of the unit. During execution
of the test cases, the framework logs those that fail any criterion. Many
frameworks will also automatically flag and report in a summary these failed
test cases. Depending upon the severity of a failure, the framework may halt
subsequent testing.
Unit Testing benefits:
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 testing allows the programmer to refactor code at a
later date, and make sure the module still 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.
Due to the modular nature of the unit testing, we can
tests parts of project without waiting for others to be completed.
Unit Testing Limitations:
Unit testing can’t be expected to catch every error in a
program. It is not possible to evaluate all execution paths even in the most
trivial programs
Unit testing by its very nature focuses on a unit of
code. Hence it can’t catch integration errors or broad system level errors.
No comments:
Post a Comment