Web Software Testing: Ensuring Web Software Is
Functional and Secure
The software development life cycle (SDLC) consists of a
number of stages. One of the important stages in this is
software testing. There are a number of testing types used for
testing the software starting from the development of the
application until it reaches the marketing phase. These testing
types are used in various phases of SDLC. In addition the
software itself has different varieties and all of them need
testing before releasing to the customer or the
market.
Software for web applications is one variety of software.
Web software has gained considerable importance with the advent
of Internet which has considerable impact on our daily lives.
Most of the security risks originate from Internet and it is
essential that the web software is thoroughly tested before
releasing to the market.
Although the testing of web software is important, there is
always hurry in developing and testing such software. During
the design and development of software for web applications,
the testing engineers use different groups or types of tests.
These are code testing, load testing, compatibility testing,
functional testing and regression testing.
The web software is normally released using a pattern of
software release called alpha/beta testing. Alpha testing is a
simulated or actual operational testing by potential
users/customers or an independent test team at the developers'
site. At this stage the software is incomplete and testing is
done only for small modules of the software. Alpha testing is
often employed for off-the-shelf software as a form of internal
acceptance testing. Software that has been alpha tested cannot
be released until all the major functional parts of the
software are coded and tested.
Once the alpha testing stage of development is complete, the
software is allowed to get into beta phase of testing. At this
stage the web software should be completed fully. The software
is released to a limited number of users for software testing
before its official release. Since the web site design uses
HTML coding, it is easy to integrate individual web pages on
site and integrate them easily; hence this alpha/beta method is
usually not used for website development. This means that they
can build and test one page at a time and after completion they
can go onto the next one, with each one independent of the
other.
The term code testing means that the software testing or
development engineer examines the codes for the presence of
software bugs. It is essential that the software is bug free
because the process of web development is very fast. One of the
popular methods used for error free coding by highly qualified
techs is called paired-programming.
Paired programming is a software development technique in
which two programmers work together at one keyboard. The driver
types in code while the observer or navigator reviews each line
of code as it is being typed. The logic behind adopting this
methodology is as follows. According to The Economist, "Laurie
Williams of the University of Utah in Salt Lake City has shown
that paired programmers are only 15% slower than two
independent individual programmers, but produce 15% fewer
bugs.”
The software is tested repeatedly as the development process
goes on and by the time of final release it is bug free. Load
testing is carried out against heavy loads or inputs such as
multiple user log-in, mail servers etc. to find out at what
point the web-site/application fails or at what point its
performance degrades. The testing will document the number of
users the site will support at the same time, the amount of
transactions it will handle and the response time under
different conditions or flows of traffic.
Compatibility testing is done to evaluate the application
compatibility with the computing environment like operating
system, database, browser compatibility, backwards
compatibility, computing capacity of the hardware platform and
compatibility of the peripherals.
Functional testing validates 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. Regression
testing is done to ensure that enhancement, defect fixes or any
other changes made to the software have not broken any existing
functionality.
Regression testing is very important wherever there is
iterative development of software. In iterative development,
the developer adds another module with some functionality to
the existing running module and one should make sure that
addition of this module does not break the existing
functionality. Regression testing is performed with the goal of
discovering regression bugs. The above tests are necessary to
complete the web software testing.
|