Web vs.
Traditional Client-
Testing Web-based Application Server Systems
• Client-side application
– GUI
– Compatibility
• Server-side application
Ye Wu – Control modeling
– Compatibility
[Link]
– Web-specific features
– Other issues, such as security and etc.
11/27/2001 © Ye Wu 1 11/27/2001 © Ye Wu 2
What to test User Interface Tests
• User Interface Tests • User interface design testing
• Functional Tests – Profiling the target user
• Database Tests – Data interaction (Data Input)
– Data presentation (Data Output)
• Performance, load and stress tests
• Web security tests
• Configuration and compatibility tests • User interface implementation testing
• Other tests
11/27/2001 © Ye Wu 3 11/27/2001 © Ye Wu 4
User Interaction Data Presentation
• User interface control
Graphic objects that enable users to interact with
applications. DHTML
• Dynamic user interface controls
– Javascript
– Java Business
JSP DB
processing
– ActiveX
– Server-Side Includes(SSI)
– Style Sheet XML/
XSL
• Navigation methods
• Feedback and error messages
11/27/2001 © Ye Wu 5 11/27/2001 © Ye Wu 6
1
User Interface Implementation Testing Functional Tests
Capture/Replay tool • Unit testing
A capture replay tool is a set of software programs
that capture user inputs and stores it into a
format(script) suitable to be used at a later time to • Integration testing
replay the user inputs. – Black-box
– White-box
Pros: Easy, fast, efficient.
Cons: When the GUI changes, input sequences
previously recorded may no longer be valid.
11/27/2001 © Ye Wu 7 11/27/2001 © Ye Wu 8
PrintWriter out = [Link]();
Integration Testing [Link]("<HTML>")
p1 = [Link]("<Head><Title>" + title + "</Title></Head>)"
Atomic section is a static HTML file or a [Link]("<Body>")
HTML section of a server program, which for(int I=0; I<[Link](); I++)
has an all-or-nothing property, i.e. either all if ([Link](i).size > 10)
the section is sent to clients or none of the p2 = [Link]("<p><B>" + [Link](i) + "</B></p>");
else
section will be sent to clients.
p3 = [Link]("<p>" + [Link](i) + "</p>");
p4 = [Link]("</body></html>");
[Link]();
11/27/2001 © Ye Wu 9 11/27/2001 © Ye Wu 10
Composite Section Interactions
p is a composite section of a server program P if • Link transition
An invocation of a link in p causes the transition of section q from
• p is an atomic section, or server to client.
• p 1 and p2 are two composite sections, p →p1 · p2 is • Operational transition
a new composite section, which servers will pass The transition from p to q is not due to the link transition, but
instead, is caused by the operations of client-side users, such as
composite section p 1 followed by composite hitting a back button or a refresh button, which will load the
section p 2 to client. or previous pages, or reload the current page.
• p 1 and p2 are two composite sections, p →p1 | p 2 is • Include transition
a new composite section, which servers choose to Composite section p will include composite section q
pass either composite section p 1 or p 2 to client, but • Forward transition
Composite section p will forward the control to composite section q
not both at one iteration.
11/27/2001 © Ye Wu 11 11/27/2001 © Ye Wu 12
2
p1 = PrintWriter out = [Link]();
[Link]("<HTML>")
[Link]("<Head><Title>" + title + "</Title></Head>)"
<HTML><HEAD><TITLE>Grade Query Page</TITLE></HEAD> [Link]("<Body>")
<BODY> if(VALIDATE(ID,PASSWD))
<FORM METHOD=GET ACTION = "GRADE_SERVLET"> for(int I=0; I< NUMBEROFCOURSE; I++)
p2= [Link]("<p><B>" + COURSE_NAME(I) + "</B>" + CO URSE_GRADE (I) + "</p>");
PLEASE INPUT YOUR ID AND PASSWORD:
Else
<INPUT TYPE = "TEXT" NAME = ID SIZE = 10>
p3 = [Link]("WRONG ID OR WRONG PASSWORD");
<INPUT TYPE = "PASSWORD" NAME = PASSWD SIZE=20> [Link]("<FORM METHOD=GET ACTION = "SEND_EMAIL">);
<INPUT TYPE = "SUBMIT" NAME = SUBMIT VALUE=SUBMIT> [Link]("<INPUT TYPE ="TEXT" NAME = "SUBJECT" SIZE = 50");
[Link]("<INPUT TYPE ="TEXTAREA" NAME = "BODY" WIDTH = 50");
<INPUT TYPE = "RESET" VALUE = RESET>
[Link]("<INPUT TYPE = "SUBMIT" NAME = SUBMIT VALUE=SUBMIT>");
</FORM></BODY></HTML> [Link]("<INPUT TYPE = "RESET" VALUE = RESET></FORM>");
p4 = [Link]("<A HREF =[Link]> Go Back To Main Page </A>");
[Link]("</body></html>");
[Link]();
11/27/2001 © Ye Wu 13 11/27/2001 © Ye Wu 14
Functional Tests
S = { [Link] }
• Atomic section coverage
C = { GRADE_SERVLET = p 1 · (p 2* | p 3) · p 4,
• Transition coverage
SEND_EMAIL = .... }
T = { S ==> GRADE_SERVLET,
GRADE_SERVLET.p3 ==> SEND_EMAIL,
• Testing stateless application
GRADE\_SERVLET .p3 ==> [Link] } • Testing stateful application
Data-flow testing
11/27/2001 © Ye Wu 15 11/27/2001 © Ye Wu 16
Database Tests Performance, load and stress tests
• Will the system be able to handle increases in Web
• Test database design
traffic without compromising system response
• Test data content time, security, reliability, and accuracy?
• Test data integrity • At what point will the performance degrade, and
which component will be responsible for the
degradation?
• What impact will performance degradation have
on company sales and technical support costs?
11/27/2001 © Ye Wu 17 11/27/2001 © Ye Wu 18
3
S = Server response time
N = Network service time
Performance, load and stress tests B = Browser processing time
If a e-commerce site handles 300,000 transactions per day,
so transaction response time = 300,00/[24*60*60] = 3.47
Performance: Transaction time
Performance: Transaction time
• If the transaction response time is greater than 4 but less
than 9 seconds, 30% of users cancel their transactions.
• If the transaction response time is greater than 8 but less
than 10 seconds, 60% of users cancel their transactions.
• If the transaction response time is greater than 4 but less
than 10 seconds, 90% of users cancel their transactions.
If the number of transactions is expected to rise between
25%-75%, and potential revenue for each transaction is $1, Load: Number of Users Increases Load: Number of Users Increases
what are the revenue loses?
11/27/2001 © Ye Wu 19 11/27/2001 © Ye Wu 20
Work load Response and Performance Terms
Work load is the amount of processing and • Throughput – The amount of data transmitted
traffic management that is demanded of a during client-server interactions.
system
For example, 10,000 concurrent users who request
– Users documents from a pool of 10 different HTML
– The applications document(2k) every 3.5 minutes.
– Resources
10, 000 ⋅ ( 2 ⋅1024 ⋅ 8)
Throughput = = 780,190bps
( 3. 5 ⋅ 60)
11/27/2001 © Ye Wu 21 11/27/2001 © Ye Wu 22
Performance, load and stress tests Web security concerns
• Defining baseline configuration and Vulnerabilities
performance requirements – Software bugs
– Programming language bugs
• Determining the workload Javascript, java
• Determining when test should begin – Active X
• Developing test cases – Cookies
– Virus and worm
• Analyzing and reporting collected data – Denial-of-service attacks
– others
11/27/2001 © Ye Wu 23 11/27/2001 © Ye Wu 24
4
Configuration and Compatibility Configuration and Compatibility
Tests (1) Tests (2)
Server-side:
The objective of configuration and – Application servers
compatibility testing is to find errors in the – Web servers
application while it operate under the major – Databases servers
real-world user environments. – Firewall
– OS
– Hardware
– Concurrent applications
11/27/2001 © Ye Wu 25 11/27/2001 © Ye Wu 26
Configuration and Compatibility Configuration and Compatibility
Tests (3) Tests (4)
Client-side: • Network devices and connectivity
– Brower type and version – Bridge, routers, gateways, and so forth
– OS
– Internet/Intranet
– Firewall
– 10/100 base-t, modems, T1, ISDN, DSL, and so
– Concurrent applications(instance messaging virus
checkers, etc) forth
– Client-side hardware such as printer, video and storage
– Transmission control protocol
AOL, Microsoft networking, other third-party TCP/IP stack
11/27/2001 © Ye Wu 27 11/27/2001 © Ye Wu 28
Configuration and Compatibility
Tests (5)
• Analyze market share
• Analyze the software on both the client side and
the server side.
• Analyze the ways in which the server generates
contents and in which the browser interprets, then
formats and displays the contents
• Share experience
• Tool support
11/27/2001 © Ye Wu 29