Thursday, April 9, 2009

WEB TESTING STUDY



What kind of testing to be done in client server application and web application? Explain
Web Testing
During testing the websites the following scenarios should be considered. Functionality

Performance

Usability

Server side interface

Client side compatibility

Security


Functionality:
In testing the functionality of the web sites, the following should be tested. Links

Internal links

External links

Mail links

Broken links

Forms

Field validation

Functional chart

Error message for wrong input

Optional and mandatory fields

Database

Testing will be done on the database integrity.

Cookies

Testing will be done on the client system side, on the temporary internet files.


Performance:

Performance testing can be applied to understand the web site’s scalability, or to benchmark the performance in the environment of third party products such as servers and middleware for potential purchase.Connection speed:Tested over various Networks like Dial up, ISDN etcLoadWhat is the no. of users per time?Check for peak loads & how system behaves.Large amount of data accessed by user.StressContinuous load
Load testing:
Load testing is usually defined as the process of exercising the system under test by feeding it the largest tasks it can operate with. Load testing is sometimes called volume testing, or longevity/endurance testing
Examples of volume testing:Testing a word processor by editing a very large documenttesting a printer by sending it a very large jobtesting a mail server with thousands of users mailboxes
Examples of longevity/endurance testing:
Testing a client-server application by running the client in a loop against the server over an extended period of time
Goals of load testing:
Expose bugs that do not surface in cursory testing, such as memory management bugs, memory leaks, buffer overflows, etc.ensure that the application meets the performance baseline established during Performance testing. This is done by running regression tests against the application at a specified maximum load.Although performance testing and load testing can seen similar, their goals are different. On one hand, performance testing uses load testing techniques and tools for measurement and benchmarking purposes and uses various load levels whereas load testing operates at a predefined load level, the highest load that the system can accept while still functioning properly.
Stress testing:
Stress testing is a form of testing that is used to determine the stability of a given system or entity. This is designed to test the software with abnormal situations. Stress testing attempts to find the limits at which the system will fail through abnormal quantity or frequency of inputs.Stress testing tries to break the system under test by overwhelming its resources or by taking resources away from it (in which case it is sometimes called negative testing). The main purpose behind this madness is to make sure that the system fails and recovers gracefully — this quality is known as recoverability.Stress testing does not break the system but instead it allows observing how the system reacts to failure. Stress testing observes for the following.
Does it save its state or does it crash suddenly?Does it just hang and freeze or does it fail gracefully?Is it able to recover from the last good state on restart?Etc.


Compatability Testing



A Testing to ensure compatibility of an application or Web site with different browsers, OS and hardware platforms. Different versions, configurations, display resolutions, and Internet connect speeds all can impact the behavior of the product and introduce costly and embarrassing bugs. Wetest for compatibility using real test environments. That is testing how will the system performs in the particular software, hardware or network environment. Compatibility testing can be performed manually or can be driven by an automated functional or reg The purpose of compatibility testing is to reveal issues related to the products interaction session test suite.with other software as wellas hardware. The product compatibility is evaluated by first identifying the hardware/software/browser components that the product is designed to support. Then a hardware/software/browser matrix is designed that indicates the configurations on which the product will be tested. Then, with input from the client, a testing script is designed that will be sufficient to evaluate compatibilitybetween the product and the hardware/software/browser matrix. Finally, the script is executed against the matrix, and any anomalies are investigated to determine exactly where the incompatibility lies.
Some typical compatibility tests include testing your application:On various client hardware configurationsUsing different memory sizes and hard drive spaceOn various Operating SystemsIn different network environmentsWith different printers and peripherals (i.e. zip drives, USBs, etc.)

Regression testing: re-testing after fixes or modifications of the software or its environment. It can be difficult to determine how much re-testing is needed, especially near the end of the development cycle. Automated testing tools can be especially useful for this type of testing.


Acceptance testing: final testing based on specifications of the end-user or customer, or based on use by end users/customers over some limited period of time.

Load testing: testing an application under heavy loads, such as testing of a web site under a range of loads to determine at what point the system’s response time degrades or fails.