Software Protector

Tuesday, July 29, 2008

Web Software Testing: Guarantees Safety and Functionality

By John Hansen

Software testing is an important stage within the software development cycle (SDCL). There are different testing types and they are useful at different stages of the software development cycle. From the initial development of the application until it reaches the marketing phase different testing types will be used. In addition, all the different versions of the software have to be tested before they are delivered to either the customer or the target market.

Software for web applications is one type of software. With the advancements in Internet and its high impact on our day to day life, web software has achieved high importance in software industry and our daily lives. The majority of the security threats start off from Internet and it is necessary to make sure that the web software is carefully tested prior to releasing to the costumer.

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 testing's 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 web software is usually released by means of a model of software release known as alpha/beta testing. Alpha testing is a replicated or real ready testing by would-be users/customers or a separate testing team on the developers' location. This testing will be upon incomplete software and will be tested for small parts of the software. Alpha testing is often used for ready to use software as a type of in-house acceptance testing. Software that passed the alpha test will not be released till all the major functionalities of the software are built and tested.

After the alpha testing has been finished the web software is ready to be beta tested. Beta testing is done by a limited amount of users that can use the software before its official release takes place. The alpha/beta testing method is not the standard procedure when testing web site design. 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.

Code testing refers to the process where the testing or development engineer verifies the code and make sure that there are no software bugs. Because the time involved in web development is small it is important that the software is free of bugs. A popular method used by experienced programmers for bug free coding is the paired-programming.

The Paired programming is a method in software development where two programmers work simultaneously at one keyboard. One programmer types in the code when the other person observes and reviews each line at the same time. 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 testing process continues through out the software development cycle so that at the time of final release it is free of bugs. Load testing is done to see at what point the application fails or the performance reduces when under heavy loads such as multiple users on or heavy server traffic. 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 needs to be carried out to asses the software compatibility with the software and hardware that it may interact with. This includes testing compatibility with operating systems, database, browsers, peripherals and backwards compatibility.

Functional testing asses the alignment between the application and its specifications checking that it provides all the required functions. To do that an extensive range of both normal and erroneous data will be input to validate the behavior caused by each of the software features. Regression testing is carried out to check that any changes made to the code in order to enhance it or to fix defects has not affected any functionality.

When iterative methodology is used to develop software regression testing is crucial. In iterative programming, new modules are added to the core module to increase the functionality provided by the application, this needs to be done with the certainty that the added module does not affect the original functionality of the running module. The aim of regression testing is to discover regression bugs. All the types of test mentioned above are necessary to provide complete web software testing.

About the Author:

0 Comments:

Post a Comment



<< Home