Tuesday, September 30, 2008

Web Software Testing

The software development life cycle contains numerous stages. Software performance testing is one of the most essential stages. There are different testing types and they are useful at different stages of the software development cycle. The testing spans over all the stages in the SDLC. Moreover there are different varieties of the software that needs to be tested before it is released to the costumer.


One variety is software for web applications. The importance of this type of software has increased rapidly since the arrival of the Internet.  Because of the high impact Internet has on our daily lives any web software is carefully tested before launching in order to reduce the associated security risks that originate from the use of the Internet.


The time available to develop and test web software is always limited. While the web software is being designed and developed it is also being tested by the testings engineers using different types of tests. The different types of tests can be grouped in code testing, [load testing], compatibility testing, functional testing and regression testing.


The standanrd pattern for the realease of web software consists of two main stages, alpha and beta testing.The first stage or alpha testing takes place at the developers' site where either potential users/customers or a purposely created indepent test team will interact with a simulated or actual operational version of the software being tested. Because during alpha testing the software is actually still being developed only small modules of the software are tested during this stage.Alpha testing is often used for ready to use software as a type of in-house acceptance testing. After being alpha tested software will only be released when all the main functional sections have been both coded and tested.


After the alpha testing is completed the software is permitted to undergo the beta phase of testing. In beta testing the web software I completely built. The software is made available for use to a restricted number of customers intended for software testing previous to the official release. Since the web site design uses HTML coding, it’s easy to integrate individual web pages on site; hence the alpha/beta method is usually not used for website development This is because HTML coding makes it very easy to design independent web pages that can afterwards being easily integrated so the design team can code and test each page independently.


In code testing the software testing or development engineer examines the codes for software bugs. Because the time involved in web development is small it is important that the software is free of bugs. Paired-programming is one of the favourite methods that highly qualified testers can use to produce bug free coding.


Paired programming is a software development method in which two programmers work together at one keyboard. The developer typing the code is called the driver while the programmer that checks every line of code as it is produced is called the observer or the navigator. The judgment behind taking up this method is the following. The Economist proclaims that, "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 fact that the software is tested many times during the development process should provide a bug free software by the end of it. Load testing is used to check if a web-site/application will fail or loss performance under the added pressure of heavy loads or imputs from multiple users log-in, mail servers, etc. This type of testing will help to arrive at statistics such as how many users the site will sustain at the same time, the quantity of communication it will hold and the reaction time under various circumstances.


Compatibility testing evaluates the application’s compatibility with the computing environment like the operating system, database, browser compatibility, backwards compatibility, computing capacity of the hardware platform and compatibility of the peripherals.


Functional testing asses the alignment between the application and its specifications checking that it provides all the required functions. To do that an extense range of both normal and erronous data will be imput to validate the behaviour caused by each of the software features Regression testing is performed to ensure that enhancements, defect repairs or other changes to the software have not disrupted any existing functionality.


Regression testing is an important testing method when the software development method is iterative. Iterative software development is a method in which new functionality is added to existing software. In this case one should make sure that the new addition has not affected any of the existing functionality. Regression testing is done to find out any of such instances. The above mentioned methods are essential tests to complete the web software testing.

No comments: