SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
The future of testing
in Pharo
Julien Delplanque
julien.delplanque@inria.fr
About me
• 2nd year of PhD in RMoD team

• Hacking Pharo around many aspects… just for fun :-)

• Hit by testing topic « by accident »
This is me on discord.
This is me on github

and twitter.
!2
The one who work on this
topic right now
• 2nd year of Master

• Doing an internship in RMoD team for 6 months

• Master thesis on the enhancements of tests in Pharo
This is Dayne on discord.
This is Dayne on github.
Her other mentors on Github
Guille Steph
!3
Questions this talk
addresses
• What infrastructure Pharo provides for testing?

• How can we enhance testing experience?
!4
What infrastructure Pharo
provides for testing?
!5
What infrastructure Pharo
provides for testing?
Pharo’s SUnit
SUnit-UI
Jenkins-
Tools
System
browser
!6
What infrastructure Pharo
provides for testing?
Pharo’s SUnit
SUnit-UI
Jenkins-
Tools
System
browser
Custom layer for
visiting, « deciding
color » of results, …
Custom layer for
visiting, « deciding
color » of results, …
Custom layer for
visiting, « deciding
color » of results, …
≠ ≠
In fact,
!7
The infrastructure we want
Pharo’s SUnit
SUnit-UI
Jenkins-
Tools
System
browser
Common layer for visiting, « deciding color » of results, …
Dr Tests
Push

into
!8
The infrastructure we want
Enhanced Pharo’s SUnit
refactoredJenkins
-Tools
refactoredSystem
browser
DrTests
DrTests Plugins
!9
How can we enhance
testing experience?
!10
What can we do with tests?
Runner Coverage Profile
Parametrisable

test
Mutation
testing
Run
examples in
comment
Rotten
Tests
Finder
…
Input Test cases Test cases
Test
cases
Test cases

+

parameters
Test
cases

+

mutation
s
Comments Test cases …
Outpu
t
Results of
tests run
Percentage
of methods
covered
Time
taken for
each test
run
Results of
tests run
depending
on
parameter
Mutants
to be
killed
Comments
containing
failing
examples
Rotten
tests
…
Managed by SUnit-UI
!11
TestRunner UI
Packages
containing tests
TestCases
Results
summary
Failed tests
Errors
Run tests Profile test
execution
Analyse code

coverage
Re-run failures
or errors only Export results
!12
TestRunner UI: coverage
!13
TestRunner UI: profile
!14
Runner Coverage Profile
Parametrisable

test
Mutation
testing
Run
examples in
comment
Rotten
Tests
Finder
…
Input Test cases Test cases
Test
cases
Test cases

+

parameters
Test
cases

+

mutation
s
Comments Test cases …
Outpu
t
Results of
tests run
Percentage
of methods
covered
Time
taken for
each test
run
Results of
tests run
depending
on
parameter
Mutants
to be
killed
Comments
containing
failing
examples
Rotten
tests
…
What can we do with tests?
Managed by SUnit-UI
Poor integration
No integration
!15
Proposal: Dr Tests
Power-up testing experience in Pharo by:

Developing and promoting DrTests as the new UI for
testing

‣ Written in Spec

‣ Extensible via plugins

‣ Provides good model to configure, run and gather
results from plugins
!16
Dr Tests
Packages
under analysis
Plugin inputPlugin selected
Results

tree
Plugin-defined
action(s)
Start pluginLogging label Browse result
!17
Mini Dr Tests
Button to re-run according to configuration Go back to normal UI to

configure plugins, input, etc.
➡Simplified view to use a plugin once it is configured
!18
Mini Dr Tests
Button’s color gives visual feedback

about last result of plugin
!19
Dr Tests model
Plugin

Configuration
Plugin

Result
Plugin
Plugin run,

provides updates

through announcements
Created from UI

or by scripting
Can be queried from

UI or by scripting
Can specify class to use Can specify class to use
!20
Conclusion
!21
Vision
★Enhanced SUnit

★Uniform API for SUnit clients

★Plugin-based testing UI = Dr Tests
★More tools to handle tests = Dr Tests plugins
➡We want a testing ecosystem able to evolve
!22
What’s next?
Dayne is working on Dr Tests and SUnit enhancements
Clothilde will work on Smart Tests soon
!23
can test it!
!24
You can help the effort!
juliendelplanque/DrTests
We are interested in your inputs and contributions!
@juldelplanque
juliendelplanque
!25

Más contenido relacionado

La actualidad más candente

Introduction To J unit
Introduction To J unitIntroduction To J unit
Introduction To J unit
Olga Extone
 
Unit Testing And Mocking
Unit Testing And MockingUnit Testing And Mocking
Unit Testing And Mocking
Joe Wilson
 
Moq presentation
Moq presentationMoq presentation
Moq presentation
LynxStar
 
Unit Test Presentation
Unit Test PresentationUnit Test Presentation
Unit Test Presentation
Sayedur Rahman
 

La actualidad más candente (19)

Junit Interview Questions-ppt
Junit Interview Questions-pptJunit Interview Questions-ppt
Junit Interview Questions-ppt
 
Automated Unit Testing
Automated Unit TestingAutomated Unit Testing
Automated Unit Testing
 
.Net Unit Testing with Visual Studio 2010
.Net Unit Testing with Visual Studio 2010.Net Unit Testing with Visual Studio 2010
.Net Unit Testing with Visual Studio 2010
 
Introduction To J unit
Introduction To J unitIntroduction To J unit
Introduction To J unit
 
NUnit Features Presentation
NUnit Features PresentationNUnit Features Presentation
NUnit Features Presentation
 
Unit testing
Unit testingUnit testing
Unit testing
 
Introduction to testing with MSTest, Visual Studio, and Team Foundation Serve...
Introduction to testing with MSTest, Visual Studio, and Team Foundation Serve...Introduction to testing with MSTest, Visual Studio, and Team Foundation Serve...
Introduction to testing with MSTest, Visual Studio, and Team Foundation Serve...
 
Unit Testing And Mocking
Unit Testing And MockingUnit Testing And Mocking
Unit Testing And Mocking
 
Moq presentation
Moq presentationMoq presentation
Moq presentation
 
J Unit
J UnitJ Unit
J Unit
 
Unit testing with Junit
Unit testing with JunitUnit testing with Junit
Unit testing with Junit
 
Unit Test Presentation
Unit Test PresentationUnit Test Presentation
Unit Test Presentation
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Beginners - Get Started With Unit Testing in .NET
Beginners - Get Started With Unit Testing in .NETBeginners - Get Started With Unit Testing in .NET
Beginners - Get Started With Unit Testing in .NET
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Unit Testing Concepts and Best Practices
Unit Testing Concepts and Best PracticesUnit Testing Concepts and Best Practices
Unit Testing Concepts and Best Practices
 
Workshop unit test
Workshop   unit testWorkshop   unit test
Workshop unit test
 
Unit testing
Unit testing Unit testing
Unit testing
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 

Similar a The future of testing in Pharo

5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing
Mary Clemons
 
Passing The Joel Test In The PHP World
Passing The Joel Test In The PHP WorldPassing The Joel Test In The PHP World
Passing The Joel Test In The PHP World
Lorna Mitchell
 
30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster
QA or the Highway
 

Similar a The future of testing in Pharo (20)

DrTests: The Future of Testing in Pharo
DrTests: The Future of Testing in PharoDrTests: The Future of Testing in Pharo
DrTests: The Future of Testing in Pharo
 
Barcamp Bangalore 2 - On User Experience and Usability Testing
Barcamp Bangalore 2 - On User Experience and Usability TestingBarcamp Bangalore 2 - On User Experience and Usability Testing
Barcamp Bangalore 2 - On User Experience and Usability Testing
 
Put an end to regression with codeception testing
Put an end to regression with codeception testingPut an end to regression with codeception testing
Put an end to regression with codeception testing
 
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflowMay 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
 
Solving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingSolving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous Testing
 
DIY in 5 Minutes: Testing Django App with Pytest
DIY in 5 Minutes: Testing Django App with Pytest DIY in 5 Minutes: Testing Django App with Pytest
DIY in 5 Minutes: Testing Django App with Pytest
 
Ready, Set, Refactor
Ready, Set, RefactorReady, Set, Refactor
Ready, Set, Refactor
 
How not to suck at unit tests
How not to suck at unit testsHow not to suck at unit tests
How not to suck at unit tests
 
5 reasons you'll love to hate Agile Development
5 reasons you'll love to hate Agile Development5 reasons you'll love to hate Agile Development
5 reasons you'll love to hate Agile Development
 
Scrum/XP using Team System (devLink & Agile 2009)
Scrum/XP using Team System (devLink & Agile 2009)Scrum/XP using Team System (devLink & Agile 2009)
Scrum/XP using Team System (devLink & Agile 2009)
 
5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing
 
Holistic testing in DevOps
Holistic testing in DevOpsHolistic testing in DevOps
Holistic testing in DevOps
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
 
An introduction to Machine Learning
An introduction to Machine LearningAn introduction to Machine Learning
An introduction to Machine Learning
 
Vinayak Kshirsagar Resume
Vinayak Kshirsagar ResumeVinayak Kshirsagar Resume
Vinayak Kshirsagar Resume
 
Passing The Joel Test In The PHP World
Passing The Joel Test In The PHP WorldPassing The Joel Test In The PHP World
Passing The Joel Test In The PHP World
 
Types of testing
Types of testingTypes of testing
Types of testing
 
Munit_in_mule_naveen
Munit_in_mule_naveenMunit_in_mule_naveen
Munit_in_mule_naveen
 
30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster
 
Testing In Django
Testing In DjangoTesting In Django
Testing In Django
 

Más de Pharo

Más de Pharo (20)

Yesplan: 10 Years later
Yesplan: 10 Years laterYesplan: 10 Years later
Yesplan: 10 Years later
 
Object-Centric Debugging: a preview
Object-Centric Debugging: a previewObject-Centric Debugging: a preview
Object-Centric Debugging: a preview
 
Spec 2.0: The next step on desktop UI
Spec 2.0: The next step on desktop UI Spec 2.0: The next step on desktop UI
Spec 2.0: The next step on desktop UI
 
UI Testing with Spec
 UI Testing with Spec UI Testing with Spec
UI Testing with Spec
 
Pharo 7.0 and 8.0 alpha
Pharo 7.0 and 8.0 alphaPharo 7.0 and 8.0 alpha
Pharo 7.0 and 8.0 alpha
 
PHARO IoT: Installation Improvements and Continuous Integration
PHARO IoT: Installation Improvements and Continuous IntegrationPHARO IoT: Installation Improvements and Continuous Integration
PHARO IoT: Installation Improvements and Continuous Integration
 
Easy REST with OpenAPI
Easy REST with OpenAPIEasy REST with OpenAPI
Easy REST with OpenAPI
 
Comment soup with a pinch of types, served in a leaky bowl
Comment soup with a pinch of types, served in a leaky bowlComment soup with a pinch of types, served in a leaky bowl
Comment soup with a pinch of types, served in a leaky bowl
 
apart Framework: Porting from VisualWorks
apart Framework: Porting from VisualWorksapart Framework: Porting from VisualWorks
apart Framework: Porting from VisualWorks
 
XmppTalk
XmppTalkXmppTalk
XmppTalk
 
A living programming environment for blockchain
A living programming environment for blockchainA living programming environment for blockchain
A living programming environment for blockchain
 
Raspberry and Pharo
Raspberry and PharoRaspberry and Pharo
Raspberry and Pharo
 
Welcome: PharoDays 2017
Welcome: PharoDays 2017Welcome: PharoDays 2017
Welcome: PharoDays 2017
 
Pharo 6
Pharo 6Pharo 6
Pharo 6
 
Robotic Exploration and Mapping with Pharo
Robotic Exploration and Mapping with PharoRobotic Exploration and Mapping with Pharo
Robotic Exploration and Mapping with Pharo
 
Pharo 64bits
Pharo 64bitsPharo 64bits
Pharo 64bits
 
Smack: Behind the Refactorings
Smack: Behind the RefactoringsSmack: Behind the Refactorings
Smack: Behind the Refactorings
 
Pharo VM Performance
Pharo VM PerformancePharo VM Performance
Pharo VM Performance
 
Git with Style
Git with StyleGit with Style
Git with Style
 
Pharo JS
Pharo JSPharo JS
Pharo JS
 

Último

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
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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, ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 

The future of testing in Pharo

  • 1. The future of testing in Pharo Julien Delplanque julien.delplanque@inria.fr
  • 2. About me • 2nd year of PhD in RMoD team • Hacking Pharo around many aspects… just for fun :-) • Hit by testing topic « by accident » This is me on discord. This is me on github
 and twitter. !2
  • 3. The one who work on this topic right now • 2nd year of Master • Doing an internship in RMoD team for 6 months • Master thesis on the enhancements of tests in Pharo This is Dayne on discord. This is Dayne on github. Her other mentors on Github Guille Steph !3
  • 4. Questions this talk addresses • What infrastructure Pharo provides for testing? • How can we enhance testing experience? !4
  • 6. What infrastructure Pharo provides for testing? Pharo’s SUnit SUnit-UI Jenkins- Tools System browser !6
  • 7. What infrastructure Pharo provides for testing? Pharo’s SUnit SUnit-UI Jenkins- Tools System browser Custom layer for visiting, « deciding color » of results, … Custom layer for visiting, « deciding color » of results, … Custom layer for visiting, « deciding color » of results, … ≠ ≠ In fact, !7
  • 8. The infrastructure we want Pharo’s SUnit SUnit-UI Jenkins- Tools System browser Common layer for visiting, « deciding color » of results, … Dr Tests Push
 into !8
  • 9. The infrastructure we want Enhanced Pharo’s SUnit refactoredJenkins -Tools refactoredSystem browser DrTests DrTests Plugins !9
  • 10. How can we enhance testing experience? !10
  • 11. What can we do with tests? Runner Coverage Profile Parametrisable
 test Mutation testing Run examples in comment Rotten Tests Finder … Input Test cases Test cases Test cases Test cases
 +
 parameters Test cases
 +
 mutation s Comments Test cases … Outpu t Results of tests run Percentage of methods covered Time taken for each test run Results of tests run depending on parameter Mutants to be killed Comments containing failing examples Rotten tests … Managed by SUnit-UI !11
  • 12. TestRunner UI Packages containing tests TestCases Results summary Failed tests Errors Run tests Profile test execution Analyse code coverage Re-run failures or errors only Export results !12
  • 15. Runner Coverage Profile Parametrisable
 test Mutation testing Run examples in comment Rotten Tests Finder … Input Test cases Test cases Test cases Test cases
 +
 parameters Test cases
 +
 mutation s Comments Test cases … Outpu t Results of tests run Percentage of methods covered Time taken for each test run Results of tests run depending on parameter Mutants to be killed Comments containing failing examples Rotten tests … What can we do with tests? Managed by SUnit-UI Poor integration No integration !15
  • 16. Proposal: Dr Tests Power-up testing experience in Pharo by: Developing and promoting DrTests as the new UI for testing ‣ Written in Spec ‣ Extensible via plugins ‣ Provides good model to configure, run and gather results from plugins !16
  • 17. Dr Tests Packages under analysis Plugin inputPlugin selected Results
 tree Plugin-defined action(s) Start pluginLogging label Browse result !17
  • 18. Mini Dr Tests Button to re-run according to configuration Go back to normal UI to
 configure plugins, input, etc. ➡Simplified view to use a plugin once it is configured !18
  • 19. Mini Dr Tests Button’s color gives visual feedback about last result of plugin !19
  • 20. Dr Tests model Plugin
 Configuration Plugin
 Result Plugin Plugin run,
 provides updates
 through announcements Created from UI
 or by scripting Can be queried from
 UI or by scripting Can specify class to use Can specify class to use !20
  • 22. Vision ★Enhanced SUnit ★Uniform API for SUnit clients ★Plugin-based testing UI = Dr Tests ★More tools to handle tests = Dr Tests plugins ➡We want a testing ecosystem able to evolve !22
  • 23. What’s next? Dayne is working on Dr Tests and SUnit enhancements Clothilde will work on Smart Tests soon !23
  • 25. You can help the effort! juliendelplanque/DrTests We are interested in your inputs and contributions! @juldelplanque juliendelplanque !25