Department of Engineering

IT Services

Testing Web applications

Web applications can present difficulties to testers because of the number of components that may be involved. If there's a problem (in particular performance-related) the cause could be: the network; the database, the web server (with modules for PHP support), the web proxy-server or the browser itself (which comes in various varieties each with different plug-ins, java interpreters and so on).

If you have Firefox 3 you can add Firebug to help you diagnose CSS and JavaScript problems. It can also help identify which parts of a page are slow to download.

The usual accepted method to test a web application is to go through a list of tasks manually and observe/check outcomes. Some of these outcomes may require the checking of data from different systems e.g. backend databases, or applications that are not web based. For particular cases it may be possible to test a predictable outcome via the state/content of a web page. For these cases it then becomes possible to automate such testing which can take place prior to or after any modifications that may affect behaviour.

  • Apache JMeter is designed to load test functional behavior and measure performance. It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load.
  • Http::Recorder - WWW::Mechanize: Http::Recorder is a Perl web poxy that will record the requests made to a server. These recordings can then be cut and pasted into a www::mechanise script to be run automatically. To add tests to the MEchanise script users must supply their own regular expression searches on the pages; i.e. knowledge of regex /Perl is a prerequisite
  • Selenium - Selenium provides a plugin (Selenium IDE) for firefox, that allows a user to record tests and use mouse controls to select tests to perform. These recordings can be saved in several programming languages (Perl, Java, etc) and be run without the use of a browser with the possibility of distributing across many machines. For these batch tests to run a server is required (java application).
  • WebTest
  • Sahi
  • Watir

The Usability and user research articles webcredible are useful.

screencasts could be used in association with the above facilities.