Chapter 19: GUI Testing - Swansea · 12/3/2006 · Chapter 19: GUI Testing. Introduction The...
Transcript of Chapter 19: GUI Testing - Swansea · 12/3/2006 · Chapter 19: GUI Testing. Introduction The...
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
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
Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary
Introduction
Ian Tucker
Chapter 19: GUI Testing
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
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
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
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
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
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
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
Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary
Testing the program
Ian Tucker
Chapter 19: GUI Testing
Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary
Testing the program
Ian Tucker
Chapter 19: GUI Testing
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
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
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
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
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
Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary
System Testing for theCurrency Conversion Program
Ian Tucker
Chapter 19: GUI Testing
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Introduction The Currency Conversion Program Unit Testing Integration Testing System Testing Summary
Any Questions?
www.xkcd.com
Ian Tucker
Chapter 19: GUI Testing