0% found this document useful (0 votes)
50 views

Software Testing Web

This document discusses testing web applications. It begins by describing the characteristics of modern web applications and some of the challenges in testing them. It then covers various approaches to modeling web applications, including using UML diagrams and finite state machines. The remainder of the document discusses different types of testing techniques (static and dynamic), criteria for testing web applications, examples of modeling a sample application, and approaches to generating test sequences.

Uploaded by

2277arun
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views

Software Testing Web

This document discusses testing web applications. It begins by describing the characteristics of modern web applications and some of the challenges in testing them. It then covers various approaches to modeling web applications, including using UML diagrams and finite state machines. The remainder of the document discusses different types of testing techniques (static and dynamic), criteria for testing web applications, examples of modeling a sample application, and approaches to generating test sequences.

Uploaded by

2277arun
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

Testing Web Applications

Shilpi Narula
M.Sc. Mathematics Dayalbagh Educational Institute Dayalbagh, Agra

Web Applications: Characteristics


Web applications do not just give us new types of applications, but provide an entirely new way to deploy software solutions to end users. Web applications employ a number of new languages, technologies, and programming models.

Cont..
Modern Web applications are sophisticated, interactive programs with complex GUIs and numerous back-end software components that are integrated in novel and interesting ways. Web applications are much more complicated than simple HTML Web pages, and consist of more than just the front-end graphical user interfaces that users see.

Problems in Testing
In traditional client-server systems, the respective roles of the clients and servers and their interactions are predefined and static. In web applications, however, client side programs and contents may be generated dynamically. Compatibility and interoperability are urgent and cause problems that are more serious than with traditional programs.

Cont..
Web applications also have much faster maintenance requirements than most traditional software. Web technologies evolve more rapidly than traditional software technologies. Web applications also have features that are not present in client-server and distributed systems. These include session control, cookies, and the stateless aspect of HTTP.

Cont..
There are a wide number of users distributed all over the world & accessing the application services in a concurrent and global way. There is a possibility to generate software components at run time. The components may be executed on different server platforms . Different browsers may be used.

Effective testing of web based applications has to rely on [5]: Test Models Test Strategies Testing Levels Testing Processes

Modeling Web-based Applications.


Models represent the components of the application under test and their interconnections UML Model (F. Ricca and P. Tonella [1, 2, 3]) Finite State Machine Model.(Anneliese A. Andrews, Je Offutt ,Roger T. Alexander [4])

Modeling Web Applications using UML

UML Model of a generic Web application structure.


Load Page into Frame {optional} F:frame include Split into link Web Page Split into Frame Form Input:Set<var>

Static page

Dynamic-page Use:Set<var>

Conditional Edge C:Condition<var>

10

Example of model with a Static Page:p1 form.


e1 Form Input={x1,x2} e2 submit p2:Dynm.page use = {x1} Conditional edge e=(x1=books) e3 e4 link link p4:static Conditional edge e=(x1=movies) include

p3:static

11

Testing
There are two types of testing techniques: Static Verification. Dynamic Validation.

12

Static Verification.
These techniques do not require execution. They work on artifacts such as design documents and HTML source. Static analyzers can be employed to scan the HTML pages in a Web site & detect possible faults.

13

Cont
The model of the site can be analyzed to determine the presence of unreachable pages. Ghost pages are associated with pending links, which reference of a non existing frame. The analyses of a reaching frames is a specialization of the flow analysis framework, which computes the set of frames in which each page can appear . The outcome of the reaching frames is useful to understand the assignment of pages to frames.
14

Cont
Flow analyses can be employed in a more traditional fashion to determine the data dependences. Data dependences may reveal the presence of undesirable possibilities, such as use of a variable not yet defined. These are also important for dynamic validation.

15

Cont
While traversing the web pages it is impossible to reach a given document without traversing a set of other pages, called its dominators. Information about the shortest path is an indicator of potential troubles for the user searching a given document.

16

Example of a model with a frame


p1 Dominators for p3. p1, {f1, f2} ,f2 Shortest path p1, {f1, f2}, f2, p3

f1

f2

p2

p3

p4

p5

17

Dynamic validation
The internal structure of a Web application is accessed to measure the coverage that a given test suite reaches, with respect to a given test criterion. A test case for a Web application is a sequence of pages to be visited plus the input values to be provided to pages containing them. Execution consists of requesting the Web server for the URLs in the sequence and storing the output pages

18

Testing Criteria
Page testing: every page is visited at least once in some test case. Hyperlink testing: every hyperlink from every page in the site is traversed at least once. All-paths testing: every path in the site is traversed in some test case at least once.

19

Cont
Definition-use testing : all navigation paths from every definition of a variable to every use of it is exercised. All-uses testing: at least one navigation path from every definition of a variable to every use of it ,is exercised.
Static Page:p1 e1 Form Input={x1,x2} e2 submit p2:Dynm.page use = {x1} Conditional edge e=(x1=books) e3 link p3:static link p4:static e4 Conditional edge e=(x1=movies) include

20

Cont
These criteria are often impractical, since there are infinite paths in a site. They can be satisfied if additional constraints are imposed ,for example k-limiting and path independence. In the k-limiting case , loops are traversed at least k times.

In the second case only independent paths are considered. When designing & executing test cases for a web application not all pages are equally of interest, Static pages can be ignored.

21

Applicability
Two tools ReWeb and TestWeb have been developed by Ricca and Tonella [2, 3, 4 ] to support analysis and testing of Web applications.
ReWeb downloads and analyzes the pages of a Web application with the purpose of building a UML model of it. TestWeb generates and executes a set of test cases for a Web application whose model was computed by ReWeb.

The Analysis and Testing approach has been applied to several real world web applications, e.g., Amazon

22

Modeling Web Applications using FSMs

Definitions
Cluster : Collections of software modules and Web pages that implement some logical function. At the highest level, clusters may be abstractions that implement functions that can be identified by users. At the bottom level, clusters may be individual Web pages and software modules that represent single major functions. Web pages are modeled as multiple Logical Web Pages (LWP). An LWP is either an entire physical Web page or the portion of a Web page that accepts data from the user through an HTML form and then sends the data to a specific software module.

24

FSMs
Partitioning results in a hierarchical collection of finite state machines.
At the lowest level, logical Web pages are represented by nodes in FSMs that model behavior of software modules and Web pages. Edges represent transitions among logical Web pages and software modules. At the higher levels, each cluster forms a node in a FSM that models behavior of clusters. Edges in both levels of FSMs are annotated with inputs and constraints that may be associated with the transition.

25

Testing Approach
Phase 1: Build a model of the Web application.
Partition the Web application into clusters, Define logical Web Pages, Build FSMs for each cluster, Build an FSM to represent the entire Web application.

Phase 2: Generate test from the model defined in Phase 1


Generate tests as sequences of transitions, Identify values for inputs.

26

An Example Web Application: CSIS


Student
Information System View grades Email TA Email Professor Submit HA Course Information

Professor
View Student Information Post Grades Email Grades Email Student Email TA Post Course Information.

Teaching assistant
Post Grades Email Class Email Student Email Professor View Course Information

27

Course Student Information System (CSIS)


Entry Portal Password
submit

Services Info Form View Grades Email TA Email Prof. Submit HA

View Grade Lname Pin


submit

Grades

G eta H ep

28

Top level FSM


SS: Student Services PS: professor Services TA: Teaching Assistant Services W0: Login Screen off: Logoff
w0

ss

ps

ts

off

29

Student Services
Node Cluster Explanation
SS1: Select Service 1 - Menu of named services SS2: Select Service 2 - List of navigation buttons for services at the bottom of student service pages I: Info Form - Physical Info Form page without service navigation buttons at bottom G: Grades - View Grades and Grades pages ETA: Email TA EP: Email Prof H: Submit homework C: View course info Pages

ss1 G eta ep h c

ss2
30

View Grades
From SS1/2 to SS2 From Select Service 1/2 To Select Service 2 Connection from either service selection facility Connection to list of navigation buttons for services at the bottom of student service pages Authentication for viewing grades Grade display

V G

View Grades Grades

from SS1/2

to SS1/2

31

Input Types
Text digit line email phone URL multi-line file Non-text links buttons radio button drop-down list check boxes

Constraints on Inputs
Input Choice Required (R) Required Value (R(parm=value)) Optional (O) Single Choice (C1) Multiple Choice (Cn) Order Sequence (S) Any (A)

32

Transition (SS1, V) (V, G) (G, SS2)

Constraints none R (Lname, PIN, Submit) S (A (Lname, PIN), Submit) none

Alphabet encoding of Constraint e f e

View Grades LName Pin

GRADES

S I G E H c

from SS!/2

To SSI/2

33

Generating Test Sequences


A test sequence is a sequence of transitions in an FSM and the associated constraints. Assume FSM f has test sequences Sf1, Sf2, ... SfN. Furthermore, suppose FSM f appears in an aggregate FSM as node f, and there is an edge in the FSM from node f to node g with annotation A. Generating partial aggregate test sequences If test sequence j from FSM f is Sfj, and test sequence k from FSM g is Sgj, then a partial aggregate test sequence is
Sfj; A; Sgk.

34

Generating Test Sequences


Full aggregate test sequences are created by combining partial aggregate sequences.
Assume the aggregate FSM has a test sequence of nodes f1, f2, ..., fn, with annotations A12 A23, ..., An1n and the FSMs from the nodes in the aggregate FSM test sequence have test sequences Sf1;j , Sf2;j , ..., Sfn;j. Then the aggregate test sequence is Sf1;j ; A23; Sf2;j ; A23; ...; An1n; Sfn;j.

35

w0 t S x off P T I G h o m eta

SS1

ep S

ss2 e V f G e to ss2

From ss1/2

t; h; e; f; e; m; o; e; f; e; m; x
36

Transition Symbol h e f e m o e f e m

Constraint R(G) none R(Lname, PIN, Submit) S(A(Lname, PIN), Submit) none continue-use (Lname, PIN) R(G) none R(Lname, PIN, Submit) S(A(Lname, PIN), Submit) none continue-use (Lname, PIN)

37

Problems
The oracle" problem, that is, of deciding if the results are correct. This is a problem because
of low observability tracking outputs is difficult

Dealing with unanticipated user controlled transitions


This includes a user going directly to an internal Web page with a bookmark or URL rewriting and unanticipated back and forward transitions

38

Conclusions
Web Application Testing is important Two different approaches to modelling and testing have been discussed
UML based FSM based

39

References
1. F. Ricca and P. Tonella, 'Web Site Analysis: Structure and Evolution', Proc. of ICSM'2000, International Conference on Software Maintenance, pp. 76-86, San Jose, California, USA, October 11-14, 2000. F. Ricca and P. Tonella, 'Analysis and Testing of Web Applications', Proc. of ICSE'2001, International Conference on Software Engineering, pp. 2534, Toronto, Ontario, Canada, May 12-19, 2001. F. Ricca, P. Tonella. Detecting Anomaly and Failure in Web Applications, IEEE MultiMedia magazine , Vol. 13, n. 2, pp. 44-51. April-June 2006. A. Andrews, J. Offutt and R. Alexander, Testing Web Applications by Modeling with FSMs, Software Systems and Modeling, Vol.4, No.3, pp.326-345, July 2005. G. A. Di Lucca, Testing Web Applications: The State of Art and the Future Trends, 29th Annual International Computer Software and Applications Conference (COMPSAC'05), Vol. 2, pp.25, July 2005.

2.

3. 4.

5.

40

You might also like