SlideShare uma empresa Scribd logo
1 de 62
Automating Regression Testing
  For Evolving GUI Software

       Zheng-Wen Shen
         2005/10/19


                                1
References
Automating regression testing for evolving
GUI software
– Atif Memon, Adithya Nagarajan and Qing Xie
– JOURNAL OF SOFTWARE MAINTENANCE
  AND EVOLUTION: RESEARCH AND
  PRACTICE 2005; 17:27–64.




                                 2
Outline
1. Introduction
2. The DART process
3. Design of DART
– 3.1. GUI Representation
– 3.2 Modules of DART
4. Experiments
5. Conclusions

                            3
1. Introduction
Today’s competitive software development
market demands that several developers,
who are perhaps geographically
distributed, work simultaneously on large
parts of the code during maintenance.
Rapid quality assurance feedback
– nightly/daily building and smoke testing.
– To build the product and test it every day

                                  4
DART
(Daily Automated Regression Tester)
 A new framework that address the needs of re-
 testing frequent builds of GUI software.
 Automation!!
–   structural GUI analysis
–   test-case generation
–   test-oracle creation
–   code instrumentation to
      test execution
      coverage evaluation,
      regeneration of test cases
      Test cases re-execution.


                                   5
2. The DART Process




                6
7
Roles of the developer/tester and DART




Maintenance
   cycle



                               8
M




    M’




         9
3. Design of DART
 Driving philosophy behind the design
 1. Automated
 2. Efficient
 3. Robust
 4. Portable
 5. General




                               10
Runs all
                   test cases
Expected
 results
                      How much
                       testing



                   “glue”




 Coverage
information         Reverse
                   Engineering

Test Cases

              11
3.1 GUI Representation
A formal model of the AUT’s GUI

               GUI Representation
       1            Objects & Properties



       2        Events         3    Components


       4   Event-flow Graphs   5   Integration Tree




                                              12
3.1.1 Objects and properties
objects O = {o1, o2, . . . ,om}
properties P = {p1, p2, . . . ,pl }
A GUI = O + P
The state of a GUI = a set P at time t.
valid initial state set = iff the GUI may be in
any state Si ∈ SI when it is first invoked.


                                      13
3.1.2 Events
The events E = {e1, e2, . . . , en} associated
with a GUI are functions from one state to
another state of the GUI.
legal event sequence = e1;e2;e3; . . . ; en




                                   14
3.1.3 Component
A GUI component C is an ordered pair (RF, UF)
– A modal window + a set of modeless windows
RF represents a modal window in terms of its
events.
UF is a set whose elements represent modeless
windows also in terms of their events.
Each element of UF is invoked either by an
event in UF or RF.


                                      15
3.1.4 Event-flow graphs
All possible interactions among the
events in a component.
An event-flow graph for a component C is
a 4-tuple <V, E, B, I> where:
– V : all the events in the component
– E ⊆ V × V : directed edges
– B ⊆ V : available to the user when the
  component is first invoked
– I ⊆ V : invoke other components.

                                   16
EFG for part of MS WordPad.
“main” component




                       17
3.1.5 Integration Tree (IT)
To identify interactions among
components.
Invocations
 – Component Cx invokes component Cy iff
   Cx contains an event ex that invokes Cy .




                                 18
Definition of IT
An IT is a triple <N, R, B>
– N : components in the GUI.
– R ∈ N: a designated component called the
  Main component.
– B : directed edges , the invokes relation
  between components




                                   19
IT for part of MS WordPad.




                     20
3.1.6 Event Classification
1. Restricted-focus events
2. Unrestricted-focus events
3. Termination events
4. Menu-open events
5. System-interaction events




                               21
1 Restricted-focus event
   open modal windows




                        22
2 Unrestricted-focus events
     open modeless windows




                        23
3 Termination events
  close modal windows




                        24
4 Menu-open events
    Open menus




                 25
5 System-interaction events
Interact with the underlying software
to perform some action




                                26
3.2 Modules of DART
                                 2
      1                 Test Case Generator
                                                          3
   GUI Ripper                                    Test Oracle Generator




                     GUI Representation


       4                                                  6
                                 5                  Test Executor
Coverage Evaluator
                       Code/Event Instrumenter


                                                   27
3.2.1 GUI Ripper
Step1: GUI traversal and extraction (DFS)
Step2: Manual inspection by Tester
Step3: Generating the event-flow graph and
   Integration Tree




                                28
3.2.2 Test-case generator
A GUI test case T is a pair <S0, e1; e2; . . . ;
e n>
Generate test case by traversing the
event-flow graphs




                                    29
3.2.3 Test-oracle generator
Test oracles are used to determine
whether or not the software executed
correctly during testing.
<S0, e1; e2; . . . ; en>  S1;S2;…;Sn


                   expected state or not



                                 30
Approach: execution extraction
A test case is executed on an existing,
presumably correct version of the software
and its state is extracted and stored as
oracle information.




                               31
Level of Oracle Information
            (LOI)
Complete (LO1)
– {(w, p, o), ∀w ∈ Windows, ∀o = objects ∈ w, ∀p =
  properties ∈ o}
Complete visible (LO2)
– {(w, p, o), ∀(w ∈ Windows)&(w is visible), ∀o = objects
  ∈ w, ∀p = properties ∈ o}
Active window (LO3)
– {(w, p, o), (w = active Window), ∀o = objects ∈ w, ∀p =
  properties ∈ o},
Widget (LO4)
– {(w, p, o), (w = active Window), o = current object, ∀p
  = properties ∈ o}

                                           32
3.2.4 Coverage evaluator
Code coverage and event coverage
Event-based coverage criteria
– Event coverage (length-1)
– Event-interaction coverage (length-2)
– Length-n event-sequence coverage




                                   33
3.2.5 Event instrumenter
All event sequences that are executed on
the GUI be collected.
The key Idea: To detect the existing
listeners and attach our own listeners.




                              34
35
3.2.6 Test executor
Executing an entire test suite
automatically on the AUT.
– perform all the events in each test case
What properties should be compared?
– level of testing (LOT1 - LOT4)
– The test designer may choose to employ
  partial oracle information.



                                    36
Possibilities available to the test designer for level
            of detail of oracle information.




             10 different combinations


                                         37
4. Experiments
The subject applications: TerpOffice




  http://www.cs.umd.edu/~atif/newsite/terpoffice.htm
                                              38
39
40
41
42
43
44
4.1 Results
Space Requirements
Time requirements
Code coverage




                        45
Space requirements

       500mb




                46
Time requirements
All times are reported for a 2.2 GHz
Pentium 4 machine with 256 MB of RAM.
The results show that the smoke testing
process is practical, in that it can be
performed in one night.




                              47
TerpPaint
                 51.9 Hours




            48
TerpPad




           4.7 Hours




          49
TerpCalc




                11 Hours




           50
TerpSpreadSheet

                       18.6 Hours




                  51
TerpDraw
                8 Hours




           52
TerpManager




                   2.7 Hours




              53
Code coverage
We instrumented the application before
running all of the smoke test cases.
We recorded the statements that were
executed for each user-implemented class
during test-case execution.




                              54
TerpPaint




            55
TerpPad




          56
TerpCalc




           57
TerpSpreadSheet




                  58
TerpDraw




           59
TerpManager




              60
5. Conclusions
We define a formal model of a GUI
derived from specifications that is
useful for smoke testing.
We develop a new process for re-
testing nightly builds of GUI software.
Our regression testing process
cannot only be used for nightly builds,
but also for general GUI re-testing.
                             61
In the future
We will study the effectiveness of the DART
process by analyzing the number of faults
detected.
We will also integrate DART in a higher-level
process that involves executing other types non-
GUI) of smoke tests on the software.
We will also investigate the application of DART
to other software systems that take events as
input. (e.g. Web applications)

                                    62

Mais conteúdo relacionado

Mais procurados

Synchronization
SynchronizationSynchronization
Synchronization
Mohd Arif
 
Chapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationChapter 6 - Process Synchronization
Chapter 6 - Process Synchronization
Wayne Jones Jnr
 
Process Synchronization
Process SynchronizationProcess Synchronization
Process Synchronization
Sonali Chauhan
 
Process Synchronization And Deadlocks
Process Synchronization And DeadlocksProcess Synchronization And Deadlocks
Process Synchronization And Deadlocks
tech2click
 
Process Synchronization
Process SynchronizationProcess Synchronization
Process Synchronization
vinay arora
 

Mais procurados (20)

Synchronization
SynchronizationSynchronization
Synchronization
 
Chapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationChapter 6 - Process Synchronization
Chapter 6 - Process Synchronization
 
Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"
 
Process synchronization
Process synchronizationProcess synchronization
Process synchronization
 
Operating System-Ch6 process synchronization
Operating System-Ch6 process synchronizationOperating System-Ch6 process synchronization
Operating System-Ch6 process synchronization
 
Process Synchronization
Process SynchronizationProcess Synchronization
Process Synchronization
 
Combining genetic algoriths and constraint programming to support stress test...
Combining genetic algoriths and constraint programming to support stress test...Combining genetic algoriths and constraint programming to support stress test...
Combining genetic algoriths and constraint programming to support stress test...
 
OS_Ch7
OS_Ch7OS_Ch7
OS_Ch7
 
Process synchronization in operating system
Process synchronization in operating systemProcess synchronization in operating system
Process synchronization in operating system
 
OS Process Synchronization, semaphore and Monitors
OS Process Synchronization, semaphore and MonitorsOS Process Synchronization, semaphore and Monitors
OS Process Synchronization, semaphore and Monitors
 
Ch7 Process Synchronization galvin
Ch7 Process Synchronization galvinCh7 Process Synchronization galvin
Ch7 Process Synchronization galvin
 
Process synchronization in Operating Systems
Process synchronization in Operating SystemsProcess synchronization in Operating Systems
Process synchronization in Operating Systems
 
Process Synchronization And Deadlocks
Process Synchronization And DeadlocksProcess Synchronization And Deadlocks
Process Synchronization And Deadlocks
 
Critical section operating system
Critical section  operating systemCritical section  operating system
Critical section operating system
 
Operating System Process Synchronization
Operating System Process SynchronizationOperating System Process Synchronization
Operating System Process Synchronization
 
Os3
Os3Os3
Os3
 
OSCh7
OSCh7OSCh7
OSCh7
 
Process Synchronization
Process SynchronizationProcess Synchronization
Process Synchronization
 
Process synchronization
Process synchronizationProcess synchronization
Process synchronization
 
Operating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and DeadlocksOperating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and Deadlocks
 

Semelhante a 20051019 automating regression testing for evolving gui software

OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysis
lienhard
 
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_ResumeRanjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
ranjith nagisetty
 
SOFTWARE VERIFICATION & VALIDATION
SOFTWARE VERIFICATION & VALIDATIONSOFTWARE VERIFICATION & VALIDATION
SOFTWARE VERIFICATION & VALIDATION
Amin Bandeali
 
Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)
Babul Mirdha
 
Arun Prasad-R.DOCX
Arun Prasad-R.DOCXArun Prasad-R.DOCX
Arun Prasad-R.DOCX
Arun R
 
1 Vampir Overview
1 Vampir Overview1 Vampir Overview
1 Vampir Overview
PTIHPA
 

Semelhante a 20051019 automating regression testing for evolving gui software (20)

20041221 gui testing survey
20041221 gui testing survey20041221 gui testing survey
20041221 gui testing survey
 
Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...
Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...
Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...
 
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
 
Prasad_Meduri
Prasad_MeduriPrasad_Meduri
Prasad_Meduri
 
Internship Report
Internship ReportInternship Report
Internship Report
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysis
 
jBPM
jBPMjBPM
jBPM
 
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_ResumeRanjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
 
ITK Tutorial Presentation Slides-949
ITK Tutorial Presentation Slides-949ITK Tutorial Presentation Slides-949
ITK Tutorial Presentation Slides-949
 
Train track assembly
Train track assemblyTrain track assembly
Train track assembly
 
Resume
ResumeResume
Resume
 
Start with version control and experiments management in machine learning
Start with version control and experiments management in machine learningStart with version control and experiments management in machine learning
Start with version control and experiments management in machine learning
 
Building scalable applications with angular js
Building scalable applications with angular jsBuilding scalable applications with angular js
Building scalable applications with angular js
 
Mesa and Its Debugging, Вадим Шовкопляс
Mesa and Its Debugging, Вадим ШовкоплясMesa and Its Debugging, Вадим Шовкопляс
Mesa and Its Debugging, Вадим Шовкопляс
 
SOFTWARE VERIFICATION & VALIDATION
SOFTWARE VERIFICATION & VALIDATIONSOFTWARE VERIFICATION & VALIDATION
SOFTWARE VERIFICATION & VALIDATION
 
Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)
 
Arun Prasad-R.DOCX
Arun Prasad-R.DOCXArun Prasad-R.DOCX
Arun Prasad-R.DOCX
 
1 Vampir Overview
1 Vampir Overview1 Vampir Overview
1 Vampir Overview
 
Software testing: an introduction - 2017
Software testing: an introduction - 2017Software testing: an introduction - 2017
Software testing: an introduction - 2017
 
SE2011_10.ppt
SE2011_10.pptSE2011_10.ppt
SE2011_10.ppt
 

Mais de Will Shen

Junit Recipes - Elementary tests (2/2)
Junit Recipes - Elementary tests (2/2)Junit Recipes - Elementary tests (2/2)
Junit Recipes - Elementary tests (2/2)
Will Shen
 
Junit Recipes - Elementary tests (1/2)
Junit Recipes  - Elementary tests (1/2)Junit Recipes  - Elementary tests (1/2)
Junit Recipes - Elementary tests (1/2)
Will Shen
 
Junit Recipes - Intro
Junit Recipes - IntroJunit Recipes - Intro
Junit Recipes - Intro
Will Shen
 
20111018 boost and gtest
20111018 boost and gtest20111018 boost and gtest
20111018 boost and gtest
Will Shen
 
Data collection for field studies
Data collection for field studiesData collection for field studies
Data collection for field studies
Will Shen
 

Mais de Will Shen (17)

20180717 Introduction of Seamless BLE Connection Migration System (SeamBlue)
20180717 Introduction of Seamless BLE Connection Migration System (SeamBlue)20180717 Introduction of Seamless BLE Connection Migration System (SeamBlue)
20180717 Introduction of Seamless BLE Connection Migration System (SeamBlue)
 
16格筆記讀書法
16格筆記讀書法16格筆記讀書法
16格筆記讀書法
 
Bade Smells in Code
Bade Smells in CodeBade Smells in Code
Bade Smells in Code
 
Intro To BOOST.Spirit
Intro To BOOST.SpiritIntro To BOOST.Spirit
Intro To BOOST.Spirit
 
20070514 introduction to test ng and its application for test driven gui deve...
20070514 introduction to test ng and its application for test driven gui deve...20070514 introduction to test ng and its application for test driven gui deve...
20070514 introduction to test ng and its application for test driven gui deve...
 
20060411 face recognition using face arg matching
20060411 face recognition using face arg matching20060411 face recognition using face arg matching
20060411 face recognition using face arg matching
 
20060411 Analytic Hierarchy Process (AHP)
20060411 Analytic Hierarchy Process (AHP)20060411 Analytic Hierarchy Process (AHP)
20060411 Analytic Hierarchy Process (AHP)
 
20050713 critical paths for gui regression testing
20050713 critical paths for gui regression testing20050713 critical paths for gui regression testing
20050713 critical paths for gui regression testing
 
20050314 specification based regression test selection with risk analysis
20050314 specification based regression test selection with risk analysis20050314 specification based regression test selection with risk analysis
20050314 specification based regression test selection with risk analysis
 
20041113 A Test Generation Tool for Specifications in the Form of State Machine
20041113 A Test Generation Tool for Specifications in the Form of State Machine20041113 A Test Generation Tool for Specifications in the Form of State Machine
20041113 A Test Generation Tool for Specifications in the Form of State Machine
 
Junit Recipes - Elementary tests (2/2)
Junit Recipes - Elementary tests (2/2)Junit Recipes - Elementary tests (2/2)
Junit Recipes - Elementary tests (2/2)
 
Junit Recipes - Elementary tests (1/2)
Junit Recipes  - Elementary tests (1/2)Junit Recipes  - Elementary tests (1/2)
Junit Recipes - Elementary tests (1/2)
 
Junit Recipes - Intro
Junit Recipes - IntroJunit Recipes - Intro
Junit Recipes - Intro
 
20060712 automated model based testing of community-driven open-source gui ap...
20060712 automated model based testing of community-driven open-source gui ap...20060712 automated model based testing of community-driven open-source gui ap...
20060712 automated model based testing of community-driven open-source gui ap...
 
20060927 application facades
20060927 application facades20060927 application facades
20060927 application facades
 
20111018 boost and gtest
20111018 boost and gtest20111018 boost and gtest
20111018 boost and gtest
 
Data collection for field studies
Data collection for field studiesData collection for field studies
Data collection for field studies
 

Último

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
UK Journal
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 

Último (20)

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4j
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 

20051019 automating regression testing for evolving gui software

  • 1. Automating Regression Testing For Evolving GUI Software Zheng-Wen Shen 2005/10/19 1
  • 2. References Automating regression testing for evolving GUI software – Atif Memon, Adithya Nagarajan and Qing Xie – JOURNAL OF SOFTWARE MAINTENANCE AND EVOLUTION: RESEARCH AND PRACTICE 2005; 17:27–64. 2
  • 3. Outline 1. Introduction 2. The DART process 3. Design of DART – 3.1. GUI Representation – 3.2 Modules of DART 4. Experiments 5. Conclusions 3
  • 4. 1. Introduction Today’s competitive software development market demands that several developers, who are perhaps geographically distributed, work simultaneously on large parts of the code during maintenance. Rapid quality assurance feedback – nightly/daily building and smoke testing. – To build the product and test it every day 4
  • 5. DART (Daily Automated Regression Tester) A new framework that address the needs of re- testing frequent builds of GUI software. Automation!! – structural GUI analysis – test-case generation – test-oracle creation – code instrumentation to test execution coverage evaluation, regeneration of test cases Test cases re-execution. 5
  • 6. 2. The DART Process 6
  • 7. 7
  • 8. Roles of the developer/tester and DART Maintenance cycle 8
  • 9. M M’ 9
  • 10. 3. Design of DART  Driving philosophy behind the design 1. Automated 2. Efficient 3. Robust 4. Portable 5. General 10
  • 11. Runs all test cases Expected results How much testing “glue” Coverage information Reverse Engineering Test Cases 11
  • 12. 3.1 GUI Representation A formal model of the AUT’s GUI GUI Representation 1 Objects & Properties 2 Events 3 Components 4 Event-flow Graphs 5 Integration Tree 12
  • 13. 3.1.1 Objects and properties objects O = {o1, o2, . . . ,om} properties P = {p1, p2, . . . ,pl } A GUI = O + P The state of a GUI = a set P at time t. valid initial state set = iff the GUI may be in any state Si ∈ SI when it is first invoked. 13
  • 14. 3.1.2 Events The events E = {e1, e2, . . . , en} associated with a GUI are functions from one state to another state of the GUI. legal event sequence = e1;e2;e3; . . . ; en 14
  • 15. 3.1.3 Component A GUI component C is an ordered pair (RF, UF) – A modal window + a set of modeless windows RF represents a modal window in terms of its events. UF is a set whose elements represent modeless windows also in terms of their events. Each element of UF is invoked either by an event in UF or RF. 15
  • 16. 3.1.4 Event-flow graphs All possible interactions among the events in a component. An event-flow graph for a component C is a 4-tuple <V, E, B, I> where: – V : all the events in the component – E ⊆ V × V : directed edges – B ⊆ V : available to the user when the component is first invoked – I ⊆ V : invoke other components. 16
  • 17. EFG for part of MS WordPad. “main” component 17
  • 18. 3.1.5 Integration Tree (IT) To identify interactions among components. Invocations – Component Cx invokes component Cy iff Cx contains an event ex that invokes Cy . 18
  • 19. Definition of IT An IT is a triple <N, R, B> – N : components in the GUI. – R ∈ N: a designated component called the Main component. – B : directed edges , the invokes relation between components 19
  • 20. IT for part of MS WordPad. 20
  • 21. 3.1.6 Event Classification 1. Restricted-focus events 2. Unrestricted-focus events 3. Termination events 4. Menu-open events 5. System-interaction events 21
  • 22. 1 Restricted-focus event open modal windows 22
  • 23. 2 Unrestricted-focus events open modeless windows 23
  • 24. 3 Termination events close modal windows 24
  • 25. 4 Menu-open events Open menus 25
  • 26. 5 System-interaction events Interact with the underlying software to perform some action 26
  • 27. 3.2 Modules of DART 2 1 Test Case Generator 3 GUI Ripper Test Oracle Generator GUI Representation 4 6 5 Test Executor Coverage Evaluator Code/Event Instrumenter 27
  • 28. 3.2.1 GUI Ripper Step1: GUI traversal and extraction (DFS) Step2: Manual inspection by Tester Step3: Generating the event-flow graph and Integration Tree 28
  • 29. 3.2.2 Test-case generator A GUI test case T is a pair <S0, e1; e2; . . . ; e n> Generate test case by traversing the event-flow graphs 29
  • 30. 3.2.3 Test-oracle generator Test oracles are used to determine whether or not the software executed correctly during testing. <S0, e1; e2; . . . ; en>  S1;S2;…;Sn expected state or not 30
  • 31. Approach: execution extraction A test case is executed on an existing, presumably correct version of the software and its state is extracted and stored as oracle information. 31
  • 32. Level of Oracle Information (LOI) Complete (LO1) – {(w, p, o), ∀w ∈ Windows, ∀o = objects ∈ w, ∀p = properties ∈ o} Complete visible (LO2) – {(w, p, o), ∀(w ∈ Windows)&(w is visible), ∀o = objects ∈ w, ∀p = properties ∈ o} Active window (LO3) – {(w, p, o), (w = active Window), ∀o = objects ∈ w, ∀p = properties ∈ o}, Widget (LO4) – {(w, p, o), (w = active Window), o = current object, ∀p = properties ∈ o} 32
  • 33. 3.2.4 Coverage evaluator Code coverage and event coverage Event-based coverage criteria – Event coverage (length-1) – Event-interaction coverage (length-2) – Length-n event-sequence coverage 33
  • 34. 3.2.5 Event instrumenter All event sequences that are executed on the GUI be collected. The key Idea: To detect the existing listeners and attach our own listeners. 34
  • 35. 35
  • 36. 3.2.6 Test executor Executing an entire test suite automatically on the AUT. – perform all the events in each test case What properties should be compared? – level of testing (LOT1 - LOT4) – The test designer may choose to employ partial oracle information. 36
  • 37. Possibilities available to the test designer for level of detail of oracle information. 10 different combinations 37
  • 38. 4. Experiments The subject applications: TerpOffice http://www.cs.umd.edu/~atif/newsite/terpoffice.htm 38
  • 39. 39
  • 40. 40
  • 41. 41
  • 42. 42
  • 43. 43
  • 44. 44
  • 45. 4.1 Results Space Requirements Time requirements Code coverage 45
  • 46. Space requirements 500mb 46
  • 47. Time requirements All times are reported for a 2.2 GHz Pentium 4 machine with 256 MB of RAM. The results show that the smoke testing process is practical, in that it can be performed in one night. 47
  • 48. TerpPaint 51.9 Hours 48
  • 49. TerpPad 4.7 Hours 49
  • 50. TerpCalc 11 Hours 50
  • 51. TerpSpreadSheet 18.6 Hours 51
  • 52. TerpDraw 8 Hours 52
  • 53. TerpManager 2.7 Hours 53
  • 54. Code coverage We instrumented the application before running all of the smoke test cases. We recorded the statements that were executed for each user-implemented class during test-case execution. 54
  • 55. TerpPaint 55
  • 56. TerpPad 56
  • 57. TerpCalc 57
  • 59. TerpDraw 59
  • 61. 5. Conclusions We define a formal model of a GUI derived from specifications that is useful for smoke testing. We develop a new process for re- testing nightly builds of GUI software. Our regression testing process cannot only be used for nightly builds, but also for general GUI re-testing. 61
  • 62. In the future We will study the effectiveness of the DART process by analyzing the number of faults detected. We will also integrate DART in a higher-level process that involves executing other types non- GUI) of smoke tests on the software. We will also investigate the application of DART to other software systems that take events as input. (e.g. Web applications) 62

Notas do Editor

  1. 對 GUI 的一種 modeling ,是不是一種 specification ??
  2. TerpCalc - a calculator program TerpManager- an explorer program for TerpOffice Suite, customizable to any set of programs TerpPaint - a paint/drawing program TerpPresent - a presentation program TerpSpreadsheet - a spreadsheet program TerpWord - a word processor/html editor