Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
4Activity
0 of .
Results for:
No results containing your search query
P. 1
Testing Web Applications

Testing Web Applications

Ratings: (0)|Views: 261 |Likes:
Published by api-3822363

More info:

Published by: api-3822363 on Oct 18, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

03/18/2014

pdf

text

original

he testing of Web-based applications has much in common with the testing of desktop systems: You need to test the usual func-

tionality, configuration, and compatibility, as well as perform- ing all the standard test types. But Web application testing is more diffi- cult because complexities are multi- plied by all the distributed system components that interact with the ap- plication. When we see an error in a Web environment, it\u2019s often difficult to pinpoint where the error occurs, and, because the behavior we see or the error message we receive may be the result of errors happening on dif- ferent parts of the Web system, the er- ror may be difficult to reproduce. So how do we analyze errors within a Web-based system, and what consid- erations should be made for reproduc- ing such errors?

When we have an understanding of the underlying technology, we are better able to maximize testing effi- ciencies\u2014writing more reproducible bug reports and finding more errors in less time. This is easier said than

done \u2026especially in Web environ-
m ents. Web environments are dense

with error-prone technology vari- ables. Here are five fundamental con- siderations of Web-application test- ing:

1.When we see an error on the

client side, we are seeing the symptom of an error\u2014not the er- ror itself.

2 .Errors may be environment-de-
pendent and may not appear in
different environments.
3 .Errors may be in the code or in
the configuration.
4 .Errors may reside in any of sever-
al layers.
5 .Examining the two classes of op-

erating environments\u2014static versusd y n a m i c\u2014demands dif- ferent approaches.

Now let\u2019s take a look at each of these
five considerations in more detail:
What are we really
seeing\u2013an error
or a symptom?

Without diagnosing the environment, we can\u2019t be certain what causes a symptom to appear. If one of the en- vironment-specific variables from ei- ther the client side or the server side is removed or altered, we might not be able to reproduce the problem.

Here is an example. I\u2019m testing a Web-based defect tracking applica- tion, and going through the process of creating a new bug report. When I select the NEW button, I receive an error message:

Microsoft OLE DB Provider for ODBC
Drivers error '80040e14'

After spending some time investigat- ing my browser environment, I dis- cover that JavaScript is disabled in

1
May/June 2000
Software Testing& Quality Engineering
www.stqemagazine.com
2 3
Testing
Testing
T
Testing
Web- based
Applications
Analyzing and reproducing errors in a Web environment
by Hung Q. Nguyen
QUICK LOOK
sWhy errors in Web- based
applications are hard to reproduce
sAnalyzing these errors in a way
that saves testing time

the browser preferences dialog box. Enabling JavaScript eliminates the error. (Whether or not this is a bug is not part of this discussion.) The idea here is that if I add additional infor- mation regarding the JavaScript set- ting to the bug report, I can save our team some time in analyzing this problem. Furthermore, \u201cdisabling JavaScript\u201d is added to my test suite from this point on; it will be applied to all areas of the application so that all potentially related errors can be uncovered.

Is the error
environment-
dependent?
To reproduce ane n v i r on m e n t -d e -
pendent error we have to perfectly

replicate both the exact sequence of activitiesa n d the environment con- ditions (operating system, browser version, add-on components, data- base server, Web server, third-party components, server/client

re-

sources, network bandwidth and traffic, etc.) in which the application operates. For example, when you try to log into your Web application while using a 28.8 kbps dial-up con- nection, you experience login fail- ures due to timeout in the authenti- cation process\u2014but the same login steps will authenticate successfully if you are on a T-1 connection at 1.54 mbps. In this case, you have an environment-dependent error where the dependency is in the bandwidth.

Environment-independent er- rors, on the other hand, are relatively easier to reproduce\u2014it\u2019s not neces- sary to replicate the operating envi- ronment. With environment-inde- pendent errors, all that need be replicated is the steps that reveal the error. For example, if the company name is misspelled on all of the prod- uct\u2019s online pages asWe b Te s s t i n g .

Con, you willa lw a y s see this error\u2014
independent of the hardware, soft-
ware, and resource variables in your

operating environment. More com- monly, we refer to environment-in- dependent errors asf u n c t i on a li t y -

specifice r r o r s .
Is it a coding error
or a configuration
problem?
Errors (or the symptoms of sup-

posed errors) may be resolved with code fixes (assuming the errors are in fact real) or system reconfigura- tion (client, server, or network). Don\u2019t jump too quickly to the conclu- sion that it\u2019s ab u g !

Microsoft OLE DB Provider for ODBC
Drivers error '80004005'

Here is an example illustrating the challenge of identifying possible configuration problems as opposed to actual software errors. It shows an error message caused by a \u201cfailed login\u201d that has been generat- ed by a Web application. By simply looking at this error message, it is impossible to determine whether this error is the result of a software bug, a server-side configuration is- sue, a compatibility issue, a browser configuration issue, or all of the above.

After further analyzing the fail- ure, I discover several possible con- ditions that might generate this error message:

IIS (Web server) virtual directory has not
been set up properlyWhen the virtual

directory is not properly configured, the requested files, scripts, or data will not be found. Typically, this is a

server configuration issue. However, if the installation program failed to programmatically configure the Web server according to specification, then this is a software error. If a system administrator fails to proper- ly configure the Web server accord- ing to specification, this then be- comes a user error.

Application directory has not been con-
figured properly to execute scriptsA

typical application-server directory contains scripts to be executed when they are called by a Web server on the behalf of a client. For security reasons, a Web server can be config-

ured to allow or disallow scripts to be executed within certain directo- ries. If your application-server direc- tory is designed to contain scripts that will be executed\u2014but the Web server is configured to disable script execution in that directory\u2014the ap- plication will not work. Is this as of t -

ware error or a configuration
problem ?
Default Web page has not been set up
properlyThe issue is similar to the
problem above.
SQL Server is not runningThe appli-

cation server needs to connect to the backend database living on the SQL server in order to execute queries, store procedures, and access data. If the SQL server process itself is not running, then obviously the applica- tion will not work.

DLL/ COM objects are missing or were
unsuccessfully registeredPerhaps the

installation program failed to copy all theDLLs used by the application server during setup. If anyDLL need- ed by the application server is miss- ing, the application will not work.

Perhaps the installation program correctly copied all the needed mod- ules, but failed to register one or

3
2
www.stqemagazine.com
Software Testing& Quality Engineering
May/June 2000
2 4

To reproduce an environment-dependent error
we have to perfectly replicate both the exact sequence
of activities and the environment conditions.

CREDITCREDI
TCREDIT
EDITPASS05/
21/99
May/June 2000
Software Testing& Quality Engineering
www.stqemagazine.com
2 5

more of them. For example, withOLE- based objects such asCOM orDCOM, their class ID (CLSID) must be regis- tered in the Registry Database before they can be used. If an application tries to access aCOM object that was not registered successfully, the appli- cation will not work.

This problem is often caused by errors in the installation procedures. If, on the other hand, the compo- nents must be manually registered then this becomes ac on f i g u r a t i on

issue.
Browser-side JavaScript setting has
been disabledThis is a browser-side

configuration problem since the ap- plication requires the browser to have JavaScript enabled. Is this a software error, a configuration prob- lem, or a technical support issue?

Which layer
really causes
the problem?

Errors in Web systems are often dif- ficult to consistently reproduce be- cause of the many variables intro- duced by the distributed nature of client/server architecture (i.e., serv- er, client, and networking compo- nents). There are at least three usu- al suspects in a Web environment: Thec l i e n t , thes e r v e r, and then e t -

work.
Both the client and the server
carry configuration and compatibili-

ty issues that are similar to PC envi- ronments, where all components are in one box. Issues multiply within client/server systems, however, be- cause there may be many clients and servers connected on a network. Typical client/server configuration and compatibility issues involve the hardware and operating system mix (UNIX-based boxes versus Windows- based boxes, for example) and the software mix on the server side (Web server packages, database server packages, firewalls,COM objects,

CORBAobjects, etc.). Issues may also

involve the software mix on the client side (TCP/IP stacks, dialer software, helper components, brows- er brands, and browser versions). Additionally, browser settings, such as general settings, connection set- tings, security settings (including Ac-

4
sCheck if the client operating system, versions, and patches
meet system requirements
sCheck if the correct version of the browser is installed on
the client machine
sCheck if the browser is properly installed on the machine
(for example, the JVM is also successfully installed)
sCheck the browser settings
sTry the same set of steps with different browsers (e.g.,
Netscape Navigator versus Internet Explorer)
sTry the same set of steps with different supported versions
of the same browsers (e.g., 3.1, 3.2, 4.2, 4.3, etc.)
sCheck to ensure that all servers are running
sCheck to ensure that all service- based components have
been started
sCheck to ensure that application access privileges are
properly set up
sCheck for missing components on the server (DLL s,
scripts, etc.)
sCheck for proper registration of components (COM s,
Java, etc.)
sCheck to ensure that DNS is properly configured
sCheck if firewall configuration is causing packets to drop
or blocking access
sCheck if a slow connection is causing the application to
time- out
sCheck for potential race or time- related conditions
sCheck for potential network inaccessibility issues on the
client machines
sCheck for potential network inaccessibility issues on the
server machines
sCheck if the server operating system version and patches
meet system requirements
sCheck if the proper versions of the server software such
as Web server, SQL database, and other middle- ware
packages are installed
sCheck server configurations for proper settings
M a k in g Yo u r
Web Application Test Report
More Reproducible

Activity (4)

You've already reviewed this. Edit your review.
1 thousand reads
1 hundred reads
Amit Rathi liked this
vikas_khichar liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->