SlideShare a Scribd company logo
The future of

testing in Pharo
Julien Delplanque
julien.delplanque@live.be
DrTests
-
Developers
• 2nd year of Master

• Did an internship in RMoD
team working on DrTests
for the last 6 months

• Participated to GSOC
• Entering last year of PhD
in RMoD team

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

• Hit by testing topic « by
accident »
Julien Dayne
Roadmap
• SUnit’s TestRunner and its limitations

• DrTests - an architecture to build tools around tests

• DrTests internal

• Next steps
!3
TestRunner UIPackages
containing
tests
TestCases
Results
summary
Failed tests
Errors
Run tests Profile test
execution
Analyse code
coverage
Re-run failures
or errors only Export results
!4
TestRunner UI
Run tests Profile test
execution
Analyse code
coverage
We can do more than that!!5
What can we do around
tests?
Mutation testing
Parametrisable tests
Check executable comments
Find rotten green tests
and more!
!6
Run them! Test profiling
Test coverage
…
TestRunner UI
Run tests Profile test
execution
Analyse code
coverage
Adding more buttons does not scale!!7
TestRunner model
!8
Power-up testing experience in Pharo by:

‣ Letting you plug your analysis via plugins
‣ Providing a model to configure, run and gather results
from plugins

‣ Letting you customise the way to visualise results (e.g.
sort them according to your needs).
What do we want?
!9
DrTests
!10
An architecture to build tools around tests
DrTests
Packages
under analysis
Plugin inputPlugin selected
Results tree
Plugin-defined
action(s)
Start pluginLogging label
Results view
!11
Who has the control?
2
Managed by plugin
Managed by result !12
Who has the control?
2
Managed by plugin
Managed by result
YOU!!13
Demo
!14
DrTests’ 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
!15
Consequence of
DrTests’ model
Plugins can be exposed via different UIs easily
!16
Mini DrTests
!17
DrTests
!18
Switch to Mini DrTests
Mini DrTests
Quick visual feedback
!19
DrTest APIIn a nutshell
DTPluginConfiguration
TestRunnerConfiguration
Inherits
• Stores data required for the
plugin to run in instance
variables
!20
DTPluginConfiguration subclass: #DTTestsRunnerConfiguration

	 slots: { #tests }

	 classVariables: { }

	 package: 'DrTests-TestsRunner'
DrTest APIIn a nutshell
DrTestsPlugin
TestRunner
Inherits
• Set UI labels for lists, tree and buttons.

• Describe how to fill lists to let user create a
configuration

• Create configuration by reading UI’s state in
#buildConfigurationFrom:

• Define how to run the plugin in
#runForConfiguration:

• Define if can be minified or not via
#allowMiniDrTests
!21
DrTest APIIn a nutshell
DTPluginResult
TestRunnerResult
Inherits
• Define how to build UI
trees via pragmas

• Define actions available
for nodes via commands
!22
buildGroupedByTypeTree
	 <dTTestRunnerResultTreeNamed: 'Grouped by type of result'>

	 ^ DTTreeNode new

	 	 subResults:

	 	 	 {DTTreeNode new

	 	 	 	 name: DTTestResultType error pluralName;

	 	 	 	 subResults: (self buildLeavesFrom: self testsResult errors type:
DTTestResultType error);

	 	 	 	 yourself.

	 	 	 …

};

	 	 yourself
DrTest APIIn a nutshell
➡Define how to build result trees via pragmas
!23
buildContextualMenuGroupWith: presenterIntance

	 ^ (CmCommandGroup named: 'TestRunnerResult context menu')
asSpecGroup

	 	 basicDescription: 'Commands related to results.';

	 	 register: (DTRerunCommand forSpec context: presenterIntance)

beHiddenWhenCantBeRun;

	 	 register: (DTDebugTestCommand forSpec context: presenterIntance) 

beHiddenWhenCantBeRun;

	 	 beDisplayedAsGroup;

	 	 yourself
DrTest APIIn a nutshell
➡Define actions available for nodes via commands
!24
Previously @PharoDays 2019
Done!
On its way: CommentToTest,
Mutation testing, etc…
6 months of dev later
Next steps
• Calypso integration

• Enhance SUnit

• Unify SUnit’s API tools are exposed to
Damien on github
{
!26
Conclusion
juliendelplanque/DrTests
@juldelplanque
juliendelplanque
Dr Tests opens a lot of possibilities of
future tools around tests!
‣ DrTests will be part of Pharo 8, SUnit runner will be deprecated

‣ The new infrastructure allow people to plug their analyses
‣ Tests are super-valuable, DrTests will help to extract the gold
out of them
!27

More Related Content

What's hot (20)

PPT
N Unit Presentation
priya_trivedi
 
PDF
Write unit test from scratch
Wen-Shih Chao
 
PDF
Unit test in drupal 8 by Pratomo Ardianto Drupalcamp Cebu 2018
Promet Source
 
PPTX
NUnit Features Presentation
Shir Brass
 
PDF
Unit testing in Unity
Mikko McMenamin
 
PPTX
Unit testing with NUnit
kleinron
 
PDF
An Introduction to Unit Test Using NUnit
weili_at_slideshare
 
PPT
Nunit
Mahi Kumar
 
PPT
Nguyenvandungb seminar
dunglinh111
 
PDF
Plone Testing Tools And Techniques
Jordan Baker
 
PDF
TDD for joomla extensions
Roberto Segura
 
PPTX
Unit Testing Using N Unit
Gaurav Arora
 
PDF
Getting started with unit and functional testing
Adewale Andrade
 
PPTX
Obejct Oriented SCM - OOSCM
Hernan Wilkinson
 
PDF
Plone testingdzug tagung2010
Timo Stollenwerk
 
PPTX
TestNG vs Junit
Büşra İçöz
 
PPT
java script unit testing framework
hazzaz
 
PPTX
TestNG vs JUnit: cease fire or the end of the war
Oleksiy Rezchykov
 
PPTX
Junit4&testng presentation
Sanjib Dhar
 
PPTX
TestNG Framework
Levon Apreyan
 
N Unit Presentation
priya_trivedi
 
Write unit test from scratch
Wen-Shih Chao
 
Unit test in drupal 8 by Pratomo Ardianto Drupalcamp Cebu 2018
Promet Source
 
NUnit Features Presentation
Shir Brass
 
Unit testing in Unity
Mikko McMenamin
 
Unit testing with NUnit
kleinron
 
An Introduction to Unit Test Using NUnit
weili_at_slideshare
 
Nunit
Mahi Kumar
 
Nguyenvandungb seminar
dunglinh111
 
Plone Testing Tools And Techniques
Jordan Baker
 
TDD for joomla extensions
Roberto Segura
 
Unit Testing Using N Unit
Gaurav Arora
 
Getting started with unit and functional testing
Adewale Andrade
 
Obejct Oriented SCM - OOSCM
Hernan Wilkinson
 
Plone testingdzug tagung2010
Timo Stollenwerk
 
TestNG vs Junit
Büşra İçöz
 
java script unit testing framework
hazzaz
 
TestNG vs JUnit: cease fire or the end of the war
Oleksiy Rezchykov
 
Junit4&testng presentation
Sanjib Dhar
 
TestNG Framework
Levon Apreyan
 

Similar to DrTests: The Future of Testing in Pharo (20)

PDF
The future of testing in Pharo
JulienDelp
 
PDF
The future of testing in Pharo
Pharo
 
PDF
Android Test Driven Development & Android Unit Testing
mahmoud ramadan
 
PPTX
JUnit Test Case With Processminer modules.pptx
pateljeel24
 
PDF
TDD Workshop UTN 2012
Facundo Farias
 
PDF
Keeping code clean
Brett Child
 
PDF
Unit Testing in Flutter - From Workflow Essentials to Complex Scenarios
RubenGray1
 
PDF
Software Testing
AdroitLogic
 
PPTX
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
Anna Russo
 
PDF
Working With Legacy Code
Andrea Polci
 
PDF
Python and test
Micron Technology
 
PDF
Writing Tests with the Unity Test Framework
Peter Kofler
 
PPTX
Advanced Coded UI Testing
Shai Raiten
 
PDF
Behaviour Driven Development and Thinking About Testing
dn
 
PDF
Bdd and-testing
malcolmt
 
PDF
Play with Testing on Android - Gilang Ramadhan (Academy Content Writer at Dic...
DicodingEvent
 
PDF
Test driven development - Zombie proof your code
Pascal Larocque
 
DOCX
Test Driven Development
Anand Kumar Rajana
 
PPTX
Test driven development in .Net - 2010 + Eclipse
UTC Fire & Security
 
PPT
Stopping the Rot - Putting Legacy C++ Under Test
Seb Rose
 
The future of testing in Pharo
JulienDelp
 
The future of testing in Pharo
Pharo
 
Android Test Driven Development & Android Unit Testing
mahmoud ramadan
 
JUnit Test Case With Processminer modules.pptx
pateljeel24
 
TDD Workshop UTN 2012
Facundo Farias
 
Keeping code clean
Brett Child
 
Unit Testing in Flutter - From Workflow Essentials to Complex Scenarios
RubenGray1
 
Software Testing
AdroitLogic
 
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
Anna Russo
 
Working With Legacy Code
Andrea Polci
 
Python and test
Micron Technology
 
Writing Tests with the Unity Test Framework
Peter Kofler
 
Advanced Coded UI Testing
Shai Raiten
 
Behaviour Driven Development and Thinking About Testing
dn
 
Bdd and-testing
malcolmt
 
Play with Testing on Android - Gilang Ramadhan (Academy Content Writer at Dic...
DicodingEvent
 
Test driven development - Zombie proof your code
Pascal Larocque
 
Test Driven Development
Anand Kumar Rajana
 
Test driven development in .Net - 2010 + Eclipse
UTC Fire & Security
 
Stopping the Rot - Putting Legacy C++ Under Test
Seb Rose
 
Ad

More from ESUG (20)

PDF
Micromaid: A simple Mermaid-like chart generator for Pharo
ESUG
 
PDF
Directing Generative AI for Pharo Documentation
ESUG
 
PDF
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
ESUG
 
PDF
Integrating Executable Requirements in Prototyping
ESUG
 
PDF
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
ESUG
 
PDF
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
ESUG
 
PDF
Analysing Python Machine Learning Notebooks with Moose
ESUG
 
PDF
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
ESUG
 
PDF
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
ESUG
 
PDF
Package-Aware Approach for Repository-Level Code Completion in Pharo
ESUG
 
PDF
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
ESUG
 
PDF
An Analysis of Inline Method Refactoring
ESUG
 
PDF
Identification of unnecessary object allocations using static escape analysis
ESUG
 
PDF
Control flow-sensitive optimizations In the Druid Meta-Compiler
ESUG
 
PDF
Clean Blocks (IWST 2025, Gdansk, Poland)
ESUG
 
PDF
Encoding for Objects Matters (IWST 2025)
ESUG
 
PDF
Challenges of Transpiling Smalltalk to JavaScript
ESUG
 
PDF
Immersive experiences: what Pharo users do!
ESUG
 
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
ESUG
 
PDF
Cavrois - an Organic Window Management (ESUG 2025)
ESUG
 
Micromaid: A simple Mermaid-like chart generator for Pharo
ESUG
 
Directing Generative AI for Pharo Documentation
ESUG
 
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
ESUG
 
Integrating Executable Requirements in Prototyping
ESUG
 
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
ESUG
 
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
ESUG
 
Analysing Python Machine Learning Notebooks with Moose
ESUG
 
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
ESUG
 
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
ESUG
 
Package-Aware Approach for Repository-Level Code Completion in Pharo
ESUG
 
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
ESUG
 
An Analysis of Inline Method Refactoring
ESUG
 
Identification of unnecessary object allocations using static escape analysis
ESUG
 
Control flow-sensitive optimizations In the Druid Meta-Compiler
ESUG
 
Clean Blocks (IWST 2025, Gdansk, Poland)
ESUG
 
Encoding for Objects Matters (IWST 2025)
ESUG
 
Challenges of Transpiling Smalltalk to JavaScript
ESUG
 
Immersive experiences: what Pharo users do!
ESUG
 
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
ESUG
 
Cavrois - an Organic Window Management (ESUG 2025)
ESUG
 
Ad

Recently uploaded (20)

PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
PPTX
AI Code Generation Risks (Ramkumar Dilli, CIO, Myridius)
Priyanka Aash
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PPTX
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
AI Code Generation Risks (Ramkumar Dilli, CIO, Myridius)
Priyanka Aash
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
The Future of Artificial Intelligence (AI)
Mukul
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 

DrTests: The Future of Testing in Pharo