Software Functional Testing: Ensuring the
Software Runs Smoothly
The software development life cycle consists of Planning,
Requirement analysis, Design Development, Implementation,
Testing Integration, Evaluation, Release and support. The
testing of software is one of the major steps in the
development cycle. The testing is carried out from start of
development to marketing of the software product.
Different types of testing are done throughout the software
life cycle. One type of testing is functional testing. In this
type of testing, an application or Web site is validated for
conformation to its specifications and correctly performs all
its required functions. This involves conducting a series of
tests which perform a feature by feature validation of
behavior, using a wide range of normal and erroneous input
data.
In functional testing, the focus of testing activities is on
functional aspects of the system. In this, test cases are
written to check the expected output. It decides whether the
system operates well with the software and also checks its
execution of functions and commands as envisaged
originally.
The functional testing covers installation tests, Regression
testing, upgrade and backward compatibility testing,
accessibility testing, internationalization and local testing,
API testing and testing of user interface, database management,
security and networking. In addition, the software is tested
for functions such as user commands, searches, user screens,
integrations, data manipulation and security.
The effect of upgrades, uploading and downloading on the
performance is also checked during functional testing. The
system in some cases malfunctions after installation of
upgrades. The functional testing should be efficient and cause
least downtime.
One of the examples for functional testing is transfer of
data from an older system to a newer system. In such a case
there is necessity to make sure that the transfer has been
carried out without any problem. To ensure that all data has
been transferred properly many functional tests need to be
done. These tests, if done correctly, will identify the areas
of problems and the remedial measures to be taken.
Normally, Functional testing is carried out only when the
application is nearing completion. However, there has been
difference of opinion about the timing of these tests in the
software testing circles. Many software-testing engineers are
of the opinion that it is better to start the functional
testing as early as possible by testing the individual parts of
the system.
Since the problems would have been ironed out during the
testing of various modules there will be fewer problems while
testing the integrated software during functional testing.
Testing of the entire system can only be done only in the later
stages. Another argument being put forth by the engineers for
early starting of functional testing is that because of
constant upgrades it is advisable to do the functional testing
during entire life cycle of the application development.
Many people consider performance testing is the same as
functional testing. Although they appear similar they are
distinctly different. The performance testing is carried out to
check whether the system meets performance requirements.
Performance testing is conducted after the completion of
functional testing.
The objective of performance testing is not to find
functional defect in the system and it is assumed that
functional defects have been identified and removed from the
system. On the other hand, functional testing is testing that
makes sure that every individual function works, as envisaged.
All the functions together are what make the system perform
correctly. Performance testing is normally conducted during the
System Testing phase.
The difference between performance testing and functional
testing can be explained by taking an example of a television
set. Switching on of the power when you press the power push
button or changing of channels using the remote control is like
checking the performance of television. On the other hand
checking the functions such as volume, color, contrast etc is
similar to functional testing.
|