30
Critical Paths for GUI Regression Testing Zheng-Wen Shen 2005/07/13

20050713 critical paths for gui regression testing

Embed Size (px)

DESCRIPTION

Critical Paths for GUI Regression Testing. Alexander K. Ames and Haward Jie. Univ. of California, Santa Cruz

Citation preview

Page 1: 20050713 critical paths for gui regression testing

Critical Paths for GUI Regression Testing

Zheng-Wen Shen

2005/07/13

Page 2: 20050713 critical paths for gui regression testing

References

Critical Paths for GUI Regression Testing. Alexander K. Ames and Haward Jie. Univ. of California, Santa Cruz

http://www.soe.ucsc.edu/~sasha/ S’04 – Topics in Software Engineering

Page 3: 20050713 critical paths for gui regression testing

Outline

1. Introduction

2. Background

3. Methodology

4. Evaluation

5. Future Work

6. Conclusion

Page 4: 20050713 critical paths for gui regression testing

1. Introduction

The goal of regression test selection analysis is to answer the following question:

To apply test selection to test suites, and determine the critical unit tests to detect which state are the critical paths to test.

Page 5: 20050713 critical paths for gui regression testing

In describing GUI testing

A state to be the result of a single user action or manipulation of the GUI.

There are paths between states.

Critical path

Page 6: 20050713 critical paths for gui regression testing

2. Background

Manual Regression Testing The manual testing of the interface.

A time-consuming and labor intensive process.

Automatic Regression Testing Capture/Replay tools

The replay portion can be problematic.

Unit Testing for GUIs

Page 7: 20050713 critical paths for gui regression testing

Comparison of Testing Techniques

Page 8: 20050713 critical paths for gui regression testing

Conventional Process for GUI testing

Modified Process for GUI Testing

Page 9: 20050713 critical paths for gui regression testing

GUI call graphs

A call graph as opposed to a CFG

The vertices of the graphs represent the states of the GUI

The edges within the graph show action taken in the manipulation of the GUI that shall bring in from one state to the next.

The weights represent how many times the test traverses the same states.

Page 10: 20050713 critical paths for gui regression testing

G = (V, S, e, x)

p = [s1, s2, …, sn], n>2

p = [s1, v1, s2, v2, …, vn-1, sn], n>2

Page 11: 20050713 critical paths for gui regression testing

GUI Regression Selection

Page 12: 20050713 critical paths for gui regression testing

3. Methodology

3.1 Assumptions

3.2 Test Case Data Capture

3.3 XML Parsing

3.4 Unit Test

Page 13: 20050713 critical paths for gui regression testing

3.1 Assumptions

The test cases also have some redundancy paths.

The Standard GUI classes perform according to the specification.

The next version of the tested software will not have any dramatic changes.

Page 14: 20050713 critical paths for gui regression testing

The applications being tested is that given an implementation of the applications with separate GUI and non-GUI components.

Pure frontend for presentation V.S. backend or business logic layers.

Our focus in testing is strictly on the functionality of the user-interface.

Page 15: 20050713 critical paths for gui regression testing

3.2 Test Case Data Capture

To capture the test case data we use a capture/replay tool – Abbot.

Abbot has provided us with the test case data in XML format.

We introduce a testing aide that reads the XML data.

Page 16: 20050713 critical paths for gui regression testing

The Abbot’s XML test script

Page 17: 20050713 critical paths for gui regression testing

3.3 XML Parsing

Page 18: 20050713 critical paths for gui regression testing

3.4 Unit Test

After the critical paths have been identified, we need to check the correctness of the states.

Use a JUnit regression framework.

Page 19: 20050713 critical paths for gui regression testing

4. Evaluation

1. Jdai

2. Numerical Chameleon

3. Huckster

4. BeatsByDesign

Page 20: 20050713 critical paths for gui regression testing

4.1 Data for test case parsing

Page 21: 20050713 critical paths for gui regression testing

Plotting exec time for number of test cases

Page 22: 20050713 critical paths for gui regression testing

4.2 Test Implementation

Page 23: 20050713 critical paths for gui regression testing

JDAI Testcase 1: Image Rotation

Page 24: 20050713 critical paths for gui regression testing

JDAI Testcase 2: Image Info Edit

Page 25: 20050713 critical paths for gui regression testing

5. Future Work

To build the next version to be extensible with respect to the XML DTD.

Automate the coding of the unit tests directly from processing the captured GUI test suites.

Page 26: 20050713 critical paths for gui regression testing

6. Conclusion

We see that GUI regression tests have redundant steps which are critical to the functioning of the GUI and deserve sufficient testing.

Performing the unit tests for critical states will save much time and testing versus manually trying to set up the tests without knowing them or going through the manual testing process.

Page 27: 20050713 critical paths for gui regression testing

Jdai (Java Digital Album Infrastructure)

Page 28: 20050713 critical paths for gui regression testing

Numerical Chameleon

Page 29: 20050713 critical paths for gui regression testing

Huckster

Page 30: 20050713 critical paths for gui regression testing

BeatsByDesign