chapter 7shodhganga.inflibnet.ac.in › bitstream › 10603 › 8030 › 17... · data. 7.2.1 xml...

14
105 Chapter 7 XML-Schema Based Testing Technique Today, XML (eXtensible Mark-up Language) is being accepted as an effective medium in data exchange over the web due to its modeling ability to support multiple inheritance and querying capabilities. With evolution of XML specification language, XML Schemas are convenient for definition of interface specifications, definition of data models, protocol specifications etc. Graphical user Interface (GUI) is by far the most popular means to interact with software. An important aspect in GUI testing is specification of system behavior and generation of test scripts. This research work is addressing the problem of testing GUI components through various techniques. The ultimate goal is to provide test manager with systematic methods to extract suitable test sequences for higher levels of testing. The XML schema based formalization approach presented here takes into account both dimensions of the testing problem; specification using XML-Schema is used both to drive the selection of tests and to identify interaction between system components to generate test sequences. 7.1 Motivation for XML Schema Based Testing The application of GUI technology in Component-Based software systems facilitates both the software development and the user operations. The task of testing is heavy and reduplicate, especially in case of regression testing. An important recent innovation for fostering interoperability has been the introduction of the eXtensible Markup Language (XML). It has established itself as the de facto standard form for specifying and exchanging data and documents between almost any digital or web applications. XML based stored procedures provide higher degree of independency between database server and the software components. Further, it supports existence of heterogeneous platforms and heterogeneous servers. Therefore, XML Schema

Upload: others

Post on 23-Jun-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapter 7shodhganga.inflibnet.ac.in › bitstream › 10603 › 8030 › 17... · data. 7.2.1 XML Schema XML Schema describes the structure of an XML document. It supports data types

105

Chapter 7

XML-Schema Based Testing Technique

Today, XML (eXtensible Mark-up Language) is being accepted as an effective

medium in data exchange over the web due to its modeling ability to support multiple

inheritance and querying capabilities. With evolution of XML specification language,

XML Schemas are convenient for definition of interface specifications, definition of

data models, protocol specifications etc. Graphical user Interface (GUI) is by far the

most popular means to interact with software. An important aspect in GUI testing is

specification of system behavior and generation of test scripts.

This research work is addressing the problem of testing GUI components

through various techniques. The ultimate goal is to provide test manager with

systematic methods to extract suitable test sequences for higher levels of testing. The

XML schema based formalization approach presented here takes into account both

dimensions of the testing problem; specification using XML-Schema is used both to

drive the selection of tests and to identify interaction between system components to

generate test sequences.

7.1 Motivation for XML Schema Based Testing

The application of GUI technology in Component-Based software systems

facilitates both the software development and the user operations. The task of testing

is heavy and reduplicate, especially in case of regression testing. An important recent

innovation for fostering interoperability has been the introduction of the eXtensible

Markup Language (XML). It has established itself as the de facto standard form for

specifying and exchanging data and documents between almost any digital or web

applications. XML based stored procedures provide higher degree of independency

between database server and the software components. Further, it supports existence

of heterogeneous platforms and heterogeneous servers. Therefore, XML Schema

Page 2: Chapter 7shodhganga.inflibnet.ac.in › bitstream › 10603 › 8030 › 17... · data. 7.2.1 XML Schema XML Schema describes the structure of an XML document. It supports data types

106

Based Testing approach has been adopted for describing input data in open and

standard form to automate test data generation.

An approach to automate generation of regression testing for GUI components

by incorporating XML based testing support has been projected with anticipation that

schema-based testing stands at a testing level above traditional code based testability.

For this, a Regression Testing engine has been designed. It incorporates Test case

checker to categorize the test suite and test case generator to generate regression test

suite for GUI component.

7.2 XML Specification Language

XML (extensible Markup Language) is derived from SGML (Standard

Generalized Markup Language). It is frequently used for data representation and

interchange in Web-based applications. Being semantic oriented, it increases the

expression ability of information semantic. Most of the data appearing on Internet is

organized by XML. With evolution of XML specification language, XML Schema

(XSD) evolved, which is currently the standard for specification of XML documents

structure. XML

Schemas and corresponding XML documents are becoming the most

important software artifacts and act as foundation for web services. Thus, XML

schema plays an important role in describing XML documents. In most cases, the

XML documents must conform to a schema that defines the type of data that is

accepted by a Web application. Therefore, an error in the schema or in XML

document can lead to failures in the application. At present, the main challenge

existing in XML is appropriate testing approach and criteria to ensure the reliability of

data.

7.2.1 XML Schema

XML Schema describes the structure of an XML document. It supports data

types and namespaces, whereby a namespace is a collection of names identified by

URL references. XML Schema based Test specifications are defined in an

unambiguous, standardized notation which makes them easier to understand and

document. The test process involves generating XML documents with some

modifications with respect to the original XML document and using queries to these

Page 3: Chapter 7shodhganga.inflibnet.ac.in › bitstream › 10603 › 8030 › 17... · data. 7.2.1 XML Schema XML Schema describes the structure of an XML document. It supports data types

107

documents to validate the schema. XML Schema offers numerous advantages in terms

of Stronger and Extensible Data Typing, better content modeling, and interoperability.

The XML documents and queries are generated according to a set of fault

classes defined for the XML schema. Sample XML document is represented in Figure

7.1 and sample XML Schema is shown in Figure 7.2 respectively. The XML

documents and queries are generated according to a set of fault classes defined for the

XML schema. XML schema embodies the following:

• Defines elements and attributes that can appear in a document.

• Defines which elements are child elements.

• Defines the number and order of child elements.

• Defines whether an element is empty or can include text.

• Defines data types for elements and attributes

Figure 7.1: Sample XML Document

Figure 7.1: Sample XML Document

Figure 7.2: Sample XML Schema

Figure 7.2: Sample XML Document

<?xml version="1.0"?>

<note>

<to>Albert</to>

<from>Rixy</from>

<heading>Reminder</heading>

<body>Meeting Next Week>body>

</note>

<?xml version="1.0"?>

<note

xmlns="http://www.w3schools.com"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.w3schools.com note.xsd">

<to>Albert</to>

<from>Rixy </from>

<heading>Reminder</heading>

<body>Meeting Next Week<body>

</note>

Page 4: Chapter 7shodhganga.inflibnet.ac.in › bitstream › 10603 › 8030 › 17... · data. 7.2.1 XML Schema XML Schema describes the structure of an XML document. It supports data types

108

7.2.2 XML Testing Domain

XML Schema based testing is the approach for the systematic generation of

the XML instances. A comprehensive set of instances is generated by sampling all

the possible combinations of elements within the Schema by applying and adapting

the well known ‘Category Partition Method’. This method provides a systematic and

semi-automated method for test data derivation, starting from analysis of

specifications until production of the test scripts. Following are the characteristics of

XML Schema-based testing:

• Well-form ness of XML Schema: Several validators for checking the syntax

and the structure of the XML Schema document are available, which detects

semantic errors in XML Schemas.

• Verifying XML Documents against the Schema Structure: XML validation

means checking the conformance of structure and data in an XML document

against different specifications or protocols models. Different XML

documents can use different schemas (DTD or XML Schemas) to specify the

valid (what they can do) and invalid (not allowed) documents. In this case a

XML document can be considered valid only if everything in the document

conforms to the declarations in schema. For this usually a schema should

include all the elements, attributes and entities that can be used in the

document as well.

• Generation of Conforming XML Instances: There are tools and

methodology for deriving XML instances, which represent the allowed

naming and structure of data for component interaction and for service

requests. XML instances can be generated from DTD as well. Depending on

the schema, XML instances can be annually generated. This could be

complicated and a huge work when schemas are complex.

7.3 XML Schema based Testing Framework

A Regression Testing Engine has been designed. It constitutes two important

components (i) test case checker and (ii) test case repairer. Figure 7.3 represents the

Architecture of Regression Testing Engine. Any GUI Component is represented by

Page 5: Chapter 7shodhganga.inflibnet.ac.in › bitstream › 10603 › 8030 › 17... · data. 7.2.1 XML Schema XML Schema describes the structure of an XML document. It supports data types

109

XML schema based on its specifications. It includes GUI component, its events, type

of event, event coverage like inter coverage and intra coverage.

The XML Editor used is XML SPY 2009. It contains a powerful graphical

XML Schema editor, with a visual design paradigm and intelligent entry helpers that

help to model, edit, and document XML Schemas. XML Editor adds a new simplified

and improved visual editing page for XML Schema, in addition to the hybrid

text/diagram page. The XML instances of the XML Schema of original component

are stored in an array. The instances are stored in the form of sequences, which are

traversed by implementing the all-path coverage criteria. Following are the

Algorithms for test instances creation, their comparison and categorization and

regression test suite generation.

Test Case Sequence(T) for a GUI component is a pair (S0, e1; e2; . . .; en),

consisting of a state S0 ∈ SI, called the initial state for T, and a legal event sequence

e1; e2; . . . ; en.

If the initial state specified in the test case is not reachable in the GUI and/or

its event sequence is illegal, then the test case is not executable. GUI test cases can be

classified as Usable test cases, Unusable test cases and Repairable Test cases.

GUI test case (S0, e1; e2; . . . ; en) is usable if it can execute to completion on a

modified GUI.

GUI test case (S0, e1; e2; . . . ; en) is unusable if a modification of a GUI causes the

state S0 to not be reachable in the GUI or if the sequence e1; e2; . . . ; en can-not

execute to completion. Unusable test cases cannot be executed on the GUI and are

usually discarded.

An unusable test case is repairable if its initial state S0 is reachable, and its event

sequence can be made legal for the modified GUI, i.e., (ei, ek>i) ∈ E) or {(ei, ex),

(ex, ek>i)} ∈ E for E, for 1 ≤ i ≤ n of the modified GUI.

Page 6: Chapter 7shodhganga.inflibnet.ac.in › bitstream › 10603 › 8030 › 17... · data. 7.2.1 XML Schema XML Schema describes the structure of an XML document. It supports data types

110

Figure 7.3: Architecture of Regression Testing Engine

ALGORITHM 1: Creation of Test Cases

1. Create XML instances of the XML Schema of original component.

2. XML instances are stored in the form of event sequences of the component.

3. Find all possible paths in the event sequences.

4. Apply all-path and inter- component coverage criteria to generate sequences of

test cases.

5. Find out if the test cases are executable or not.

6. Count the length of each sequence which is traversed.

7. Find out the total number of test cases generated.

8. Stop

XML Document

REGRESSION

TESTER

XML Schema

Test Case

Checker

Test Case

Repairer

Unusable Test

Case

Usable Test Case

Repaired Test

Cases

New Test Cases

Page 7: Chapter 7shodhganga.inflibnet.ac.in › bitstream › 10603 › 8030 › 17... · data. 7.2.1 XML Schema XML Schema describes the structure of an XML document. It supports data types

111

ALGORITHM 2: To compare and distinguish event sequences of components.

1. Take XML instances created from XML schemas of both components

2. Compare event sequences of the original and the newer(modified) component.

3. Event sequences, which are identical, are present in both the components.

4. Find out the event sequences which are present only in the original component.

5. Mark them as deleted sequences.

6. Find out the new event sequences in the modified component and mark them as

added.

7. Check the parent node of the deleted event sequence in the original component

and the added event sequence in the modified component.

8. If the parent node is the same, it indicates the original event sequence can be

repaired to generate new event sequence otherwise it is anew event sequence.

9. Mark the sequences as added, deleted repaired or new event sequences.

10. Go to step 1 until there is no more sequence left un-traversed.

11. Stop

ALGORITHM 3: To generate Regression test Suite

1. XML schema of the modified component is evaluated.

2. Traverse the schema by adopting all-path coverage criteria.

3. Find out the event sequences marked as added. These are the newer event

sequences for the modified component. It indicates some new functionality.

4. Find out the event sequences marked as repaired. These are the event

sequences traced the original component where parent node remains the same

and sequence of events have changed.

5. Find out the event sequences which are reusable that is, they remain the same

in both the components.

6. Find out the complete set of test sequences. It is the final regression test suite

generated.

7.4 Experimental Setup

For practical implementation, Notepad version 4.6 and Notepad version 5.0 as

well as Adobe version 5 and version 7 are considered. Based on specification, both

the components are represented in XML which is validated by the XML Schema

Page 8: Chapter 7shodhganga.inflibnet.ac.in › bitstream › 10603 › 8030 › 17... · data. 7.2.1 XML Schema XML Schema describes the structure of an XML document. It supports data types

112

written in the XML SPY 2009. XML instances of the corresponding schema are

stored into an array in the form of event sequences as these components are GUI in

nature. Further, sequences are traversed for all possible combinations to generate test

cases satisfying inter and intra coverage criteria. Test checker component of

Regression Testing Engine checks the validity of test instances for the second

component and classify them as reusable, repaired, deleted and added events. Test

case generator finally creates regression test suite. It takes as input XML

representation of GUI component. GUI’s are hierarchical in nature.

The state of a GUI is not static; events preformed on the GUI change its state.

The events E = {e1, e2. . . en} associated with a GUI are functions from one state of

the GUI to another state of the GUI. A set of states SI is called the valid initial state

set for a particular GUI if the GUI may be in any state Si ∈ SI when it is first

invoked. Given a GUI in state Si ∈ SI, i.e., in a valid initial state of the GUI, new

states may be obtained by performing events on Si. These states are called the

reachable states of the GUI.

Another important part of regression testing engine is test case checker and

repairer that traverse the XML schemas of the components to find out valid event

sequences for both as well complete set of regression test suite (i.e event sequences

form the original component that can be used for the newer component).

Figure 7.4 shows interface designed for XML schema based testing of GUI

components. User can interactively generate test case sequences for GUI components.

XML Schema needs to be defined initially for the components. Different features of

the interface can be used to compare and to generate test sequences.

Figure 7.5 shows different event sequences generated for Adobe 5. For

practical demonstration parent component ‘FILE’ is taken. Event sequences are

generated based on event-interaction coverage criteria. Comparison of earlier and

newer version in terms of added and deleted event sequences has been carried out.

The event sequences are suffixed with ADD, DEL or REP to indicate the status. The

results are shown in Figure 7.6. The complete set of valid test cases that are usable,

new and repaired form the earlier test case sequences for the modified component i.e.

Adobe 7 are shown in Figure 7.7. For practical demonstration, initially only two main

components of Adobe are considered.

Page 9: Chapter 7shodhganga.inflibnet.ac.in › bitstream › 10603 › 8030 › 17... · data. 7.2.1 XML Schema XML Schema describes the structure of an XML document. It supports data types

113

Figure 7.4: XML Based GUI Regression Testing

Page 10: Chapter 7shodhganga.inflibnet.ac.in › bitstream › 10603 › 8030 › 17... · data. 7.2.1 XML Schema XML Schema describes the structure of an XML document. It supports data types

114

Figure 7.5: Event Sequences for Adobe 5.0

.

Page 11: Chapter 7shodhganga.inflibnet.ac.in › bitstream › 10603 › 8030 › 17... · data. 7.2.1 XML Schema XML Schema describes the structure of an XML document. It supports data types

115

Figure 7.6: Comparison of Earlier and Newer version

Page 12: Chapter 7shodhganga.inflibnet.ac.in › bitstream › 10603 › 8030 › 17... · data. 7.2.1 XML Schema XML Schema describes the structure of an XML document. It supports data types

116

Figure 7.7: Generation of Regression Test Suite

Page 13: Chapter 7shodhganga.inflibnet.ac.in › bitstream › 10603 › 8030 › 17... · data. 7.2.1 XML Schema XML Schema describes the structure of an XML document. It supports data types

117

7.5 Results and Discussion

For practical demonstration, initially only two main components of Adobe are

considered. Test case sequences or event sequences of varying lengths are generated

for Adobe 5. Test sequences generated for Adobe 5.0 and Regression test suite for

Adobe 7.0 are shown in Table 7.1 and Table 7.2. Total number of test sequences of

Length 1 is 10, Length 2 is 11, Length 3 is 5, Length 4 is 32 and length 5 is 25. Thus

in all 83 test cases are generated.

The results are shown in Table 7.1. Out of these 83 event sequence, 33 are

found to be reusable for the newer component, 15 are repaired and 92 are new event

sequences for the modified component. From the initial set of 83 event sequences, 35

are found to be obsolete. i.e., they are no longer valid for regression test suite.

Length1 Length 2 Length3 Length 4 Length5 Total Test Cases

10 11 5 32 25 83

Table 7.1: Test Sequences Generated for Adobe 5

Deleted

Test cases

Repaired

Test Cases

New Test

Cases

Reusable

Test Cases

Total Test Cases

35 15 92 33 140

Table 7.2: Regression Test Suite for Adobe 7

7.6 Comparison with Existing Methods

Though over a number of years, the problem of generating instances from

XML Schema has been investigated and several solutions have been adopted, yet

these approaches only work in an ad hoc manner, as they do not crack all possible

elements combinations of the schema. Rather, research focused on adopting a

systematic criterion for generating instances which can apply a XML based black-box

testing method. Thus, the approach provides more accurate and meaningful XML

instances generation supplemented with exploring regression test suite for GUI

components.

Page 14: Chapter 7shodhganga.inflibnet.ac.in › bitstream › 10603 › 8030 › 17... · data. 7.2.1 XML Schema XML Schema describes the structure of an XML document. It supports data types

118

7.7 Summary

This approach aims at automation and generation of regression test suite from

the XML representation of component. An automated regression test system which is

well designed and implemented can efficiently support testing work. The testing

engine designed has proven to be successful. The system uses XML to express the test

suite and display it. This simplifies the system implementation as well as improves

development efficiency of the system. A visual editor to generate test sequences of

different lengths, for classification of test cases has been designed. It helps test

designer save effort and ensure accuracy of the results.

Mutation Testing, a fault based testing technique has been analyzed and

practically experimented to detect the efficiency of high order mutants in next

chapter.