38
Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary Chapter 19: GUI Testing Ian Tucker December 3, 2006 Ian Tucker Chapter 19: GUI Testing

Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Chapter 19: GUI Testing

Ian Tucker

December 3, 2006

Ian Tucker

Chapter 19: GUI Testing

Page 2: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

1 Introduction

2 The Currency Conversion ProgramAn Introduction to the ProgramTesting the program

3 Unit TestingUnit Testing ConsiderationsUnit Testing Methods

4 Integration TestingIntegration Testing Considerations

5 System TestingSystem Testing ConsiderationsSystem Level Threads

6 Summary

Ian Tucker

Chapter 19: GUI Testing

Page 3: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Introduction

Ian Tucker

Chapter 19: GUI Testing

Page 4: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Event driven

Unit “button level” testing

Not much integration testing

System level testing

UML Behavioral models

StateChartsFinite State Machines

Ian Tucker

Chapter 19: GUI Testing

Page 5: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

An Introduction to the Program

The Currency Conversion Program

Ian Tucker

Chapter 19: GUI Testing

Page 6: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Testing the program

The Program:Testing the Program

Ian Tucker

Chapter 19: GUI Testing

Page 7: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Testing the program

Identify

User inputsVisible & observable system outputs

Ian Tucker

Chapter 19: GUI Testing

Page 8: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Testing the program

Input Events

Input Event

ip1 Enter U.S. dollar amountip2 Click on a country button

ip2.1 Click on Brazilip2.2 Click on Canadaip2.3 Click on European Communityip2.4 Click on Japan

ip3 Click on Compute Buttonip4 Click on Clear Buttonip5 Click on Quit Buttonip6 Click on OK in error message

Ian Tucker

Chapter 19: GUI Testing

Page 9: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Testing the program

Output Events

Output Eventop1 Display U.S. dollar amountop2 Display currency name

op2.1 Display Brazilian realsop2.2 Display Canadian dollarsop2.3 Display European Community eurosop2.4 Display Japanese Yenop2.5 Display ellipsis

op3 Indicate selected countryop3.1 Indicate Brazilop3.2 Indicate Canadaop3.3 Indicate European Communityop3.4 Indicate Japan

Ian Tucker

Chapter 19: GUI Testing

Page 10: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Testing the program

Output Events

Output Eventop4 Reset selected country

op4.1 Reset Brazilop4.2 Reset Canadaop4.3 Reset European Communityop4.4 Reset Japan

op5 Display foreign currency valueop6 Error msg: must select a countryop7 Error msg: must enter USD amountop8 Error msg: must select country and enter USD amountop9 Reset U.S. Dollar amount

op10 Reset equivalent currency amount

Ian Tucker

Chapter 19: GUI Testing

Page 11: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Testing the program

Ian Tucker

Chapter 19: GUI Testing

Page 12: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Testing the program

Ian Tucker

Chapter 19: GUI Testing

Page 13: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Unit Testing for the CurrencyConversion Program

All dem little bits

Ian Tucker

Chapter 19: GUI Testing

Page 14: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Unit Testing Considerations

Public domain GUI libraries

User supplied code

Compute, Clear, Quit

Ian Tucker

Chapter 19: GUI Testing

Page 15: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Unit Testing Methods

Unit Testing Methods

Test driver

GUI test bed

System level unit testingWhat if computation correct, but fault in output software?How do you get the test execution results?Seat-of-the-pants testingUser input & observation errorsRepeating tests is time-consuming

Ian Tucker

Chapter 19: GUI Testing

Page 16: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Integration Testing for theCurrency Conversion Program

How all dem little bits fit together

Ian Tucker

Chapter 19: GUI Testing

Page 17: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Integration Testing Considerations

Depends heavily on implementation

Little need for most small GUIs

Ian Tucker

Chapter 19: GUI Testing

Page 18: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Testing for theCurrency Conversion Program

Ian Tucker

Chapter 19: GUI Testing

Page 19: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Testing Considerations

Unit and Integration testing minimally needed

Onus on System Testing

Testing threads

Event-driven Petri nets (EDPNs)

Ian Tucker

Chapter 19: GUI Testing

Page 20: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Testing Considerations

Port Input Events

Port Input Events

p1 Enter U.S. dollar amountp2 Click on Brazilp3 Click on Canadap4 Click on European Communityp5 Click on Japanp6 Click on Compute Buttonp7 Click on Clear Buttonp8 Click on Quit Button

Ian Tucker

Chapter 19: GUI Testing

Page 21: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Testing Considerations

Port Output Events

Port Output Events

p9 Display US Dollar Amountp10 Display Brazilian realsp11 Display Canadian dollarsp12 Display E.U. eurosp13 Display Japanese Yenp14 Display ellipsisp15 Indicate Brazilp16 Indicate Canadap17 Indicate European Communityp18 Indicate Japan

Ian Tucker

Chapter 19: GUI Testing

Page 22: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Testing Considerations

Port Output Events

Port Output Events

p19 Reset Canada, E.U., Japanp20 Reset Brazil, E.U., Japanp21 Reset Brazil, Canada, Japanp22 Reset Brazil, Canada, E.U.p23 Reset U.S. Dollar amountp24 Reset equivalent currency amountp25 End Applicationp26 Display equivalent currency amount

Ian Tucker

Chapter 19: GUI Testing

Page 23: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Testing Considerations

Atomic System Functions

Atomic System Fuctions & Data Places

s1 US Dollar Amount Storeds2 Sense Click on Brazils3 Sense Click on Canadas4 Sense Click on EUs5 Sense Click on Japans6 Sense Click on Compute Buttons7 Sense Click on Clear Buttons8 Sense Click on Quit Button

d1 US Dollar amount enteredd2 County selected

Ian Tucker

Chapter 19: GUI Testing

Page 24: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Testing Considerations

EPDNs: A Simple Example

s1: Store Dollar Amount

Ian Tucker

Chapter 19: GUI Testing

Page 25: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Testing Considerations

EPDNs: Little bit harder now

s4: Sense Click on E.U.

Ian Tucker

Chapter 19: GUI Testing

Page 26: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Testing Considerations

EPDNs: Getting tougher

s6 Sense Click on Compute button

Ian Tucker

Chapter 19: GUI Testing

Page 27: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Testing Considerations

EPDNs: Good luck

s7: Sense Click on Clear buttonIan Tucker

Chapter 19: GUI Testing

Page 28: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Level Threads

Can combine ASF EDPNs into sequences:

System Level Threads

Ian Tucker

Chapter 19: GUI Testing

Page 29: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Level Threads

EPDN Composition of four ASFs into a System Level Thread

Ian Tucker

Chapter 19: GUI Testing

Page 30: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Level Threads

Partial Directed graph of mainline ASF Sequences

Ian Tucker

Chapter 19: GUI Testing

Page 31: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Level Threads

How we test a GUI System

Lowest Level: exercise all ASFs

Not a good idea – no visible system-level outputsEven worse – ASFs with no port outputs (s1)Cannot tell if an amount is correctly stored

Next idea: exercise a suitable set of threads...

What the hell is a “suitable” set?

Ian Tucker

Chapter 19: GUI Testing

Page 32: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Level Threads

Some possibilities

Every ASF

Every Port Input

Every Port Output

Ian Tucker

Chapter 19: GUI Testing

Page 33: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Level Threads

Partial Directed graph of mainline ASF Sequences

Ian Tucker

Chapter 19: GUI Testing

Page 34: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Level Threads

Consider a set of threads T [T1, T2, T3, T4]

T1 = [s1, s4, s6, s7]T2 = [s1, s2, s6, s7]T3 = [s3, s1, s6, s7]T4 = [s5, s1, s7, s8]

Coverage:

Every ASFEvery port inputEvery port output

Ian Tucker

Chapter 19: GUI Testing

Page 35: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Level Threads

More Detail?

Next-level user behavior

A good example:

T5 = [s1, s2, s6, s3, s6, s4, s6, s5, s6, s7, s8]Converts amount to all 4 currencies, clears and quits

Abnormal behavior sequences

T6 = [s1, s2, s3, s4, s5, s6, s7, s8]Changes mind about currency

Silly threads

T7 = [s1, s2, s3, s2, s3, s2, s3, s8]Toggles between 2 countries, then quits

An infinite amount of threads for this GUI

Ian Tucker

Chapter 19: GUI Testing

Page 36: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

System Level Threads

An Incidence Matrix

s1 s2 s3 s4 s5 s6 s7 s8

s1 1 1 1 1 1 1 1 1s2 1 0 1 1 1 1 1 1s3 1 1 0 1 1 1 1 1s4 1 1 1 0 1 1 1 1s5 1 1 1 1 0 1 1 1s6 1 1 1 1 1 1 1 1s7 1 1 1 1 1 1 1 1s8 0 0 0 0 0 0 0 0

Ian Tucker

Chapter 19: GUI Testing

Page 37: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Summary

Unit testing & integration testing not important

System testing most complicated test.

ASFs and EDPNs can help identify and validate test cases

Ian Tucker

Chapter 19: GUI Testing

Page 38: Chapter 19: GUI Testing - Swansea · 12/3/2006  · Chapter 19: GUI Testing. Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary System

Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary

Any Questions?

www.xkcd.com

Ian Tucker

Chapter 19: GUI Testing