SlideShare a Scribd company logo
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

More Related Content

What's hot (20)

PDF
Open Source Software Testing Tools
Varuna Harshana
 
PDF
Mozilla: Mozmill meets L10n
Henrik Skupin
 
PDF
Continuous Integration with Mozmill
Henrik Skupin
 
PPTX
Test automation using selenium
Tờ Rang
 
PDF
NicoleMaguire_NEES_FinalReport
Nicole Maguire
 
PDF
Acceptance testing plone sites and add ons with robot framework and selenium
Asko Soukka
 
PPT
SynapseIndia dotnet development
Synapseindiappsdevelopment
 
PDF
Appium & Robot Framework
Furkan Ertürk
 
PPTX
Robot framework Gowthami Goli
Gowthami Buddi
 
PPTX
Robot framework
Rochak Bhalla
 
KEY
Mozmill Crowd
Henrik Skupin
 
PDF
Mozilla: Automated Mozmill Tests
Henrik Skupin
 
PPTX
Introduction to robot framework
Chonlasith Jucksriporn
 
PDF
Crowd-sourced Automated Firefox UI Testing
Henrik Skupin
 
PDF
Introduction to Robot Framework
Somkiat Puisungnoen
 
PDF
Implementing Quality on a Java Project
Vincent Massol
 
PPTX
Robot Framework
Onur Baskirt
 
PDF
Ruin your life using robot framework
Prayoch Rujira
 
PDF
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
shaunthomas999
 
ODP
Oscon2008 Qa Leak Testing Latest Slides
ctalbert
 
Open Source Software Testing Tools
Varuna Harshana
 
Mozilla: Mozmill meets L10n
Henrik Skupin
 
Continuous Integration with Mozmill
Henrik Skupin
 
Test automation using selenium
Tờ Rang
 
NicoleMaguire_NEES_FinalReport
Nicole Maguire
 
Acceptance testing plone sites and add ons with robot framework and selenium
Asko Soukka
 
SynapseIndia dotnet development
Synapseindiappsdevelopment
 
Appium & Robot Framework
Furkan Ertürk
 
Robot framework Gowthami Goli
Gowthami Buddi
 
Robot framework
Rochak Bhalla
 
Mozmill Crowd
Henrik Skupin
 
Mozilla: Automated Mozmill Tests
Henrik Skupin
 
Introduction to robot framework
Chonlasith Jucksriporn
 
Crowd-sourced Automated Firefox UI Testing
Henrik Skupin
 
Introduction to Robot Framework
Somkiat Puisungnoen
 
Implementing Quality on a Java Project
Vincent Massol
 
Robot Framework
Onur Baskirt
 
Ruin your life using robot framework
Prayoch Rujira
 
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
shaunthomas999
 
Oscon2008 Qa Leak Testing Latest Slides
ctalbert
 

Viewers also liked (12)

PDF
Oracle_Database12c
Abhishek Dey
 
PDF
eCertificate
Mohamed Abdel-Khalek
 
PPTX
Kickstarter Brand Info
cbs366669
 
PDF
Moneycation may 2015 newsletter; volume #3, issue #11
A.W. Berry
 
DOCX
CV HAIDER ALI RAZA
Yousafian Join
 
PDF
Oracle Community rewards Letter
Hitesh Gondalia (ITIL®,OCE®,OCP®)
 
ODT
Innovation in financial modeling
A.W. Berry
 
PPT
O futebol nas redes sociais eng
Joao Frigerio
 
PDF
งาน2 16
Patavee Manee
 
PPTX
Comparative study of removable & fixed orthodontic appliance
Sk Aziz Ikbal
 
PDF
Model based testing for Integration and Regression Tests in ERP
TransWare AG
 
PPTX
flying turtle final
flying turtle corporation
 
Oracle_Database12c
Abhishek Dey
 
eCertificate
Mohamed Abdel-Khalek
 
Kickstarter Brand Info
cbs366669
 
Moneycation may 2015 newsletter; volume #3, issue #11
A.W. Berry
 
CV HAIDER ALI RAZA
Yousafian Join
 
Oracle Community rewards Letter
Hitesh Gondalia (ITIL®,OCE®,OCP®)
 
Innovation in financial modeling
A.W. Berry
 
O futebol nas redes sociais eng
Joao Frigerio
 
งาน2 16
Patavee Manee
 
Comparative study of removable & fixed orthodontic appliance
Sk Aziz Ikbal
 
Model based testing for Integration and Regression Tests in ERP
TransWare AG
 
flying turtle final
flying turtle corporation
 
Ad

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

PDF
Gui path oriented test generation algorithms paper
Izzat Alsmadi
 
PPT
20051019 automating regression testing for evolving gui software
Will Shen
 
PDF
Testing Plug-in Architectures
Arie van Deursen
 
PPTX
Unit Testing
Gian Maria Ricci
 
DOCX
Faq
Anu j
 
PPT
2.5 gui
Jyothi Vbs
 
PDF
Functional tests with the FEST framework
Dominik Dary
 
PDF
Introduction to Software Testing
Henry Muccini
 
PPT
GUI Test Patterns
Rafael Pires
 
PDF
Introduction to Automated Testing
Lars Thorup
 
PDF
Introduction to-automated-testing
BestBrains
 
PPT
Software testing & its technology
Hasam Panezai
 
PDF
Unit testing (eng)
Anatoliy Okhotnikov
 
PDF
Behaviour Driven Development and Thinking About Testing
dn
 
PDF
Bdd and-testing
malcolmt
 
PDF
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
ijceronline
 
DOC
Testing terms & definitions
Sachin MK
 
PDF
Software testing: an introduction - 2017
XavierDevroey
 
PPTX
Cheat sheet BSC computer science 3rd yr.pptx
ayushtyagi334655
 
PDF
Software testing: an introduction - 2015
XavierDevroey
 
Gui path oriented test generation algorithms paper
Izzat Alsmadi
 
20051019 automating regression testing for evolving gui software
Will Shen
 
Testing Plug-in Architectures
Arie van Deursen
 
Unit Testing
Gian Maria Ricci
 
Faq
Anu j
 
2.5 gui
Jyothi Vbs
 
Functional tests with the FEST framework
Dominik Dary
 
Introduction to Software Testing
Henry Muccini
 
GUI Test Patterns
Rafael Pires
 
Introduction to Automated Testing
Lars Thorup
 
Introduction to-automated-testing
BestBrains
 
Software testing & its technology
Hasam Panezai
 
Unit testing (eng)
Anatoliy Okhotnikov
 
Behaviour Driven Development and Thinking About Testing
dn
 
Bdd and-testing
malcolmt
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
ijceronline
 
Testing terms & definitions
Sachin MK
 
Software testing: an introduction - 2017
XavierDevroey
 
Cheat sheet BSC computer science 3rd yr.pptx
ayushtyagi334655
 
Software testing: an introduction - 2015
XavierDevroey
 
Ad

More from Will Shen (17)

PDF
20180717 Introduction of Seamless BLE Connection Migration System (SeamBlue)
Will Shen
 
PPTX
16格筆記讀書法
Will Shen
 
PDF
Bade Smells in Code
Will Shen
 
PDF
Intro To BOOST.Spirit
Will Shen
 
PDF
20070514 introduction to test ng and its application for test driven gui deve...
Will Shen
 
PDF
20060411 face recognition using face arg matching
Will Shen
 
PDF
20060411 Analytic Hierarchy Process (AHP)
Will Shen
 
PDF
20050713 critical paths for gui regression testing
Will Shen
 
PDF
20050314 specification based regression test selection with risk analysis
Will Shen
 
PDF
20041113 A Test Generation Tool for Specifications in the Form of State Machine
Will Shen
 
PDF
Junit Recipes - Elementary tests (2/2)
Will Shen
 
PDF
Junit Recipes - Elementary tests (1/2)
Will Shen
 
PDF
Junit Recipes - Intro
Will Shen
 
PPT
20041221 gui testing survey
Will Shen
 
PPT
20060927 application facades
Will Shen
 
PPT
20111018 boost and gtest
Will Shen
 
PPTX
Data collection for field studies
Will Shen
 
20180717 Introduction of Seamless BLE Connection Migration System (SeamBlue)
Will Shen
 
16格筆記讀書法
Will Shen
 
Bade Smells in Code
Will Shen
 
Intro To BOOST.Spirit
Will Shen
 
20070514 introduction to test ng and its application for test driven gui deve...
Will Shen
 
20060411 face recognition using face arg matching
Will Shen
 
20060411 Analytic Hierarchy Process (AHP)
Will Shen
 
20050713 critical paths for gui regression testing
Will Shen
 
20050314 specification based regression test selection with risk analysis
Will Shen
 
20041113 A Test Generation Tool for Specifications in the Form of State Machine
Will Shen
 
Junit Recipes - Elementary tests (2/2)
Will Shen
 
Junit Recipes - Elementary tests (1/2)
Will Shen
 
Junit Recipes - Intro
Will Shen
 
20041221 gui testing survey
Will Shen
 
20060927 application facades
Will Shen
 
20111018 boost and gtest
Will Shen
 
Data collection for field studies
Will Shen
 

Recently uploaded (20)

PDF
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
PDF
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
PDF
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Empowering Cloud Providers with Apache CloudStack and Stackbill
ShapeBlue
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
PDF
CloudStack GPU Integration - Rohit Yadav
ShapeBlue
 
PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
PPTX
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
PPTX
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PPTX
Top Managed Service Providers in Los Angeles
Captain IT
 
PDF
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
ShapeBlue
 
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Empowering Cloud Providers with Apache CloudStack and Stackbill
ShapeBlue
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
CloudStack GPU Integration - Rohit Yadav
ShapeBlue
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Top Managed Service Providers in Los Angeles
Captain IT
 
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
ShapeBlue
 

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