25
1 1 DESIGN AND EMPIRICAL COMPARISON OF MULTIPLE TEST ORACLES FOR GUIs Ishan Banerjee Masters Thesis 08/01/2003 Advisor: Committee Members: Atif M. Memon Adam Porter Marvin V. Zelkowitz Department of Computer Science University of Maryland 2 WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This is the text. This is the text .

WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

1

1

DESIGN AND EMPIRICAL COMPARISON OF MULTIPLE TEST ORACLES FOR GUIs

Ishan Banerjee

Masters Thesis08/01/2003

Advisor: Committee Members:Atif M. Memon Adam Porter

Marvin V. Zelkowitz

Department of Computer ScienceUniversity of Maryland

2

WHAT IS GUI TESTING ?

SelectText(“This”) Format Font 18 OK SelectText

(“text”)

Format Font Underline OK

This is the text.

This is the text.

Page 2: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

2

3

TEST ORACLETest Case

Oracle InformationGenerator

OracleProcedure

Expected GUI State

ExecutionMonitor

Oracle

ActualGUI State

Run-timeinformation from

executing GUI

Verdict

• Oracle Information Generator - Expected state• Execution Monitor - Actual state• Oracle Procedure compares actual and expected state

4

GUI TEST ORACLE• Components

• Oracle Information – Expected State• Oracle Procedure – Compare

• Oracle Information Generator• Manual• Model Based – From Specifications• Execution Based

? Screen Scraping? Execution Extraction <==

• Oracle Procedure• Actual Output <==> Oracle Information• May be a set of rules for checking actual output• May be an equality check

Page 3: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

3

5

CHALLENGES OF THIS WORK• Design GUI representation that can be tuned

to create multiple test oracles for GUIs• Design multiple oracle information for GUIs• Develop compatible oracle procedure for

GUIs• Develop metrics for comparing different types

of GUI test oracles

6

OUTLINE

• Related Work• GUI State• Oracle Information• Oracle Procedure• Combining Oracle

Information and Procedure• Experiments

• Tool support• Fault seeding

• Results

Page 4: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

4

7

RELATED WORK• TAOS: Testing and Analysis with Oracle

Support, D.J. Richardson, ISSTA 1994.• Manual• Specification based

• TOBAC: A Test Case Browser for Testing Object-Oriented Software, E. Siepman and A.R. Newton, ISSTA 1994.• Suggests 7 different oracles for object oriented

programs

8

OUTLINE

• Related Work• GUI State• Oracle Information• Oracle Procedure• Combining Oracle

Information and Procedure• Experiments

• Tool support• Fault seeding

• Results

Page 5: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

5

9

TEST CASE AND GUI STATE

e1 e2 … ei en-1 enT =

S0 = Initial State of the GUI

T = GUI test case of length nei = ith GUI event of test case

S0 S1 S2 … Si-1 Si …

• A GUI test case consists of GUI events• The state of the GUI changes as T is executed• Event ei is executed on state Si-1 to yield state Si

Sn-1 Sn

INITIAL STATE

10

GUI STATEA GUI Window

State S = {(wi , pj , vk )}SFIND = { (“Cancel”, “Color”, “Grey”),

(“Cancel”, “Height”, 40),(“Cancel”, “Width”, “100”), (“Cancel”, “Text”, “Cancel”), …

}

Color = “Grey”

Height = 40

Width = 100

Text = “Cancel”

Properties of

Wherew ? Wp ? Pv ? V

A WIDGET

• State of the entire GUI is the union of all window states• Multiple types of oracle information can be created by selecting subset

Page 6: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

6

11

OUTLINE

• Related Work• GUI State• Oracle Information• Oracle Procedure• Combining Oracle

Information and Procedure• Experiments

• Tool support• Fault seeding

• Results

12

GUI TEST ORACLETest Case

Oracle InformationGenerator

OracleProcedure

Oracle Information

ExecutionMonitor

Oracle

ActualState

Run-timeinformation from

executing GUI

Verdict

• Oracle information for a test case is the expected state of theGUI when the test case is executed

Page 7: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

7

13

ORACLE INFORMATION• Given a Test Case T = < S0; e1, e2, …, en >

• S0 = State of GUI before executing T• ei = ith event of test case

• Oracle Information OI = < S1 ,… Sn>• Si = State of GUI after event ei is executed• Si may be complete or partial state of GUI

By varying the information in Si, different Levels of Oracle Information (LOI) can be created

14

WIDGET – LOI1

• SAPP(t) = { (wi , pj , vk ) }• After each event ei, select triples for the active widget ww,j• ww,j is the widget on which event ei is executed

e1 e2 … Cancel en-1 enT =

S0 S1 S2 … Si-1 Si …

Sn-1 Sn

(wF,1, p1, v1)(wF,2, p2, v1)

…(wF,…, pr, v1)

(CANCEL, COLOR, GREY)(CANCEL, HEIGHT, 40)(CANCEL, WIDTH, 100)

(CANCEL, TEXT, CANCEL)

(wF,…, p1, v1)(wF,…, p2, v1)

…(wF,m, ps, v1)

Window F

(wX,1, p1, v1)(wX,2, p2, v1)

…(wX,…, pt, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,…, pu, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,n, pv, v1)

Window X

(wY,1, p1, v1)(wY,2, p2, v1)

…(wY,…, px, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,…, py, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,o, pz, v1)

Window Y

TRIPLE FOR CANCEL

COMPLETE STATE OF GUI AFTER CANCEL

Page 8: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

8

15

ACTIVE WINDOW – LOI2

• SAPP(t) = { (wi , pj , vk )}• After each event ei, select triples for the active window• The active window is W, on which event ei is executed

e1 e2 … match case en-1 enT =

S0 S1 S2 … Si-1 Si …

Sn-1 Sn

(wF,1, p1, v1)(wF,2, p2, v1)

…(wF,, pa, v1)

(wF,.., p1, v1)(wF,.., p2, v1)

…(wF,.., pb, v1)

(wF,.., p1, v1)(wF,.., p2, v1)

…(wF,m, pc, v1)

Window F

TRIPLE FOR FIND

WINDOW

COMPLETE STATE OF GUI AFTER MATCH CASE(wX,1, p1, v1)(wX,2, p2, v1)

…(wX,…, pt, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,…, pu, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,n, pv, v1)

Window X

(wY,1, p1, v1)(wY,2, p2, v1)

…(wY,…, px, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,…, py, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,o, pz, v1)

Window Y

16

VISIBLE WINDOWS - LOI3

e1 e2 … ei en-1 enT =

S0 S1 S2 … Si-1 Si …

Sn-1 Sn

• SAPP(t) = { (wi , pj , vk)}• After each event ei, select triples for all the visible windows

isVisible = TRUE

isVisible = TRUE

isVisible = FALSE

Page 9: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

9

17

ALL WINDOWS – LOI4

e1 e2 … ei en-1 enT =

S0 S1 S2 … Si-1 Si …

Sn-1 Sn

• SAPP(t) = { (wi , pj , vk )}• After each event ei, select all triples for all the windows• All triples taken together is the complete state of the GUI

18

OUTLINE

• Related Work• GUI State• Oracle Information• Oracle Procedure• Combining Oracle

Information and Procedure• Experiments

• Tool support• Fault seeding

• Results

Page 10: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

10

19

ORACLE PROCEDURE• At specified times, while executing a test case,

compares the actual state of the executing GUI with the Oracle Information (OI), using some constraints.

AS = actual state OI = expected state

Level of Oracle Procedure

Different Levels of Oracle Procedure (LOP) are created by constraining• the AS and OI used for comparing,• the frequency of calling the Oracle Procedure

20

WIDGET – LOP1OI = Oracle Information

LOP1

Verdict

• After each event ei, select triples from AS and OI for the active widget ww,j• ww,j is the widget on which event ei is executed

(wX,1, p1, v1)(wX,2, p2, v1)

…(wX,…, pt, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,…, pu, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,n, pv , v1)

Window X

(wY,1, p1, v1)(wY,2, p2, v1)

…(wY,…, px, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,…, py, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,o, pz, v1)

Window Y

(wZ,1, p1, v1)(wZ,2, p2, v1)

…(wZ,…, pa, v1)

(wZ,…, p1, v1)(wZ,…, p2, v1)

…(wZ,…, pb, v1)

(wz,…, p1, v1)(wZ,…, p2, v1)

…(wZ,o, pc, v1)

Window Z

(wX,1, p1, v1)(wX,2, p2, v1)

…(wX,…, pt, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,…, pu, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,n, pv , v1)

Window X

(wY,1, p1, v1)(wY,2, p2, v1)

…(wY,…, px, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,…, py, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,o, pz, v1)

Window Y

Page 11: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

11

21

ACTIVE WINDOW – LOP2OI = Oracle Information

LOP2

Verdict

•After each event ei, select triples, from AS and OI, for the active window• Active Window is W on which event ei is executed

AS = Actual State(wX,1, p1, v1)(wX,2, p2, v1)

…(wX,…, pt, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,…, pu, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,n, pv , v1)

Window X

(wY,1, p1, v1)(wY,2, p2, v1)

…(wY,…, px, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,…, py, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,o, pz, v1)

Window Y

(wZ,1, p1, v1)(wZ,2, p2, v1)

…(wZ,…, pa, v1)

(wZ,…, p1, v1)(wZ,…, p2, v1)

…(wZ,…, pb, v1)

(wz,…, p1, v1)(wZ,…, p2, v1)

…(wZ,m, pc, v1)

Window Z

(wX,1, p1, v1)(wX,2, p2, v1)

…(wX,…, pt, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,…, pu, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,n, pv , v1)

Window X

(wY,1, p1, v1)(wY,2, p2, v1)

…(wY,…, px, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,…, py, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,o, pz, v1)

Window Y

22

VISIBLE WINDOWS - LOP3OI = Oracle Information

LOP3

(w1, p1, v1)(w1, p2, v1)

…(w1, pn, v1)

(wi, p1, v1)(wi, p2, v1)

…(wi, pn, v1)

(wm, p1, v1)(wm, p2, v1)

…(wm, pn, v1)

Window WVisible

(w1, p1, v1)(w1, p2, v1)

…(w1, pn, v1)

(wi, p1, v1)(wi, p2, v1)

…(wi, pn, v1)

(wm, p1, v1)(wm, p2, v1)

…(wn, po, v1)

Window XVisible

(w1, p1, v1)(w1, p2, v1)

…(w1, pn, v1)

(wi, p1, v1)(wi, p2, v1)

…(wi, pn, v1)

(wm, p1, v1)(wm, p2, v1)

…(wo, pm, v1)

Window YInvisible Verdict

AS = Actual State

• After each event ei, select triples, from AS and OI, for all visible windows

(wX,1, p1, v1)(wX,2, p2, v1)

…(wX,…, pt, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,…, pu, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,n, pv , v1)

Window X

(wY,1, p1, v1)(wY,2, p2, v1)

…(wY,…, px, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,…, py, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,o, pz, v1)

Window Y

Page 12: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

12

23

ALL WINDOWS – LOP4OI = Oracle Information

LOP4

Verdict

AS = Actual State

• After each event ei, select all triples from AS and OI for all the windows

(wX,1, p1, v1)(wX,2, p2, v1)

…(wX,…, pt, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,…, pu, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,n, pv , v1)

Window X

(wY,1, p1, v1)(wY,2, p2, v1)

…(wY,…, px, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,…, py, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,o, pz, v1)

Window Y

(wZ,1, p1, v1)(wZ,2, p2, v1)

…(wZ,…, pa, v1)

(wZ,…, p1, v1)(wZ,…, p2, v1)

…(wZ,…, pb, v1)

(wz,…, p1, v1)(wZ,…, p2, v1)

…(wZ,o, pc, v1)

Window Z

(wX,1, p1, v1)(wX,2, p2, v1)

…(wX,…, pt, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,…, pu, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,n, pv , v1)

Window X

(wY,1, p1, v1)(wY,2, p2, v1)

…(wY,…, px, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,…, py, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,o, pz, v1)

Window Y

(wZ,1, p1, v1)(wZ,2, p2, v1)

…(wZ,…, pa, v1)

(wZ,…, p1, v1)(wZ,…, p2, v1)

…(wZ,…, pb, v1)

(wz,…, p1, v1)(wZ,…, p2, v1)

…(wZ,o, pc, v1)

Window Z

24

FINAL STATE – LOP5OI = Oracle InformationAS = Actual State

• After last event en, select all triples from AS and OI

(w1, p1, v1)(w1, p2, v1)

…(w1, pn, v1)

(wi, p1, v1)(wi, p2, v1)

…(wi, pn, v1)

(wm, p1, v1)(wm, p2, v1)

…(wm, pn, v1)

Window WVisible

(w1, p1, v1)(w1, p2, v1)

…(w1, pn, v1)

(wi, p1, v1)(wi, p2, v1)

…(wi, pn, v1)

(wm, p1, v1)(wm, p2, v1)

…(wm, pn, v1)

Window XVisible

LOP5

Verdict

(w1, p1, v1)(w1, p2, v1)

…(w1, pn, v1)

(wi, p1, v1)(wi, p2, v1)

…(wi, pn, v1)

(wm, p1, v1)(wm, p2, v1)

…(wm, pn, v1)

Window YInvisible

(wX,1, p1, v1)(wX,2, p2, v1)

…(wX,…, pt, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,…, pu, v1)

(wX,…, p1, v1)(wX,…, p2, v1)

…(wX,n, pv , v1)

Window X

(wY,1, p1, v1)(wY,2, p2, v1)

…(wY,…, px, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,…, py, v1)

(wY,…, p1, v1)(wY,…, p2, v1)

…(wY,o, pz, v1)

Window Y

(wZ,1, p1, v1)(wZ,2, p2, v1)

…(wZ,…, pa, v1)

(wZ,…, p1, v1)(wZ,…, p2, v1)

…(wZ,…, pb, v1)

(wz,…, p1, v1)(wZ,…, p2, v1)

…(wZ,o, pc, v1)

Window Z

Page 13: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

13

25

OUTLINE

• Related Work• GUI State• Oracle Information• Oracle Procedure• Combining Oracle

Information and Procedure• Experiments

• Tool support• Fault seeding

• Results

26

COMBINING LOI AND LOPOI = Oracle Information(w1, p1, v1)(w1, p2, v1)

…(w1, pn, v1)

(wi, p1, v1)(wi, p2, v1)

…(wi, pn, v1)

(wm, p1, v1)(wm, p2, v1)

…(wm, pn, v1)

Window WVisible

(w1, p1, v1)(w1, p2, v1)

…(w1, pn, v1)

(wi, p1, v1)(wi, p2, v1)

…(wi, pn, v1)

(wm, p1, v1)(wm, p2, v1)

…(wm, pn, v1)

Window XVisible

LOP1

(w1, p1, v1)(w1, p2, v1)

…(w1, pn, v1)

(wi, p1, v1)(wi, p2, v1)

…(wi, pn, v1)

(wm, p1, v1)(wm, p2, v1)

…(wm, pn, v1)

Window WVisible

(w1, p1, v1)(w1, p2, v1)

…(w1, pn, v1)

(wi, p1, v1)(wi, p2, v1)

…(wi, pn, v1)

(wm, p1, v1)(wm, p2, v1)

…(wm, pn, v1)

Window XVisible

(w1, p1, v1)(w1, p2, v1)

…(w1, pn, v1)

(wi, p1, v1)(wi, p2, v1)

…(wi, pn, v1)

(wm, p1, v1)(wm, p2, v1)

…(wm, pn, v1)

Window YInvisible Verdict

AS = Actual State(w1, p1, v1)(w1, p2, v1)

…(w1, pn, v1)

(wi, p1, v1)(wi, p2, v1)

…(wi, pn, v1)

(wm, p1, v1)(wm, p2, v1)

…(wm, pn, v1)

Window YInvisible

(wi, p1, v1)

(wi, p2, v1)

(wi, pn, v1)

• LOP1 may be used with LOI1, LOI2, LOI3, LOI4

Page 14: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

14

27

TYPES OF ORACLES• An oracle procedure may use less than available

oracle information (OI)• The OI can be generated before running the test case• Depending on resources available at OI collection,

different OI is created• Depending on resources available at test case

execution time, the oracle procedure may use a subset of available OI

• The 4 LOI and 5 LOP can be combined into 11 test oracles

28

COMBINING LOI AND LOP

XXXXXLOI4

XXXLOI3

XXLOI2

XLOI1

LOP5LOP4LOP3LOP2LOP1

• For the diagonal elements, all the Oracle Information is used by the Oracle Procedure

• For the sub-diagonal elements, the Oracle Procedure uses less than available Oracle Information

Page 15: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

15

29

OUTLINE

• Related Work• GUI State• Oracle Information• Oracle Procedure• Combining Oracle

Information and Procedure• Experiments

• Tool support• Fault seeding

• Results

30

QUESTIONS

• What is the cost incurred in using these oracles ?

• Do different types of oracles detect different number of faults for a given number of test cases ?

• Length of test case versus oracle types.

Page 16: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

16

31

APPROACH

• 4 applications• Seeded 100 faults to create 100 mutants• Generated 600 test cases for each application• Reported results of 4 x 100 x 600 = 240,000

test case runs

32

PROCESS• Generate test cases• Run test case on correct application

• Collect oracle information (LOI1-LOI4)

• Run test case on mutants• Compare the actual state with stored oracle

information using different levels of oracle procedure (LOP1-LOP5)

Page 17: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

17

33

SUBJECT APPLICATIONS• Subject Applications

• TerpOffice – 4 Java applications• Developed by students of undergraduate software

engineering (CMSC 435)

• Fairly large programs

LOC Classes Windows

TerpWord 1,747 9 8

TerpPresent 4,769 4 5

TerpPaint 9,287 42 8

TerpSpreadSheet 9,964 25 6

TOTAL 25,767 80 27

34

MUTANTS• Seeded single fault in original code to create

one mutant• Single fault avoids fault interaction• Easier to identify a fault when a mutant it

killed• Seeded 100 faults for each application• Total 400 mutants

Page 18: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

18

35

KILL MUTANTS• A mutant is ‘killed’ when a test case

distinguishes it from the original application• Execute a test case on each mutant• Compare actual output, AS, of mutant with

expected output from OI• Use different types of oracle for comparing• Using different oracles, a mutant may or may not

be killed for a test case

• Execute 600 test cases for each application

36

TOOL SUPPORT• Manual process

• Executing a test case with 20 events takes minute

• Observing and recording Oracle Information is time consuming

• Comparing actual state with expected state is time consuming

• Automated the entire process

Page 19: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

19

37

TOOL SUPPORT

GUI TEST ORACLE INFORMATION

GUI REPRESENTATION

TEST CASE EXECUTOR,ORACLE PROCEDURE

APPLICATION

ORACLE INFORMATION GENERATOR

TEST CASE GENERATOR

TEST CASESREPORT

100 MUTANTS

TESTING ARTIFACT

TESTING TOOL

Intermediate data generated by tool

Testing tool from GUITAR

38

OUTLINE

• Related Work• GUI State• Oracle Information• Oracle Procedure• Combining Oracle

Information and Procedure• Experiments

• Tool support• Fault seeding

• Results

Page 20: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

20

39

ORACLE INFORMATION GENERATION TIME

Final state required least time because only one state was queried

0

2

4

6

8

10

12

14

TerpPresent TerpWord TerpSpreadSheet TerpPaint

Tim

e (h

ours

) LOI1

LOI2LOI3LOI4Final State

40

ORACLE STORAGE SPACE

• Space increases from LOI1 to LOI4• Storing the final state requires less space than LOI2-LOI4

0

50

100

150

200

250

TerpPresent TerpWord TerpSpreadSheet TerpPaint

Stor

age

Size

(M

B)

LOI1

LOI2LOI3

LOI4Final state

Page 21: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

21

41

COMPARISON TIME

• Comparison time for LOP5 is least for all applications• Only the final state was obtained

0

100

200

300

400

500

600

700

TerpPresent TerpWord TerpSpreadSheet TerpPaint

Tim

e (h

ours

) LOP1LOP2

LOP3LOP4

LOP5

42

TYPES OF ORACLES

X L5X L4XXXLOI4

X L3XXLOI3

X L2XLOI2

X L1LOI1

LOP5LOP4LOP3LOP2LOP1

• Diagonal entries labeled as L1…L5• Faults detected for sub-diagonal entries is same as diagonal entry• The LOP uses subset of LOI

Page 22: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

22

43

FRACTION OF FAULTS

L3, L4, L5 found more faults than L1 and L2

X L5X L4XXXLOI4

X L3XXLOI3

X L2XLOI2

X L1LOI1

LOP5

LOP4

LOP3

LOP2

LOP1

0

20

40

60

80

100

TerpPresent TerpWord TerpSpreadSheet TerpPaint

% o

f Fau

lts D

etec

ted

L1L2

L3L4

L5

44

FIND FAULTS EARLY

• Defects found earlier with L3, L4

0

1000

2000

3000

4000

5000

6000

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Test Case Length

Num

ber

of T

est C

ases

Det

ectin

g Fa

ults

L1L2L3

L4

Page 23: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

23

45

NUMBER OF FAULTS DETECTED BY A TEST CASE

• Larger number of test cases find faults using L3, L4, L5

1234567891011121314151617181920

L1

L4

02004006008001000120014001600

18002000

Num

ber

of T

est c

ases

Number of Faults

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

L1

L3

L5

0

500

1000

1500

2000

Num

ber

of T

est c

ases

Number of Faults

46

LESSONS LEARNED• Different oracles have different cost and fault

detection ability• Use of “Final State” is cost effective

• Less storage and generation time• Found almost as many fault as “Visible Window”

and “All Windows”• If short test cases are available

• Use an “Visible Windows” and “All Windows”• “Final State” may miss faults that are masked,

by the time the last event is executed

Page 24: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

24

47

CONTRIBUTIONS• Defined GUI state, so that is can be tuned to

create multiple test oracles• Developed GUI test oracles

• Oracle information• Oracle procedure

• Developed tools for experiment• Designed and conducted an experiment• Developed guidelines for GUI testing

48

BROADER IMPACTS• Applied multiple test oracles for effective

regression testing (ICSM 2003)• Developed reverse engineering tool for GUIs

(WCRE 2003)• Compared multiple test oracles for GUI testing

(ASE 2003)• Collaborated with Hughes Network Systems

on developing testing tools

Page 25: WHAT IS GUI TESTINGatif/Teaching/Fall2003/Lectures/Ishan.pdf · WHAT IS GUI TESTING ? SelectText (“This”) Format Font 18 OK SelectText (“text”) Format Font Underline OK This

25

49

FUTURE WORK• Metrics to evaluate and compare test oracles• Use Windows applications as subjects• Generate multiple types of test cases and

observe the effect of different oracles