December 22, 2010

How can World Wide Web sites be tested?

Web sites are essentially client-server applications - with web servers and 'browser' clients. Consideration should be given to the interactions between html pages, TCP/IP communications, Internet connections, firewalls, applications that run in web pages (such as applets, javascript, plug-in applications), and applications that run on the server side (such as cgi scripts, database interfaces, logging applications, dynamic page generators, asp, etc.).

Additionally, there are a wide variety of servers and browsers, various versions of each, small but sometimes significant differences between them, variations in connection speeds, rapidly changing technologies, and multiple standards and protocols.

The end result is that testing for web sites can become a major ongoing effort.

Other considerations might include:

  • What are the expected loads on the server (e.g., number of hits per unit time?), and what kind of performance is required under such loads (such as web server response time, database query response times).
  • What kinds of tools will be needed for performance testing (such as web load testing tools, other tools already in house that can be adapted, web robot downloading tools, etc.)?
  • Who is the target audience? What kind of browsers will they be using? What kinds of connection speeds will them by using? Are they intra- organization (thus with likely high connection speeds and similar browsers) or Internet-wide (thus with a wide variety of connection speeds and browser types)?
  • What kind of performance is expected on the client side (e.g., how fast should pages appear, how fast should animations, applets, etc. load and run)?
  • Will down time for server and content maintenance/upgrades be allowed? how much?
  • What kinds of security (firewalls, encryptions, passwords, etc.) will be required and what is it expected to do? How can it be tested?
  • How reliable are the site's Internet connections required to be? And how does that affect backup system or redundant connection requirements and testing?
  • What processes will be required to manage updates to the web site's content, and what are the requirements for maintaining, tracking, and controlling page content, graphics, links, etc.?
  • Which HTML specification will be adhered to? How strictly? What variations will be allowed for targeted browsers?
  • Will there be any standards or requirements for page appearance and/or graphics throughout a site or parts of a site??
  • How will internal and external links be validated and updated? how often?
  • Can testing be done on the production system, or will a separate test system be required? How are browser caching, variations in browser option settings, dial-up connection variabilities, and real-world internet 'traffic congestion' problems to be accounted for in testing?
  • How extensive or customized are the server logging and reporting requirements; are they considered an integral part of the system and do they require testing?
  • How are cgi programs, applets, javascripts, ActiveX components, etc. to be maintained, tracked, controlled, and tested?
  • Pages should be 3-5 screens max unless content is tightly focused on a single topic. If larger, provide internal links within the page.
  • The page layouts and design elements should be consistent throughout a site, so that it's clear to the user that they're still within a site.
  • Pages should be as browser-independent as possible, or pages should be provided or generated based on the browser-type.
  • All pages should have links external to the page; there should be no dead-end pages.
  • The page owner, revision date, and a link to a contact person or organization should be included on each page.

May 20, 2010

Graphical User Interface (GUI) testing for website

The testing approach for a website will be entirely different when compared to the testing approach for any other applications. There are various types of testing and they are confined with different solutions for different platforms.

Graphical User Interface (GUI) is the keys in all the software applications. They are more or less like a language by which communication of the data is done with a software application.


There are some common techniques of GUI testing.


GUI Verification

Information is nothing but Processed Data, which are provided by a Software Application. GUIs are the one, through which data is fed into the software for processing. Each and every process is confined with functionality. While testing the GUIs, the functionalities have to be mapped with the GUIs that are appearing on the screen. Justification of each and every GUI’s presence is needed very badly for achieving that functionality in our application. Checks have to be done whether the Data that is captured, is useful in some respect for the Quality Processes. If they are not useful then there is no need to capture that data and the GUI have to be removed from the screen in which it was appearing.

Field Level Validation
The data that is fed into the application should be able to process. Ensure that the data that is input into the system is valid for processing. At no point of time the system should behave awkwardly when an invalid data is fed. The system should not accept any data that is not valid. Tests have to be done to ensure this, at the data level, at the GUI level.

Global Level Validation
GUIs will be having some dependency upon the other GUIs. In that case, a combination of the values of that GUIs have to be validated. Tests should be designed so that, the application takes in data that makes sense.

Consistency of GUIs
Consistency of the GUIs, their look and feel matters a lot. These have to be checked thoroughly by having a mapping with the Style Sheet for QMS.

Testing Standard Controls
Navigation through the product is one of the key success factors. Checks have to be done to ensure that Various Controls have to be there to make the navigation easy. Checks should ensure that controls are there to cancel each and every action that is done with the system, provided