SlideShare une entreprise Scribd logo
1  sur  25
Automated Model-Based
 Testing of Community-
Driven Open-Source GUI
      Applications

       Zheng-Wen Shen
         2006/07/12

                        1
Reference
• “Automated Model-Based Testing of
  Community-Driven Open-Source GUI
  Applications”
  – Qing Xie and Atif Memon
  – 22nd International Conference on
    Software Maintenance (ICSM 2006),
    Philadelphia, PA, USA, Sep. 25-27,
    2006.


                               2
Outline
• 1.   Introduction
• 2.   Testing Loops
• 3.   Overview of GUI Model
• 4.   Experiment
• 5.   Conclusions




                               3
1. Introduction            (1/3)

• Open-source software (OSS) development
  on world-wide web. (WWW)
  – Communities of programmers distributed
    world-wide
  – Unprecedented OSS code churn rates




                                    4
Problems on OSS              (2/3)

• Little direct inter-developer
  communication
  – CVS commit log message, bug reports,
    change-requests, and comments
• Developers work on loosely coupled
  parts of the application code.
  – Local change has inadvertently broken
    other parts of the overall software code

                                  5
Key idea         (3/3)

 • To create concentric testing loops

Specific GUI testing goals,   Comprehensive GUI testing
resource usage, and target
developer sub-groups for
                                    Smoke testing
error reports

                                    Crash testing




                                            6
2. Testing Loops
• CR Tools Test cases  fragile
  – Input event sequence can no longer
    execute on the GUI
  – The expected output stored with
    the test case becomes obsolete.
• Model-based techniques
  – Generate and maintain test cases
    automatically during OSS evolution
  – Employs GUI models to generate test cases.


                                     7
8
3. GUI Model              (1/5)

• An event-flow graph (EFG) model
  represents all possible event sequences
  that may be executed on a GUI.
  – All executable paths of the software
• Microsoft Word (total 4210 events)
  – 80 events open menus, 346 events open
    windows, 196 events close windows, and the
    remaining 3588 events interact with the
    underlying code.


                                       9
Event-Interaction Graph                (2/5)

• Test interactions between loosely-coupled
  parts of an OSS
• System-interaction events = Non-
  structural events + close windows events
• Test cases consist of event-flow-paths that
  start and end with system-interaction
  events, without any intermediate system-
  interaction events.


                                  10
Path in an EFG and EIG   (3/5)




                   11
Test Case Generation                (4/5)
1. Test cases are short  generate and
   execute very quickly
2. Only consists of system-interaction
   events
3. The expected state is stored only for
   system-interaction events
4. All system-interaction events are
   executed; most of the GUI’s
   functionality is covered.
5. Each test case is independent
   and the suite can be distributed.
                                 12
Test Oracle Creation                    (5/5)

• Oracles for Crash Tests
  – Crashes during test execution may be used to
    identify serious problems in the software.
• Oracles for Smoke Tests
  – Software does what it was doing before
    modifications
  – Reference Testing
• Oracles for Comprehensive Testing
  – Specifications-based approach
  – Precondition + Effect


                                     13
4. Experiment
• Do popular web based community-
  driven GUI–based OSS have
  problems that can be detected by
  our automated techniques?
• Do these problems persist across
  multiple versions of the OSS?



                           14
Notice
• Execute fully-automatic crash testing
  process on applications and report
  problems
  – A crash  An uncaught exception
• Determine how long these problems
  have been in the application code
• We overall process executed without
  any human intervention in 5-8 hours.

                               15
Subject Applications
•   FreeMind, a premier mind-mapping software
    –   0.0.2, 0.1.0, 0.4, 0.7.1, 0.8.0RC5, 0.8.0
•   Gantt Project, a project scheduling application
    –   1.6, 19.11, 1.10.3, 1.11, 1.11.1, 2.pre1
•   JMSN, a pure java Microsoft MSN messenger
    clone
    –   0.9a, 0.9.2, 0.9.7, 0.9.8b7, 0.9.9b1
•   Crossword Sage, a tool for creating (and
    solving) professional looking crosswords with
    powerful word suggestion capabilities
    –   0.1, 0.2, 0.3.0, 0.3.1, 0.3.2, and 0.3.5



                                                   16
FreeMind Bugs
1. NullPointerException when trying to open a non-existent file (0.0.2, 0.1.0)
2. FileNotFoundException when trying to save a file with a very long le name
   (0.0.2, 0.1.0, 0.4)
3. NullPointerException when clicking on some buttons on the main toolbar
   when no le is open (0.1.0);
4. NullPointerException when clicking on some menu items if no le is open
   (0.1.0, 0.4, 0.7.1, 0.8.0RC5)
5. NullPointerException when trying to save a “blank” file (0.1.0)
6. NullPointerException when adding a new node after toggling folded node
   (0.4)
7. FileNotFoundException when trying to import a nonexistent file (0.4, 0.7.1,
   0.8.0RC5, 0.8.0)
8. FileNotFoundException when trying to export a file with a very long le
   name (0.7.1, 0.8.0RC5, 0.8.0)
9. NullPointerException when trying to split a node in “Edit a long node”
   window (0.7.1, 0.8.0RC5, 0.8.0)
10.NumberFormatException when setting non-numeric input while expecting a
   number in “preferences setting” window (0.8.0RC5, 0.8.0)



                                                           17
Gantt Project Bugs
1. NumberFormatException when setting non-numeric inputs while
   expecting a number in “New task” window (1.6)
2. FileNotFoundException when trying to open a nonexistent file
   (1.6)
3. FileNotFoundException when trying to save a file with a very long
   le name (1.6, 1.9.11, 1.10.3, 1.11, 1.11.1, 2.pre1)
4. NullPointerException after confirming any preferences setting
   (1.9.11)
5. NullPointerException when trying to save the content to a server
   (1.9.11)
6. NullPointerException when trying to import a nonexistent file
   (1.9.11, 1.10.3, 1.11, 1.11.1, 2.pre1)
7. InterruptedException when trying to open a new window (1.10.3)
8. Runtime error when trying to send e-mail (1.11, 1.11.1, 2.pre1)




                                                    18
JMSN Bugs
1. InvocationTargetException when trying to
   refresh the buddy list (0.9a, 0.9.2)
2. FileNotFoundException when trying to
   submit a bug/request report because the
   submission page doesn't exist (0.9a,
   0.9.2, 0.9.5, 0.9.7, 0.9.8b7, 0.9.9b2);
3. NullPointerException when trying to check
   the validity of the login data (0.9.7,
   0.9.8b7, 0.9.9b2)
4. SocketException and NullPointerException
   when stopping a socket that has been
   started (0.9.8b7, 0.9.9b2)
                                 19
Crossword Sage Bugs
• NullPointerException in Crossword Builder when
  trying to delete a word (0.3.0, 0.3.1)
• NullPointerException in Crossword Builder when
  trying to suggest a new word (0.3.0, 0.3.1, 0.3.2,
  0.3.5)
• NullPointerException in Crossword Builder when
  trying to write a clue for a word (0.3.0, 0.3.1,
  0.3.2, 0.3.5)
• NullPointerException when loading a new
  crossword file (0.3.5)
• NullPointerException when splitting a word
  (0.3.5)
• NullPointerException when publishing the
  crossword (0.3.5)
                                       20
4.1 Results




              21
Results
• The some bug existed across
  applications  shared open-source
  GUI components (FileSave) 
  sanitize inputs
• Many bugs are persistent across
  versions
• There are fewer bugs in the first
  version than in later versions 
  consistent with our experience
                            22
the reasons for crash
1. Invalid text input: validity, size
2. Widget enabled when it should be
   disabled
3. Object declared but not initialized
4. Obsolete external resources




                              23
5. Conclusions             (1/2)
• Recognition the nature of the WWW
  – enables the separation of GUI testing steps by
    level of automation, feedback, and resource
    utilization.
• Demonstration that resources may be
  better utilized by defining a concentric
  loop-based GUI testing approach.
• Demonstration that popular GUI-based
  OSS developed on the WWW have flaws
  that can be detected by our fully
  automated approach.
                                      24
Conclusions           (2/2)
• A more detailed study of the overall
  benefits of this technique
• Extended subject application  test
  TerpOffice incrementally
• Web application that have complex back-
  ends
• The interaction between three test loops
  – Whether one loop can benefit from the
    execution of the inner loops
  – Study the need of additional loops

                                     25

Contenu connexe

Tendances

Open Source Software Testing Tools
Open Source Software Testing ToolsOpen Source Software Testing Tools
Open Source Software Testing ToolsVaruna Harshana
 
Mozilla: Mozmill meets L10n
Mozilla: Mozmill meets L10nMozilla: Mozmill meets L10n
Mozilla: Mozmill meets L10nHenrik Skupin
 
Continuous Integration with Mozmill
Continuous Integration with MozmillContinuous Integration with Mozmill
Continuous Integration with MozmillHenrik Skupin
 
Test automation using selenium
Test automation using seleniumTest automation using selenium
Test automation using seleniumTờ Rang
 
NicoleMaguire_NEES_FinalReport
NicoleMaguire_NEES_FinalReportNicoleMaguire_NEES_FinalReport
NicoleMaguire_NEES_FinalReportNicole Maguire
 
Acceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and seleniumAcceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and seleniumAsko Soukka
 
Appium & Robot Framework
Appium & Robot FrameworkAppium & Robot Framework
Appium & Robot FrameworkFurkan Ertürk
 
Robot framework Gowthami Goli
Robot framework Gowthami GoliRobot framework Gowthami Goli
Robot framework Gowthami GoliGowthami Buddi
 
Mozilla: Automated Mozmill Tests
Mozilla: Automated Mozmill TestsMozilla: Automated Mozmill Tests
Mozilla: Automated Mozmill TestsHenrik Skupin
 
Crowd-sourced Automated Firefox UI Testing
Crowd-sourced Automated Firefox UI TestingCrowd-sourced Automated Firefox UI Testing
Crowd-sourced Automated Firefox UI TestingHenrik Skupin
 
Implementing Quality on a Java Project
Implementing Quality on a Java ProjectImplementing Quality on a Java Project
Implementing Quality on a Java ProjectVincent Massol
 
Ruin your life using robot framework
Ruin your life using robot frameworkRuin your life using robot framework
Ruin your life using robot frameworkPrayoch Rujira
 
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and MockitoAn Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockitoshaunthomas999
 
Oscon2008 Qa Leak Testing Latest Slides
Oscon2008 Qa Leak Testing Latest SlidesOscon2008 Qa Leak Testing Latest Slides
Oscon2008 Qa Leak Testing Latest Slidesctalbert
 

Tendances (20)

Open Source Software Testing Tools
Open Source Software Testing ToolsOpen Source Software Testing Tools
Open Source Software Testing Tools
 
Mozilla: Mozmill meets L10n
Mozilla: Mozmill meets L10nMozilla: Mozmill meets L10n
Mozilla: Mozmill meets L10n
 
Continuous Integration with Mozmill
Continuous Integration with MozmillContinuous Integration with Mozmill
Continuous Integration with Mozmill
 
Test automation using selenium
Test automation using seleniumTest automation using selenium
Test automation using selenium
 
NicoleMaguire_NEES_FinalReport
NicoleMaguire_NEES_FinalReportNicoleMaguire_NEES_FinalReport
NicoleMaguire_NEES_FinalReport
 
Acceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and seleniumAcceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and selenium
 
SynapseIndia dotnet development
SynapseIndia dotnet developmentSynapseIndia dotnet development
SynapseIndia dotnet development
 
Appium & Robot Framework
Appium & Robot FrameworkAppium & Robot Framework
Appium & Robot Framework
 
Robot framework Gowthami Goli
Robot framework Gowthami GoliRobot framework Gowthami Goli
Robot framework Gowthami Goli
 
Robot framework
Robot frameworkRobot framework
Robot framework
 
Mozmill Crowd
Mozmill CrowdMozmill Crowd
Mozmill Crowd
 
Mozilla: Automated Mozmill Tests
Mozilla: Automated Mozmill TestsMozilla: Automated Mozmill Tests
Mozilla: Automated Mozmill Tests
 
Introduction to robot framework
Introduction to robot frameworkIntroduction to robot framework
Introduction to robot framework
 
Crowd-sourced Automated Firefox UI Testing
Crowd-sourced Automated Firefox UI TestingCrowd-sourced Automated Firefox UI Testing
Crowd-sourced Automated Firefox UI Testing
 
Introduction to Robot Framework
Introduction to Robot FrameworkIntroduction to Robot Framework
Introduction to Robot Framework
 
Implementing Quality on a Java Project
Implementing Quality on a Java ProjectImplementing Quality on a Java Project
Implementing Quality on a Java Project
 
Robot Framework
Robot FrameworkRobot Framework
Robot Framework
 
Ruin your life using robot framework
Ruin your life using robot frameworkRuin your life using robot framework
Ruin your life using robot framework
 
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and MockitoAn Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
 
Oscon2008 Qa Leak Testing Latest Slides
Oscon2008 Qa Leak Testing Latest SlidesOscon2008 Qa Leak Testing Latest Slides
Oscon2008 Qa Leak Testing Latest Slides
 

En vedette

Oracle_Database12c
Oracle_Database12cOracle_Database12c
Oracle_Database12cAbhishek Dey
 
Kickstarter Brand Info
Kickstarter Brand InfoKickstarter Brand Info
Kickstarter Brand Infocbs366669
 
Moneycation may 2015 newsletter; volume #3, issue #11
Moneycation may 2015 newsletter; volume #3, issue #11Moneycation may 2015 newsletter; volume #3, issue #11
Moneycation may 2015 newsletter; volume #3, issue #11A.W. Berry
 
Innovation in financial modeling
Innovation in financial modelingInnovation in financial modeling
Innovation in financial modelingA.W. Berry
 
O futebol nas redes sociais eng
O futebol nas redes sociais   engO futebol nas redes sociais   eng
O futebol nas redes sociais engJoao Frigerio
 
Comparative study of removable & fixed orthodontic appliance
Comparative study of removable & fixed orthodontic applianceComparative study of removable & fixed orthodontic appliance
Comparative study of removable & fixed orthodontic applianceSk Aziz Ikbal
 
Model based testing for Integration and Regression Tests in ERP
Model based testing for Integration and Regression Tests in ERPModel based testing for Integration and Regression Tests in ERP
Model based testing for Integration and Regression Tests in ERPTransWare AG
 

En vedette (12)

Oracle_Database12c
Oracle_Database12cOracle_Database12c
Oracle_Database12c
 
eCertificate
eCertificateeCertificate
eCertificate
 
Kickstarter Brand Info
Kickstarter Brand InfoKickstarter Brand Info
Kickstarter Brand Info
 
Moneycation may 2015 newsletter; volume #3, issue #11
Moneycation may 2015 newsletter; volume #3, issue #11Moneycation may 2015 newsletter; volume #3, issue #11
Moneycation may 2015 newsletter; volume #3, issue #11
 
CV HAIDER ALI RAZA
CV HAIDER ALI RAZACV HAIDER ALI RAZA
CV HAIDER ALI RAZA
 
Oracle Community rewards Letter
Oracle Community rewards LetterOracle Community rewards Letter
Oracle Community rewards Letter
 
Innovation in financial modeling
Innovation in financial modelingInnovation in financial modeling
Innovation in financial modeling
 
O futebol nas redes sociais eng
O futebol nas redes sociais   engO futebol nas redes sociais   eng
O futebol nas redes sociais eng
 
งาน2 16
งาน2 16งาน2 16
งาน2 16
 
Comparative study of removable & fixed orthodontic appliance
Comparative study of removable & fixed orthodontic applianceComparative study of removable & fixed orthodontic appliance
Comparative study of removable & fixed orthodontic appliance
 
Model based testing for Integration and Regression Tests in ERP
Model based testing for Integration and Regression Tests in ERPModel based testing for Integration and Regression Tests in ERP
Model based testing for Integration and Regression Tests in ERP
 
flying turtle final
flying turtle finalflying turtle final
flying turtle final
 

Similaire à 20060712 automated model based testing of community-driven open-source gui applications

Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using JenkinsRogue Wave Software
 
Continuous Integration: Improving Quality in Moodle
Continuous Integration: Improving Quality in Moodle Continuous Integration: Improving Quality in Moodle
Continuous Integration: Improving Quality in Moodle Dan Poltawski
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal infoSynapseindiappsdevelopment
 
Testing iOS applications
Testing iOS applicationsTesting iOS applications
Testing iOS applicationsAnadea
 
mobile development with androiddfdgdfhdgfdhf.pptx
mobile development with androiddfdgdfhdgfdhf.pptxmobile development with androiddfdgdfhdgfdhf.pptx
mobile development with androiddfdgdfhdgfdhf.pptxNgLQun
 
Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesTao Xie
 
Automated Testing Environment by Bugzilla, Testopia and Jenkins
Automated Testing Environment by Bugzilla, Testopia and JenkinsAutomated Testing Environment by Bugzilla, Testopia and Jenkins
Automated Testing Environment by Bugzilla, Testopia and Jenkinswalkerchang
 
JavaOne 2016 - CON3080 - Testing Java Web Applications with Selenium: A Cookbook
JavaOne 2016 - CON3080 - Testing Java Web Applications with Selenium: A CookbookJavaOne 2016 - CON3080 - Testing Java Web Applications with Selenium: A Cookbook
JavaOne 2016 - CON3080 - Testing Java Web Applications with Selenium: A CookbookJorge Hidalgo
 
Effective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperEffective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperMike Melusky
 
Foundational Design Patterns for Multi-Purpose Applications
Foundational Design Patterns for Multi-Purpose ApplicationsFoundational Design Patterns for Multi-Purpose Applications
Foundational Design Patterns for Multi-Purpose ApplicationsChing-Hwa Yu
 
Reproducibility and automation of machine learning process
Reproducibility and automation of machine learning processReproducibility and automation of machine learning process
Reproducibility and automation of machine learning processDenis Dus
 
Oscon2008 Qa Leak Testing Latest Slides
Oscon2008 Qa Leak Testing Latest SlidesOscon2008 Qa Leak Testing Latest Slides
Oscon2008 Qa Leak Testing Latest Slidesctalbert
 
Solving the Automation Puzzle - how to select the right automation framework ...
Solving the Automation Puzzle - how to select the right automation framework ...Solving the Automation Puzzle - how to select the right automation framework ...
Solving the Automation Puzzle - how to select the right automation framework ...Ori Bendet
 
Mobile Automation Meetup Presentation [English]
Mobile Automation Meetup Presentation [English]Mobile Automation Meetup Presentation [English]
Mobile Automation Meetup Presentation [English]Maria Carcar
 

Similaire à 20060712 automated model based testing of community-driven open-source gui applications (20)

Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
 
Continuous Integration: Improving Quality in Moodle
Continuous Integration: Improving Quality in Moodle Continuous Integration: Improving Quality in Moodle
Continuous Integration: Improving Quality in Moodle
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
 
Framework
FrameworkFramework
Framework
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal info
 
Testing iOS applications
Testing iOS applicationsTesting iOS applications
Testing iOS applications
 
mobile development with androiddfdgdfhdgfdhf.pptx
mobile development with androiddfdgdfhdgfdhf.pptxmobile development with androiddfdgdfhdgfdhf.pptx
mobile development with androiddfdgdfhdgfdhf.pptx
 
Bug zillatestopiajenkins
Bug zillatestopiajenkinsBug zillatestopiajenkins
Bug zillatestopiajenkins
 
Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and Challenges
 
Automated Testing Environment by Bugzilla, Testopia and Jenkins
Automated Testing Environment by Bugzilla, Testopia and JenkinsAutomated Testing Environment by Bugzilla, Testopia and Jenkins
Automated Testing Environment by Bugzilla, Testopia and Jenkins
 
JavaOne 2016 - CON3080 - Testing Java Web Applications with Selenium: A Cookbook
JavaOne 2016 - CON3080 - Testing Java Web Applications with Selenium: A CookbookJavaOne 2016 - CON3080 - Testing Java Web Applications with Selenium: A Cookbook
JavaOne 2016 - CON3080 - Testing Java Web Applications with Selenium: A Cookbook
 
jDriver Presentation
jDriver PresentationjDriver Presentation
jDriver Presentation
 
Automated testing for sfl presentation
Automated testing for sfl presentationAutomated testing for sfl presentation
Automated testing for sfl presentation
 
Agile Software Development & Tools
Agile Software Development & ToolsAgile Software Development & Tools
Agile Software Development & Tools
 
Effective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperEffective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and Dapper
 
Foundational Design Patterns for Multi-Purpose Applications
Foundational Design Patterns for Multi-Purpose ApplicationsFoundational Design Patterns for Multi-Purpose Applications
Foundational Design Patterns for Multi-Purpose Applications
 
Reproducibility and automation of machine learning process
Reproducibility and automation of machine learning processReproducibility and automation of machine learning process
Reproducibility and automation of machine learning process
 
Oscon2008 Qa Leak Testing Latest Slides
Oscon2008 Qa Leak Testing Latest SlidesOscon2008 Qa Leak Testing Latest Slides
Oscon2008 Qa Leak Testing Latest Slides
 
Solving the Automation Puzzle - how to select the right automation framework ...
Solving the Automation Puzzle - how to select the right automation framework ...Solving the Automation Puzzle - how to select the right automation framework ...
Solving the Automation Puzzle - how to select the right automation framework ...
 
Mobile Automation Meetup Presentation [English]
Mobile Automation Meetup Presentation [English]Mobile Automation Meetup Presentation [English]
Mobile Automation Meetup Presentation [English]
 

Plus de Will Shen

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)Will Shen
 
16格筆記讀書法
16格筆記讀書法16格筆記讀書法
16格筆記讀書法Will Shen
 
Bade Smells in Code
Bade Smells in CodeBade Smells in Code
Bade Smells in CodeWill Shen
 
Intro To BOOST.Spirit
Intro To BOOST.SpiritIntro To BOOST.Spirit
Intro To BOOST.SpiritWill Shen
 
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...Will Shen
 
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 matchingWill Shen
 
20060411 Analytic Hierarchy Process (AHP)
20060411 Analytic Hierarchy Process (AHP)20060411 Analytic Hierarchy Process (AHP)
20060411 Analytic Hierarchy Process (AHP)Will Shen
 
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 testingWill Shen
 
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 analysisWill Shen
 
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 MachineWill 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 - IntroWill Shen
 
20051019 automating regression testing for evolving gui software
20051019 automating regression testing for evolving gui software20051019 automating regression testing for evolving gui software
20051019 automating regression testing for evolving gui softwareWill Shen
 
20041221 gui testing survey
20041221 gui testing survey20041221 gui testing survey
20041221 gui testing surveyWill Shen
 
20060927 application facades
20060927 application facades20060927 application facades
20060927 application facadesWill Shen
 
20111018 boost and gtest
20111018 boost and gtest20111018 boost and gtest
20111018 boost and gtestWill Shen
 
Data collection for field studies
Data collection for field studiesData collection for field studies
Data collection for field studiesWill Shen
 

Plus de Will Shen (18)

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
 
20051019 automating regression testing for evolving gui software
20051019 automating regression testing for evolving gui software20051019 automating regression testing for evolving gui software
20051019 automating regression testing for evolving gui software
 
20041221 gui testing survey
20041221 gui testing survey20041221 gui testing survey
20041221 gui testing survey
 
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
 

Dernier

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 

Dernier (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

20060712 automated model based testing of community-driven open-source gui applications

  • 1. Automated Model-Based Testing of Community- Driven Open-Source GUI Applications Zheng-Wen Shen 2006/07/12 1
  • 2. Reference • “Automated Model-Based Testing of Community-Driven Open-Source GUI Applications” – Qing Xie and Atif Memon – 22nd International Conference on Software Maintenance (ICSM 2006), Philadelphia, PA, USA, Sep. 25-27, 2006. 2
  • 3. Outline • 1. Introduction • 2. Testing Loops • 3. Overview of GUI Model • 4. Experiment • 5. Conclusions 3
  • 4. 1. Introduction (1/3) • Open-source software (OSS) development on world-wide web. (WWW) – Communities of programmers distributed world-wide – Unprecedented OSS code churn rates 4
  • 5. Problems on OSS (2/3) • Little direct inter-developer communication – CVS commit log message, bug reports, change-requests, and comments • Developers work on loosely coupled parts of the application code. – Local change has inadvertently broken other parts of the overall software code 5
  • 6. Key idea (3/3) • To create concentric testing loops Specific GUI testing goals, Comprehensive GUI testing resource usage, and target developer sub-groups for Smoke testing error reports Crash testing 6
  • 7. 2. Testing Loops • CR Tools Test cases  fragile – Input event sequence can no longer execute on the GUI – The expected output stored with the test case becomes obsolete. • Model-based techniques – Generate and maintain test cases automatically during OSS evolution – Employs GUI models to generate test cases. 7
  • 8. 8
  • 9. 3. GUI Model (1/5) • An event-flow graph (EFG) model represents all possible event sequences that may be executed on a GUI. – All executable paths of the software • Microsoft Word (total 4210 events) – 80 events open menus, 346 events open windows, 196 events close windows, and the remaining 3588 events interact with the underlying code. 9
  • 10. Event-Interaction Graph (2/5) • Test interactions between loosely-coupled parts of an OSS • System-interaction events = Non- structural events + close windows events • Test cases consist of event-flow-paths that start and end with system-interaction events, without any intermediate system- interaction events. 10
  • 11. Path in an EFG and EIG (3/5) 11
  • 12. Test Case Generation (4/5) 1. Test cases are short  generate and execute very quickly 2. Only consists of system-interaction events 3. The expected state is stored only for system-interaction events 4. All system-interaction events are executed; most of the GUI’s functionality is covered. 5. Each test case is independent and the suite can be distributed. 12
  • 13. Test Oracle Creation (5/5) • Oracles for Crash Tests – Crashes during test execution may be used to identify serious problems in the software. • Oracles for Smoke Tests – Software does what it was doing before modifications – Reference Testing • Oracles for Comprehensive Testing – Specifications-based approach – Precondition + Effect 13
  • 14. 4. Experiment • Do popular web based community- driven GUI–based OSS have problems that can be detected by our automated techniques? • Do these problems persist across multiple versions of the OSS? 14
  • 15. Notice • Execute fully-automatic crash testing process on applications and report problems – A crash  An uncaught exception • Determine how long these problems have been in the application code • We overall process executed without any human intervention in 5-8 hours. 15
  • 16. Subject Applications • FreeMind, a premier mind-mapping software – 0.0.2, 0.1.0, 0.4, 0.7.1, 0.8.0RC5, 0.8.0 • Gantt Project, a project scheduling application – 1.6, 19.11, 1.10.3, 1.11, 1.11.1, 2.pre1 • JMSN, a pure java Microsoft MSN messenger clone – 0.9a, 0.9.2, 0.9.7, 0.9.8b7, 0.9.9b1 • Crossword Sage, a tool for creating (and solving) professional looking crosswords with powerful word suggestion capabilities – 0.1, 0.2, 0.3.0, 0.3.1, 0.3.2, and 0.3.5 16
  • 17. FreeMind Bugs 1. NullPointerException when trying to open a non-existent file (0.0.2, 0.1.0) 2. FileNotFoundException when trying to save a file with a very long le name (0.0.2, 0.1.0, 0.4) 3. NullPointerException when clicking on some buttons on the main toolbar when no le is open (0.1.0); 4. NullPointerException when clicking on some menu items if no le is open (0.1.0, 0.4, 0.7.1, 0.8.0RC5) 5. NullPointerException when trying to save a “blank” file (0.1.0) 6. NullPointerException when adding a new node after toggling folded node (0.4) 7. FileNotFoundException when trying to import a nonexistent file (0.4, 0.7.1, 0.8.0RC5, 0.8.0) 8. FileNotFoundException when trying to export a file with a very long le name (0.7.1, 0.8.0RC5, 0.8.0) 9. NullPointerException when trying to split a node in “Edit a long node” window (0.7.1, 0.8.0RC5, 0.8.0) 10.NumberFormatException when setting non-numeric input while expecting a number in “preferences setting” window (0.8.0RC5, 0.8.0) 17
  • 18. Gantt Project Bugs 1. NumberFormatException when setting non-numeric inputs while expecting a number in “New task” window (1.6) 2. FileNotFoundException when trying to open a nonexistent file (1.6) 3. FileNotFoundException when trying to save a file with a very long le name (1.6, 1.9.11, 1.10.3, 1.11, 1.11.1, 2.pre1) 4. NullPointerException after confirming any preferences setting (1.9.11) 5. NullPointerException when trying to save the content to a server (1.9.11) 6. NullPointerException when trying to import a nonexistent file (1.9.11, 1.10.3, 1.11, 1.11.1, 2.pre1) 7. InterruptedException when trying to open a new window (1.10.3) 8. Runtime error when trying to send e-mail (1.11, 1.11.1, 2.pre1) 18
  • 19. JMSN Bugs 1. InvocationTargetException when trying to refresh the buddy list (0.9a, 0.9.2) 2. FileNotFoundException when trying to submit a bug/request report because the submission page doesn't exist (0.9a, 0.9.2, 0.9.5, 0.9.7, 0.9.8b7, 0.9.9b2); 3. NullPointerException when trying to check the validity of the login data (0.9.7, 0.9.8b7, 0.9.9b2) 4. SocketException and NullPointerException when stopping a socket that has been started (0.9.8b7, 0.9.9b2) 19
  • 20. Crossword Sage Bugs • NullPointerException in Crossword Builder when trying to delete a word (0.3.0, 0.3.1) • NullPointerException in Crossword Builder when trying to suggest a new word (0.3.0, 0.3.1, 0.3.2, 0.3.5) • NullPointerException in Crossword Builder when trying to write a clue for a word (0.3.0, 0.3.1, 0.3.2, 0.3.5) • NullPointerException when loading a new crossword file (0.3.5) • NullPointerException when splitting a word (0.3.5) • NullPointerException when publishing the crossword (0.3.5) 20
  • 22. Results • The some bug existed across applications  shared open-source GUI components (FileSave)  sanitize inputs • Many bugs are persistent across versions • There are fewer bugs in the first version than in later versions  consistent with our experience 22
  • 23. the reasons for crash 1. Invalid text input: validity, size 2. Widget enabled when it should be disabled 3. Object declared but not initialized 4. Obsolete external resources 23
  • 24. 5. Conclusions (1/2) • Recognition the nature of the WWW – enables the separation of GUI testing steps by level of automation, feedback, and resource utilization. • Demonstration that resources may be better utilized by defining a concentric loop-based GUI testing approach. • Demonstration that popular GUI-based OSS developed on the WWW have flaws that can be detected by our fully automated approach. 24
  • 25. Conclusions (2/2) • A more detailed study of the overall benefits of this technique • Extended subject application  test TerpOffice incrementally • Web application that have complex back- ends • The interaction between three test loops – Whether one loop can benefit from the execution of the inner loops – Study the need of additional loops 25