SlideShare a Scribd company logo
1 of 22
Download to read offline
SMALLTALK-DRIVEN
GUI TESTING
By Andreas Hiltner
Overview
©2015 Cincom Systems Inc. All Rights Reserved.3
•  Intention
•  Record and Replay Events
•  Script Classes
•  Screenshot
•  SendInput
•  OSWindow
•  Script Example
•  Questions
INTENTION
To develop a GUI-Testing
framework, that can not only
test Smalltalk internal GUI, but
external processes as well.
It should be usable within SUnit
tests.
Record and Replay Events
©2015 Cincom Systems Inc. All Rights Reserved.5
Record all events (keyboard, mouse) with timing.
Events can be saved to a file and replayed later.
Beware of applications, that save the state in
between, e.g. Calculator
Record and Replay Events
©2015 Cincom Systems Inc. All Rights Reserved.6
Advantage:
•  What-You-See-Is-What-You-Get
Drawback:
•  Uses absolute coordinates
•  Recording has to be redone, if the test changes
even the slightest bit
Record and Replay Events
©2015 Cincom Systems Inc. All Rights Reserved.7
Script
©2015 Cincom Systems Inc. All Rights Reserved.8
•  Windows
•  Mouse Input
•  Keyboard Input
•  Screenshot
Script - Window
©2015 Cincom Systems Inc. All Rights Reserved.9
•  Retrieve Window with Title
•  Wait for Window with Title
•  Retrieve Window at a certain location
•  Get the (Windows) menu
•  Send a menu item event
•  Retrieve Titlebar-Information
(location of Minimize/Maximize/Close button)
Script – Mouse Input
©2015 Cincom Systems Inc. All Rights Reserved.10
•  Click left/middle/right button
•  Scroll Mouse wheel up/down
•  Move cursor
•  Hover
Script – Keyboard Input
©2015 Cincom Systems Inc. All Rights Reserved.11
•  Send String or individual Characters
•  Send Shortcut (e.g. CTRL+C, ALT+1)
•  Send Keys like LeftArrow, RightArrow, PageUp, PageDown,
Return, etc.
Script – Class Screenshot
©2015 Cincom Systems Inc. All Rights Reserved.12
•  Take screenshot with / without window frame
•  Save screenshot as Bitmap / PNG / JPEG
Script – Class Screenshot (con’t)
©2015 Cincom Systems Inc. All Rights Reserved.13
•  Compare Screenshot with existing Bitmap
•  Save differences to a Bitmap in a file
Script
©2015 Cincom Systems Inc. All Rights Reserved.14
Script – Part One
©2015 Cincom Systems Inc. All Rights Reserved.15
Script – Part Two
©2015 Cincom Systems Inc. All Rights Reserved.16
Script – Part Three
©2015 Cincom Systems Inc. All Rights Reserved.17
Script – Part Four
©2015 Cincom Systems Inc. All Rights Reserved.18
Script – Video
©2015 Cincom Systems Inc. All Rights Reserved.19
©2015 Cincom Systems Inc. All Rights Reserved.20
Questions?
©2015 Cincom Systems Inc. All Rights Reserved.21
Star Team (Smalltalk Strategic Resources)
–  Suzanne Fortman (sfortman@cincom.com)
Cincom Smalltalk Program Director
–  Arden Thomas (athomas@cincom.com)
Cincom Smalltalk Product Manager
–  Jeremy Jordan (jjordan@cincom.com)
Cincom Smalltalk Marketing Manager
–  Suzanne Fortman (sfortman@cincom.com)
Cincom Smalltalk Engineering Manager
Contact Information
©2015 Cincom Systems Inc. All Rights Reserved.22
Evaluate Cincom Smalltalk:
try.cincomsmalltalk.com
		
Join our Cincom Smalltalk Developer Program:
develop.cincomsmalltalk.com
Try Cincom Smalltalk

More Related Content

Viewers also liked

Towards Well Planned Code Cities
Towards Well Planned Code CitiesTowards Well Planned Code Cities
Towards Well Planned Code CitiesESUG
 
Scratching the itch, making Scratch for the Raspberry Pie
Scratching the itch, making Scratch for the Raspberry PieScratching the itch, making Scratch for the Raspberry Pie
Scratching the itch, making Scratch for the Raspberry PieESUG
 
Hidden Gems in Cincom Smalltalk
Hidden Gems in Cincom SmalltalkHidden Gems in Cincom Smalltalk
Hidden Gems in Cincom SmalltalkESUG
 
Toward a Platform for Visual Debugging
Toward a Platform for Visual DebuggingToward a Platform for Visual Debugging
Toward a Platform for Visual DebuggingESUG
 
Pharo
PharoPharo
PharoESUG
 
More XP-rience
More XP-rienceMore XP-rience
More XP-rienceESUG
 
Cincom Smalltalk Roadmap 2016
Cincom Smalltalk Roadmap 2016Cincom Smalltalk Roadmap 2016
Cincom Smalltalk Roadmap 2016ESUG
 
smalltalkCI: A Continuous Integration Framework for Smalltalk Projects
smalltalkCI: A Continuous Integration Framework for Smalltalk ProjectssmalltalkCI: A Continuous Integration Framework for Smalltalk Projects
smalltalkCI: A Continuous Integration Framework for Smalltalk ProjectsESUG
 
OpenPonk modeling platform
OpenPonk modeling platformOpenPonk modeling platform
OpenPonk modeling platformESUG
 
New Native Windows UI possibilities in Cincom Smalltalk ObjectStudio
New Native Windows UI possibilities in Cincom Smalltalk ObjectStudioNew Native Windows UI possibilities in Cincom Smalltalk ObjectStudio
New Native Windows UI possibilities in Cincom Smalltalk ObjectStudioESUG
 

Viewers also liked (10)

Towards Well Planned Code Cities
Towards Well Planned Code CitiesTowards Well Planned Code Cities
Towards Well Planned Code Cities
 
Scratching the itch, making Scratch for the Raspberry Pie
Scratching the itch, making Scratch for the Raspberry PieScratching the itch, making Scratch for the Raspberry Pie
Scratching the itch, making Scratch for the Raspberry Pie
 
Hidden Gems in Cincom Smalltalk
Hidden Gems in Cincom SmalltalkHidden Gems in Cincom Smalltalk
Hidden Gems in Cincom Smalltalk
 
Toward a Platform for Visual Debugging
Toward a Platform for Visual DebuggingToward a Platform for Visual Debugging
Toward a Platform for Visual Debugging
 
Pharo
PharoPharo
Pharo
 
More XP-rience
More XP-rienceMore XP-rience
More XP-rience
 
Cincom Smalltalk Roadmap 2016
Cincom Smalltalk Roadmap 2016Cincom Smalltalk Roadmap 2016
Cincom Smalltalk Roadmap 2016
 
smalltalkCI: A Continuous Integration Framework for Smalltalk Projects
smalltalkCI: A Continuous Integration Framework for Smalltalk ProjectssmalltalkCI: A Continuous Integration Framework for Smalltalk Projects
smalltalkCI: A Continuous Integration Framework for Smalltalk Projects
 
OpenPonk modeling platform
OpenPonk modeling platformOpenPonk modeling platform
OpenPonk modeling platform
 
New Native Windows UI possibilities in Cincom Smalltalk ObjectStudio
New Native Windows UI possibilities in Cincom Smalltalk ObjectStudioNew Native Windows UI possibilities in Cincom Smalltalk ObjectStudio
New Native Windows UI possibilities in Cincom Smalltalk ObjectStudio
 

Similar to Smalltalk-driven GUI Testing

Windows Systems Tools in Smalltalk
Windows Systems Tools in SmalltalkWindows Systems Tools in Smalltalk
Windows Systems Tools in SmalltalkESUG
 
Reducing boot time in embedded Linux
Reducing boot time in embedded LinuxReducing boot time in embedded Linux
Reducing boot time in embedded LinuxChris Simmonds
 
Practical Software Testing Tools
Practical Software Testing ToolsPractical Software Testing Tools
Practical Software Testing ToolsDr Ganesh Iyer
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceMoises Silva
 
from 0 to continuous delivery in 30 minutes
from 0 to continuous delivery in 30 minutesfrom 0 to continuous delivery in 30 minutes
from 0 to continuous delivery in 30 minutesAgileSparks
 
2016-Automation-Summit_PA_SIMIT.pdf
2016-Automation-Summit_PA_SIMIT.pdf2016-Automation-Summit_PA_SIMIT.pdf
2016-Automation-Summit_PA_SIMIT.pdfLuisJonathanBahamaca
 
Automated Reporting Director
Automated Reporting DirectorAutomated Reporting Director
Automated Reporting DirectorAltair
 
SONY - Process as Code: Continuous Delivery of a CD Pipeline
SONY - Process as Code: Continuous Delivery of a CD PipelineSONY - Process as Code: Continuous Delivery of a CD Pipeline
SONY - Process as Code: Continuous Delivery of a CD PipelineDevOps Enterprise Summit
 
LSU Nordic 2015 - Agile development on system z
LSU Nordic 2015 - Agile development on system zLSU Nordic 2015 - Agile development on system z
LSU Nordic 2015 - Agile development on system zFlemming Petersen
 
ANDON Solutions and Large format Displays with InduSoft Web Studio
ANDON Solutions and Large format Displays with InduSoft Web StudioANDON Solutions and Large format Displays with InduSoft Web Studio
ANDON Solutions and Large format Displays with InduSoft Web StudioAVEVA
 
Globalization Testing for Cloud Products
Globalization Testing for Cloud ProductsGlobalization Testing for Cloud Products
Globalization Testing for Cloud ProductsTechWell
 
Briforum2012 advanced appv-sequencing
Briforum2012 advanced appv-sequencingBriforum2012 advanced appv-sequencing
Briforum2012 advanced appv-sequencingKevin Kaminski
 
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CDMulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CDGonzalo Marcos Ansoain
 
Create a Data Encryption Strategy using ADE
Create a Data Encryption Strategy using ADECreate a Data Encryption Strategy using ADE
Create a Data Encryption Strategy using ADERocket Software
 
Centralize Islands of Automation
Centralize Islands of AutomationCentralize Islands of Automation
Centralize Islands of AutomationHelpSystems
 
At Last, MuleSoft RPA Revealed - A Quick Guide To Automating Your Business | ...
At Last, MuleSoft RPA Revealed - A Quick Guide To Automating Your Business | ...At Last, MuleSoft RPA Revealed - A Quick Guide To Automating Your Business | ...
At Last, MuleSoft RPA Revealed - A Quick Guide To Automating Your Business | ...Big Compass
 
Manila MuleSoft Meetup #3 December 2018
Manila MuleSoft Meetup #3 December 2018Manila MuleSoft Meetup #3 December 2018
Manila MuleSoft Meetup #3 December 2018Christopher Co
 
Cincom smalltalk roadmap 2015 draft2
Cincom smalltalk roadmap 2015 draft2Cincom smalltalk roadmap 2015 draft2
Cincom smalltalk roadmap 2015 draft2ArdenCST
 
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genova
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - GenovaMes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genova
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genovaicelands
 

Similar to Smalltalk-driven GUI Testing (20)

Windows Systems Tools in Smalltalk
Windows Systems Tools in SmalltalkWindows Systems Tools in Smalltalk
Windows Systems Tools in Smalltalk
 
Reducing boot time in embedded Linux
Reducing boot time in embedded LinuxReducing boot time in embedded Linux
Reducing boot time in embedded Linux
 
Practical Software Testing Tools
Practical Software Testing ToolsPractical Software Testing Tools
Practical Software Testing Tools
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH Performance
 
from 0 to continuous delivery in 30 minutes
from 0 to continuous delivery in 30 minutesfrom 0 to continuous delivery in 30 minutes
from 0 to continuous delivery in 30 minutes
 
2016-Automation-Summit_PA_SIMIT.pdf
2016-Automation-Summit_PA_SIMIT.pdf2016-Automation-Summit_PA_SIMIT.pdf
2016-Automation-Summit_PA_SIMIT.pdf
 
Automated Reporting Director
Automated Reporting DirectorAutomated Reporting Director
Automated Reporting Director
 
SONY - Process as Code: Continuous Delivery of a CD Pipeline
SONY - Process as Code: Continuous Delivery of a CD PipelineSONY - Process as Code: Continuous Delivery of a CD Pipeline
SONY - Process as Code: Continuous Delivery of a CD Pipeline
 
LSU Nordic 2015 - Agile development on system z
LSU Nordic 2015 - Agile development on system zLSU Nordic 2015 - Agile development on system z
LSU Nordic 2015 - Agile development on system z
 
ANDON Solutions and Large format Displays with InduSoft Web Studio
ANDON Solutions and Large format Displays with InduSoft Web StudioANDON Solutions and Large format Displays with InduSoft Web Studio
ANDON Solutions and Large format Displays with InduSoft Web Studio
 
Globalization Testing for Cloud Products
Globalization Testing for Cloud ProductsGlobalization Testing for Cloud Products
Globalization Testing for Cloud Products
 
Briforum2012 advanced appv-sequencing
Briforum2012 advanced appv-sequencingBriforum2012 advanced appv-sequencing
Briforum2012 advanced appv-sequencing
 
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CDMulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
 
Create a Data Encryption Strategy using ADE
Create a Data Encryption Strategy using ADECreate a Data Encryption Strategy using ADE
Create a Data Encryption Strategy using ADE
 
Centralize Islands of Automation
Centralize Islands of AutomationCentralize Islands of Automation
Centralize Islands of Automation
 
At Last, MuleSoft RPA Revealed - A Quick Guide To Automating Your Business | ...
At Last, MuleSoft RPA Revealed - A Quick Guide To Automating Your Business | ...At Last, MuleSoft RPA Revealed - A Quick Guide To Automating Your Business | ...
At Last, MuleSoft RPA Revealed - A Quick Guide To Automating Your Business | ...
 
IBM zAware
IBM zAwareIBM zAware
IBM zAware
 
Manila MuleSoft Meetup #3 December 2018
Manila MuleSoft Meetup #3 December 2018Manila MuleSoft Meetup #3 December 2018
Manila MuleSoft Meetup #3 December 2018
 
Cincom smalltalk roadmap 2015 draft2
Cincom smalltalk roadmap 2015 draft2Cincom smalltalk roadmap 2015 draft2
Cincom smalltalk roadmap 2015 draft2
 
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genova
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - GenovaMes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genova
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genova
 

More from ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

More from ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Recently uploaded

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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
 

Recently uploaded (20)

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 

Smalltalk-driven GUI Testing

  • 2.
  • 3. Overview ©2015 Cincom Systems Inc. All Rights Reserved.3 •  Intention •  Record and Replay Events •  Script Classes •  Screenshot •  SendInput •  OSWindow •  Script Example •  Questions
  • 4. INTENTION To develop a GUI-Testing framework, that can not only test Smalltalk internal GUI, but external processes as well. It should be usable within SUnit tests.
  • 5. Record and Replay Events ©2015 Cincom Systems Inc. All Rights Reserved.5 Record all events (keyboard, mouse) with timing. Events can be saved to a file and replayed later. Beware of applications, that save the state in between, e.g. Calculator
  • 6. Record and Replay Events ©2015 Cincom Systems Inc. All Rights Reserved.6 Advantage: •  What-You-See-Is-What-You-Get Drawback: •  Uses absolute coordinates •  Recording has to be redone, if the test changes even the slightest bit
  • 7. Record and Replay Events ©2015 Cincom Systems Inc. All Rights Reserved.7
  • 8. Script ©2015 Cincom Systems Inc. All Rights Reserved.8 •  Windows •  Mouse Input •  Keyboard Input •  Screenshot
  • 9. Script - Window ©2015 Cincom Systems Inc. All Rights Reserved.9 •  Retrieve Window with Title •  Wait for Window with Title •  Retrieve Window at a certain location •  Get the (Windows) menu •  Send a menu item event •  Retrieve Titlebar-Information (location of Minimize/Maximize/Close button)
  • 10. Script – Mouse Input ©2015 Cincom Systems Inc. All Rights Reserved.10 •  Click left/middle/right button •  Scroll Mouse wheel up/down •  Move cursor •  Hover
  • 11. Script – Keyboard Input ©2015 Cincom Systems Inc. All Rights Reserved.11 •  Send String or individual Characters •  Send Shortcut (e.g. CTRL+C, ALT+1) •  Send Keys like LeftArrow, RightArrow, PageUp, PageDown, Return, etc.
  • 12. Script – Class Screenshot ©2015 Cincom Systems Inc. All Rights Reserved.12 •  Take screenshot with / without window frame •  Save screenshot as Bitmap / PNG / JPEG
  • 13. Script – Class Screenshot (con’t) ©2015 Cincom Systems Inc. All Rights Reserved.13 •  Compare Screenshot with existing Bitmap •  Save differences to a Bitmap in a file
  • 14. Script ©2015 Cincom Systems Inc. All Rights Reserved.14
  • 15. Script – Part One ©2015 Cincom Systems Inc. All Rights Reserved.15
  • 16. Script – Part Two ©2015 Cincom Systems Inc. All Rights Reserved.16
  • 17. Script – Part Three ©2015 Cincom Systems Inc. All Rights Reserved.17
  • 18. Script – Part Four ©2015 Cincom Systems Inc. All Rights Reserved.18
  • 19. Script – Video ©2015 Cincom Systems Inc. All Rights Reserved.19
  • 20. ©2015 Cincom Systems Inc. All Rights Reserved.20 Questions?
  • 21. ©2015 Cincom Systems Inc. All Rights Reserved.21 Star Team (Smalltalk Strategic Resources) –  Suzanne Fortman (sfortman@cincom.com) Cincom Smalltalk Program Director –  Arden Thomas (athomas@cincom.com) Cincom Smalltalk Product Manager –  Jeremy Jordan (jjordan@cincom.com) Cincom Smalltalk Marketing Manager –  Suzanne Fortman (sfortman@cincom.com) Cincom Smalltalk Engineering Manager Contact Information
  • 22. ©2015 Cincom Systems Inc. All Rights Reserved.22 Evaluate Cincom Smalltalk: try.cincomsmalltalk.com Join our Cincom Smalltalk Developer Program: develop.cincomsmalltalk.com Try Cincom Smalltalk