Monday, November 17, 2008

Web Software Testing: Ensuring Web Software Security and Functionality

There are various phases in software development life cycle (SDLC). Software performance testing is an important stage within the software development cycle (SDCL). A variety of testing methods are used beginning with the application's development until it gets the marketing stage. From the initial development of the application until it reaches the maketing phase different testing types will be used. Moreover there are different varieties of the software that needs to be tested before it is released to the costumer.


There are many different classes of software and software for web applications is one of them. With the advent of the Internet web software has significantly increased in importance, as the Internet has had a substantial impact on our daily lives.  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.


While web software testing is important, there’s always a rush in developing and testing it. In the design and development stages, testing engineers utilize different groups or types of tests such as code testing, [load testing], compatibility testing, functional testing and regression testing.


The web software is usually released using a pattern of software release known as alpha/beta testing.This is a simulated or actual operational test conducted by potential users or an independent test team at the developers' site. The software is incomplete at this point and testing is done only for small modules of the software. When of-the-self software is employed, alpha testing is often used as an internal acceptance test. 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 stage is finished, the software advances to the beta phase of testing. The web software should be fully completed by now. The software is released to a restricted number of users for testing before it is officially released. 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. Web development is a very rapid process so the abscence of bugs is required. Paired-programming is one of the favourite methods that highly qualified testers can use to produce bug free coding.


The Paired programming is a method in software development where two programmers work simultaneously at one keyboard. The driver types in the code while the observer or navigator reviews each line. This strategy is appealing because fewer bugs are produced. 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 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. Load testing will provide information regarding the amount of users that could connect simustaneosly to a site, the number of transactions that the system can cope at the same time and its responsiveness under different circumstances or amount of traffic.


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.


The testing used to validate the conformance to specifications and requirements is the Functional testing. This testing involves performing a sequence of tests to validate the behavior of the software, feature by feature using a large number of normal and abnormal data. 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.


Regression testing is an important testing method when the software development method is iterative. In this type of development, the developer adds another module with some functionality to the existing module that's running. One should make sure that adding this module does not ruin 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.

1 comment:

Anonymous said...

Interesting post,

Software Testing is the process of executing a program or system with the intent of finding errors. The software testing strategy is an essential process that comprises part of the software development lifecycle. Companies that fail to implement quality control standards and adequately define the range of tests for an application can destroy brand credibility, sabotage the overall project and create a cost blowout.

Commercial Software