SlideShare uma empresa Scribd logo
1 de 70
Baixar para ler offline
A Backpack to go the Extra-Functional Mile

a hitched hike by the PROWESS project

Laura M. Castro
Universidade da Coruña (Spain)
SF Erlang Factory, March 6th, 2014
relationship between the
business criticality of modiability and IT project
success.

There is a signicant negative

relationship between the
performance and IT project

There is a possible signicant
business criticality of

success.

The impact of NFRs on project success
N. Martens (University of Utrecht, 2011)
The application of

verication (starting as early as

possible during the software development life cycle) has a
positive inuence on IT
The long term

project success.

benets of verication outweigh the
costs.

short term extra

The impact of NFRs on project success
N. Martens (University of Utrecht, 2011)
www.prowess-project.eu
Smother

The PROWESS Tools
Smother

The PROWESS Tools

What does it do?

Code coverage

for Erlang.
Smother

The PROWESS Tools

What does it do?

Code coverage

Wait. . . what about cover?

for Erlang.

While cover accounts for executable LOC,
smother applies MC/DC coverage.
Smother

The PROWESS Tools

What does it do?

Code coverage

for Erlang.

Wait. . . what about cover?

While cover accounts for executable LOC,
smother applies MC/DC coverage.

What's MC/DC coverage?
•
•
•
•

Each decision tries every possible outcome.
Each condition in a decision takes on every possible outcome.
Each entry and exit point is invoked.
Each condition in a decision is shown to independently aect
the outcome of the decision.
Smother

The PROWESS Tools

How does it work?

Let's see a demo!
Smother

The PROWESS Tools

How does it work?

Let's see a demo!
There's also a tutorial on Youtube.
Smother

The PROWESS Tools

How does it work?

Can I use it?

Let's see a demo!
There's also a tutorial on Youtube.

Yes.
Smother

The PROWESS Tools

How does it work?

Can I use it?

Let's see a demo!
There's also a tutorial on Youtube.

Yes.
And if you do, there's a user survey :).
Smother

The PROWESS Tools

How does it work?

Can I use it?

Where can I get it?

Let's see a demo!
There's also a tutorial on Youtube.

Yes.
And if you do, there's a user survey :).

GitHub:

https://github.com/ramsay-t/Smother
JSONGEN

The PROWESS Tools
JSONGEN

The PROWESS Tools

What does it do?

Generates and validates JSON instances
w.r.t. a JSON schema.
JSONGEN

The PROWESS Tools

What does it do?

Generates and validates JSON instances
w.r.t. a JSON schema.

Wait. . . what? I've seen this before!

Not Suresh Khatri's (Javascript).
Not Rick Byington's (Java).
Not Douglas Hall's (Golang).
Not JSON-Generator (online data sampler).
Not Luká² Gergel's (online data sampler).
JSONGEN

The PROWESS Tools

What does it do?

Generates and validates JSON instances
w.r.t. a JSON schema.

Wait. . . what? I've seen this before!

Not Suresh Khatri's (Javascript).
Not Rick Byington's (Java).
Not Douglas Hall's (Golang).
Not JSON-Generator (online data sampler).
Not Luká² Gergel's (online data sampler).

What's the dierence?

Implemented in Erlang :).
JSONGEN

The PROWESS Tools

What does it do?

Generates and validates JSON instances
w.r.t. a JSON schema.

Wait. . . what? I've seen this before!

Not Suresh Khatri's (Javascript).
Not Rick Byington's (Java).
Not Douglas Hall's (Golang).
Not JSON-Generator (online data sampler).
Not Luká² Gergel's (online data sampler).

What's the dierence?

Implemented in Erlang :).
Uses PBT data generation capabilities.
JSONGEN

The PROWESS Tools

How does it work?

Let's see a demo!
JSONGEN

The PROWESS Tools

How does it work?

Can I use it?

Let's see a demo!

Yes.
JSONGEN

The PROWESS Tools

How does it work?

Can I use it?

Let's see a demo!

Yes.
But it's work in progress.
JSONGEN

The PROWESS Tools

How does it work?

Can I use it?

Where can I get it?

Let's see a demo!

Yes.
But it's work in progress.

GitHub:

https://github.com/aherranz/jsongen
WSToolKit

The PROWESS Tools
WSToolKit

The PROWESS Tools

What does it do?

Assists in using PBT tools for web

services.
WSToolKit

The PROWESS Tools

What does it do?

Assists in using PBT tools for web

What do web services have in particular?

services.

They are described in WSDL documents,
accessed via REST APIs,
change and evolve continuously.
WSToolKit

The PROWESS Tools

What does it do?

Assists in using PBT tools for web

services.

What do web services have in particular?

They are described in WSDL documents,
accessed via REST APIs,
change and evolve continuously.

How does this tool help?

Generates test model skeletons from WSDL descriptions.
Generates test model skeletons by interacting with a REST API.
Provides a powerful WSDL-like DSL for custom data generation.
Updates existing test models to adjust to WS changes.
WSToolKit

The PROWESS Tools

How does it work?

Let's see some code. . .
WSToolKit

The PROWESS Tools

How does it work?

Can I use it?

Let's see some code. . .

You can run the provided examples,
but it's still work in progress.
WSToolKit

The PROWESS Tools

How does it work?

Can I use it?

Where can I get it?

Let's see some code. . .

You can run the provided examples,
but it's still work in progress.

GitHub:

https://github.com/RefactoringTools/WSToolkit
readSpec

The PROWESS Tools
readSpec

The PROWESS Tools

What does it do?

Generates human readable versions
of test properties and test models.
readSpec

The PROWESS Tools

What does it do?

Readable how?

Generates human readable versions
of test properties and test models.

Cucumber-like.
readSpec

The PROWESS Tools

What does it do?

Readable how?
What is Cucumber?

Generates human readable versions
of test properties and test models.

Cucumber-like.

Behavior-driven development tool.
Originally written in Ruby, many clones.
Automated acceptance tests.
readSpec

The PROWESS Tools

How does it work?

Let's see some code. . .
readSpec

The PROWESS Tools

How does it work?

Can I use it?

Let's see some code. . .

You can run the provided examples,
but it's still work in progress.
readSpec

The PROWESS Tools

How does it work?

Can I use it?

Let's see some code. . .

You can run the provided examples,
but it's still work in progress.

Where can I get it?

GitHub:

https://github.com/lauramcastro/readspec
a11y-checker

The PROWESS Tools
a11y-checker

The PROWESS Tools

What does it do?

Tests web pages for

conformance to WCAG 2.0.
a11y-checker

The PROWESS Tools

What does it do?

Tests web pages for

conformance to WCAG 2.0.

Wait. . . what? I've seen this before, too!

Not Wave (online checker).
Not AChecker (online checker).
a11y-checker

The PROWESS Tools

What does it do?

Tests web pages for

conformance to WCAG 2.0.

Wait. . . what? I've seen this before, too!

Not Wave (online checker).
Not AChecker (online checker).

What's the dierence?

Implemented in Erlang :).
a11y-checker

The PROWESS Tools

What does it do?

Tests web pages for

conformance to WCAG 2.0.

Wait. . . what? I've seen this before, too!

Not Wave (online checker).
Not AChecker (online checker).

What's the dierence?

Implemented in Erlang :).
A11y guidelines as QuickCheck properties.
Features a PBT-like HTML generator.
a11y-checker

The PROWESS Tools

How does it work?

Let's see a demo!
a11y-checker

The PROWESS Tools

How does it work?

Can I use it?

Let's see a demo!

Yes!
a11y-checker

The PROWESS Tools

How does it work?

Can I use it?

Where can I get it?

Let's see a demo!

Yes!

GitHub:

https://github.com/antiapuentes/a11y-checker
MEGALoad

The PROWESS Tools
MEGALoad

The PROWESS Tools

What does it do?

Provides a cloud

testing framework.
MEGALoad

The PROWESS Tools

What does it do?

What kind of tests?

Provides a cloud

testing framework.

Performance and load

testing.
MEGALoad

The PROWESS Tools

What does it do?

What kind of tests?

Provides a cloud

testing framework.

Performance and load

Wait. . . what? There are many load testing tools!

testing.

Not SaaS, rather TaaS.
PBT for powerful exibility, automation, reporting.
MEGALoad

The PROWESS Tools

How does it work?

A teaser. . .
MEGALoad

The PROWESS Tools

How does it work?

A teaser. . .
MEGALoad

The PROWESS Tools

How does it work?

A teaser. . .

What else can I expect?

Integration with JSONGEN.
A NFR property library for ne-grain tests.
MEGALoad

The PROWESS Tools

How does it work?

A teaser. . .

What else can I expect?

Integration with JSONGEN.
A NFR property library for ne-grain tests.

Where will I be able to use it?

Soon!
MEGALoad

The PROWESS Tools

How does it work?

A teaser. . .

What else can I expect?

Integration with JSONGEN.
A NFR property library for ne-grain tests.

Where will I be able to use it?

Soon!
(stay tunned at upcoming Erlang events)
To take home

•

•
•
•

An improved way to have a
measure about how well do
your tests cover your code
Two ways to generate data for
your tests
A way to generate skeletons
for your test models
A way to turn your test
properties and models into
readable text

•

A way to certify your
accesibility compliance

•

A way to assess your behaviour
under congurable load
Thanks for your attention!

time_for ( Questions ) -
[ speaker ! OneByOne || OneByOne - Questions ] .

@lauramcastro
lcastro@udc.es
Credits

Image authoring attribution (in order of appearance)

•
•
•
•
•
•
•
•
•
•
•
•
•

Hitch-hiking Iceland, `Something about Iceland (a blog about Iceland)'.
Newspaper kid, `Stamping Julie' paper crafting blog.
US Navy cadets, Wikimedia Commons.
Success kid, self-education `And be there' website.
Condescending Wonka, `A Sub's Life' blog.
James Bond's artwork, by Tozani.
Q's gadgets, Hostalia (blog).
The backpack, by Targus Group International, Inc.
FP7 logo, `Adventure (The Plug-and-Play Virtual Factory)' website.
Keep Calm and Wrap it Up, Mallika Khurana's blog.
The Extra Mile sign, `Personal Development' blog.
Douglas Adam's `The ultimate hitchhiker's guide to the galaxy', `Books Come First' blog.
Hitch-hiker to Anywhere but here , `Nomad Sage' travel blog.

Mais conteúdo relacionado

Mais procurados

Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Alan Richardson
 

Mais procurados (19)

Black Ops Testing Workshop from Agile Testing Days 2014
Black Ops Testing Workshop from Agile Testing Days 2014Black Ops Testing Workshop from Agile Testing Days 2014
Black Ops Testing Workshop from Agile Testing Days 2014
 
Tdd is not about testing (OOP)
Tdd is not about testing (OOP)Tdd is not about testing (OOP)
Tdd is not about testing (OOP)
 
Tdd is not about testing (C++ version)
Tdd is not about testing (C++ version)Tdd is not about testing (C++ version)
Tdd is not about testing (C++ version)
 
Abstraction Layers Test Management Summit Faciliated Session 2014
Abstraction Layers Test Management Summit Faciliated Session 2014Abstraction Layers Test Management Summit Faciliated Session 2014
Abstraction Layers Test Management Summit Faciliated Session 2014
 
Technical Testing Webinar
Technical Testing WebinarTechnical Testing Webinar
Technical Testing Webinar
 
Secrets and Mysteries of Automated Execution Keynote slides
Secrets and Mysteries of Automated Execution Keynote slidesSecrets and Mysteries of Automated Execution Keynote slides
Secrets and Mysteries of Automated Execution Keynote slides
 
How to fix bug or defects in software
How to fix bug or defects in software How to fix bug or defects in software
How to fix bug or defects in software
 
Devfest 2019-slides
Devfest 2019-slidesDevfest 2019-slides
Devfest 2019-slides
 
Hotfixing iOS apps with Javascript
Hotfixing iOS apps with JavascriptHotfixing iOS apps with Javascript
Hotfixing iOS apps with Javascript
 
Agile Infrastructure Velocity 09
Agile Infrastructure Velocity 09Agile Infrastructure Velocity 09
Agile Infrastructure Velocity 09
 
Reactive Streams, j.u.concurrent, & Beyond!
Reactive Streams, j.u.concurrent, & Beyond!Reactive Streams, j.u.concurrent, & Beyond!
Reactive Streams, j.u.concurrent, & Beyond!
 
Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"
 
Effective Software Testing for Modern Software Development
Effective Software Testing for Modern Software DevelopmentEffective Software Testing for Modern Software Development
Effective Software Testing for Modern Software Development
 
Automating Pragmatically - Testival 20190604
Automating Pragmatically - Testival 20190604Automating Pragmatically - Testival 20190604
Automating Pragmatically - Testival 20190604
 
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
 
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
 
JavaScript Metaprogramming with ES 2015 Proxy
JavaScript Metaprogramming with ES 2015 ProxyJavaScript Metaprogramming with ES 2015 Proxy
JavaScript Metaprogramming with ES 2015 Proxy
 
Dev and Ops Collaboration and Awareness at Etsy and Flickr
Dev and Ops Collaboration and Awareness at Etsy and FlickrDev and Ops Collaboration and Awareness at Etsy and Flickr
Dev and Ops Collaboration and Awareness at Etsy and Flickr
 
How do you tame a big ball of mud? One test at a time.
How do you tame a big ball of mud? One test at a time.How do you tame a big ball of mud? One test at a time.
How do you tame a big ball of mud? One test at a time.
 

Semelhante a A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project)

Open IoT Made Easy - Introduction to OGC SensorThings API
Open IoT Made Easy - Introduction to OGC SensorThings APIOpen IoT Made Easy - Introduction to OGC SensorThings API
Open IoT Made Easy - Introduction to OGC SensorThings API
SensorUp
 

Semelhante a A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project) (20)

Paris Web - Javascript as a programming language
Paris Web - Javascript as a programming languageParis Web - Javascript as a programming language
Paris Web - Javascript as a programming language
 
Open Source and the MEAN stack
Open Source and the MEAN stackOpen Source and the MEAN stack
Open Source and the MEAN stack
 
quantum_leap_angularjs_tools_redefining_development_in_2023.pptx
quantum_leap_angularjs_tools_redefining_development_in_2023.pptxquantum_leap_angularjs_tools_redefining_development_in_2023.pptx
quantum_leap_angularjs_tools_redefining_development_in_2023.pptx
 
StackEngine Problem Space Demo
StackEngine Problem Space DemoStackEngine Problem Space Demo
StackEngine Problem Space Demo
 
openQA Hoverboard - Open-source Question Answering Framework
openQA Hoverboard - Open-source Question Answering FrameworkopenQA Hoverboard - Open-source Question Answering Framework
openQA Hoverboard - Open-source Question Answering Framework
 
The Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowThe Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To Know
 
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
 
Open IoT Made Easy - Introduction to OGC SensorThings API
Open IoT Made Easy - Introduction to OGC SensorThings APIOpen IoT Made Easy - Introduction to OGC SensorThings API
Open IoT Made Easy - Introduction to OGC SensorThings API
 
Containers and Developer Defined Data Centers - Evan Powell - Keynote in Bang...
Containers and Developer Defined Data Centers - Evan Powell - Keynote in Bang...Containers and Developer Defined Data Centers - Evan Powell - Keynote in Bang...
Containers and Developer Defined Data Centers - Evan Powell - Keynote in Bang...
 
Introduction to Protractor - Habilelabs
Introduction to Protractor - HabilelabsIntroduction to Protractor - Habilelabs
Introduction to Protractor - Habilelabs
 
Supporting Software Developers with a Holistic Recommender System
Supporting Software Developers with a Holistic Recommender SystemSupporting Software Developers with a Holistic Recommender System
Supporting Software Developers with a Holistic Recommender System
 
War of the Machines: PVS-Studio vs. TensorFlow
War of the Machines: PVS-Studio vs. TensorFlowWar of the Machines: PVS-Studio vs. TensorFlow
War of the Machines: PVS-Studio vs. TensorFlow
 
Testing Big in JavaScript
Testing Big in JavaScriptTesting Big in JavaScript
Testing Big in JavaScript
 
10 practices that every developer needs to start right now
10 practices that every developer needs to start right now10 practices that every developer needs to start right now
10 practices that every developer needs to start right now
 
AppSec Pipelines and Event based Security
AppSec Pipelines and Event based SecurityAppSec Pipelines and Event based Security
AppSec Pipelines and Event based Security
 
Ep keyote slides
Ep  keyote slidesEp  keyote slides
Ep keyote slides
 
Ep keyote slides
Ep  keyote slidesEp  keyote slides
Ep keyote slides
 
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
 
How to NLProc from .NET
How to NLProc from .NETHow to NLProc from .NET
How to NLProc from .NET
 
Bledar Gjocaj - Java open source
Bledar Gjocaj - Java open sourceBledar Gjocaj - Java open source
Bledar Gjocaj - Java open source
 

Mais de Laura M. Castro

Mais de Laura M. Castro (20)

Ola, ChatGPT... que carreira sería boa para min?
Ola, ChatGPT... que carreira sería boa para min?Ola, ChatGPT... que carreira sería boa para min?
Ola, ChatGPT... que carreira sería boa para min?
 
IAs xerativas e nesgos de xénero
IAs xerativas e nesgos de xéneroIAs xerativas e nesgos de xénero
IAs xerativas e nesgos de xénero
 
As intelixencias artificiais como xeradoras de cultura: exploración dos nesgo...
As intelixencias artificiais como xeradoras de cultura: exploración dos nesgo...As intelixencias artificiais como xeradoras de cultura: exploración dos nesgo...
As intelixencias artificiais como xeradoras de cultura: exploración dos nesgo...
 
David vs. Goliat: lecciones aprendidas de una experiencia fallida de adopción...
David vs. Goliat: lecciones aprendidas de una experiencia fallida de adopción...David vs. Goliat: lecciones aprendidas de una experiencia fallida de adopción...
David vs. Goliat: lecciones aprendidas de una experiencia fallida de adopción...
 
Why on Earth would I test if I have to just "Let it crash"?
Why on Earth would I test if I have to just "Let it crash"?Why on Earth would I test if I have to just "Let it crash"?
Why on Earth would I test if I have to just "Let it crash"?
 
How the BEAM will change your mind
How the BEAM will change your mindHow the BEAM will change your mind
How the BEAM will change your mind
 
Elixir vs Java
Elixir vs JavaElixir vs Java
Elixir vs Java
 
So I used Erlang... is my system as scalable as they say it'd be?
So I used Erlang... is my system as scalable as they say it'd be?So I used Erlang... is my system as scalable as they say it'd be?
So I used Erlang... is my system as scalable as they say it'd be?
 
Elixir: the not-so-hidden path to Erlang
Elixir: the not-so-hidden path to ErlangElixir: the not-so-hidden path to Erlang
Elixir: the not-so-hidden path to Erlang
 
Automatic generation of UML sequence diagrams from test counterexamples
Automatic generation of UML sequence diagrams from test counterexamplesAutomatic generation of UML sequence diagrams from test counterexamples
Automatic generation of UML sequence diagrams from test counterexamples
 
Making property-based testing easier to read for humans
Making property-based testing easier to read for humansMaking property-based testing easier to read for humans
Making property-based testing easier to read for humans
 
Erlang as a supporting technology for teaching Software Architecture
Erlang as a supporting technology for teaching Software ArchitectureErlang as a supporting technology for teaching Software Architecture
Erlang as a supporting technology for teaching Software Architecture
 
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación DeclarativaExperiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
 
Functional programming goes to Hollywood... and around the world!
Functional programming goes to Hollywood... and around the world!Functional programming goes to Hollywood... and around the world!
Functional programming goes to Hollywood... and around the world!
 
Failover and takeover contingency mechanisms for network partition and node f...
Failover and takeover contingency mechanisms for network partition and node f...Failover and takeover contingency mechanisms for network partition and node f...
Failover and takeover contingency mechanisms for network partition and node f...
 
Editing documents with LaTeX
Editing documents with LaTeXEditing documents with LaTeX
Editing documents with LaTeX
 
Introdución á edición de textos con LaTeX
Introdución á edición de textos con LaTeXIntrodución á edición de textos con LaTeX
Introdución á edición de textos con LaTeX
 
Edición de textos con LaTeX
Edición de textos con LaTeXEdición de textos con LaTeX
Edición de textos con LaTeX
 
Edición de textos con LaTeX
Edición de textos con LaTeXEdición de textos con LaTeX
Edición de textos con LaTeX
 
Improving software development using Erlang/OTP
Improving software development using Erlang/OTPImproving software development using Erlang/OTP
Improving software development using Erlang/OTP
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
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
 
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
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
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
 
[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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project)

  • 1. A Backpack to go the Extra-Functional Mile a hitched hike by the PROWESS project Laura M. Castro Universidade da Coruña (Spain) SF Erlang Factory, March 6th, 2014
  • 2.
  • 3.
  • 4.
  • 5. relationship between the business criticality of modiability and IT project success. There is a signicant negative relationship between the performance and IT project There is a possible signicant business criticality of success. The impact of NFRs on project success N. Martens (University of Utrecht, 2011)
  • 6. The application of verication (starting as early as possible during the software development life cycle) has a positive inuence on IT The long term project success. benets of verication outweigh the costs. short term extra The impact of NFRs on project success N. Martens (University of Utrecht, 2011)
  • 7.
  • 8.
  • 9.
  • 10.
  • 12.
  • 14. Smother The PROWESS Tools What does it do? Code coverage for Erlang.
  • 15. Smother The PROWESS Tools What does it do? Code coverage Wait. . . what about cover? for Erlang. While cover accounts for executable LOC, smother applies MC/DC coverage.
  • 16. Smother The PROWESS Tools What does it do? Code coverage for Erlang. Wait. . . what about cover? While cover accounts for executable LOC, smother applies MC/DC coverage. What's MC/DC coverage? • • • • Each decision tries every possible outcome. Each condition in a decision takes on every possible outcome. Each entry and exit point is invoked. Each condition in a decision is shown to independently aect the outcome of the decision.
  • 17. Smother The PROWESS Tools How does it work? Let's see a demo!
  • 18. Smother The PROWESS Tools How does it work? Let's see a demo! There's also a tutorial on Youtube.
  • 19. Smother The PROWESS Tools How does it work? Can I use it? Let's see a demo! There's also a tutorial on Youtube. Yes.
  • 20. Smother The PROWESS Tools How does it work? Can I use it? Let's see a demo! There's also a tutorial on Youtube. Yes. And if you do, there's a user survey :).
  • 21. Smother The PROWESS Tools How does it work? Can I use it? Where can I get it? Let's see a demo! There's also a tutorial on Youtube. Yes. And if you do, there's a user survey :). GitHub: https://github.com/ramsay-t/Smother
  • 23. JSONGEN The PROWESS Tools What does it do? Generates and validates JSON instances w.r.t. a JSON schema.
  • 24. JSONGEN The PROWESS Tools What does it do? Generates and validates JSON instances w.r.t. a JSON schema. Wait. . . what? I've seen this before! Not Suresh Khatri's (Javascript). Not Rick Byington's (Java). Not Douglas Hall's (Golang). Not JSON-Generator (online data sampler). Not Luká² Gergel's (online data sampler).
  • 25. JSONGEN The PROWESS Tools What does it do? Generates and validates JSON instances w.r.t. a JSON schema. Wait. . . what? I've seen this before! Not Suresh Khatri's (Javascript). Not Rick Byington's (Java). Not Douglas Hall's (Golang). Not JSON-Generator (online data sampler). Not Luká² Gergel's (online data sampler). What's the dierence? Implemented in Erlang :).
  • 26. JSONGEN The PROWESS Tools What does it do? Generates and validates JSON instances w.r.t. a JSON schema. Wait. . . what? I've seen this before! Not Suresh Khatri's (Javascript). Not Rick Byington's (Java). Not Douglas Hall's (Golang). Not JSON-Generator (online data sampler). Not Luká² Gergel's (online data sampler). What's the dierence? Implemented in Erlang :). Uses PBT data generation capabilities.
  • 27. JSONGEN The PROWESS Tools How does it work? Let's see a demo!
  • 28. JSONGEN The PROWESS Tools How does it work? Can I use it? Let's see a demo! Yes.
  • 29. JSONGEN The PROWESS Tools How does it work? Can I use it? Let's see a demo! Yes. But it's work in progress.
  • 30. JSONGEN The PROWESS Tools How does it work? Can I use it? Where can I get it? Let's see a demo! Yes. But it's work in progress. GitHub: https://github.com/aherranz/jsongen
  • 32. WSToolKit The PROWESS Tools What does it do? Assists in using PBT tools for web services.
  • 33. WSToolKit The PROWESS Tools What does it do? Assists in using PBT tools for web What do web services have in particular? services. They are described in WSDL documents, accessed via REST APIs, change and evolve continuously.
  • 34. WSToolKit The PROWESS Tools What does it do? Assists in using PBT tools for web services. What do web services have in particular? They are described in WSDL documents, accessed via REST APIs, change and evolve continuously. How does this tool help? Generates test model skeletons from WSDL descriptions. Generates test model skeletons by interacting with a REST API. Provides a powerful WSDL-like DSL for custom data generation. Updates existing test models to adjust to WS changes.
  • 35. WSToolKit The PROWESS Tools How does it work? Let's see some code. . .
  • 36. WSToolKit The PROWESS Tools How does it work? Can I use it? Let's see some code. . . You can run the provided examples, but it's still work in progress.
  • 37. WSToolKit The PROWESS Tools How does it work? Can I use it? Where can I get it? Let's see some code. . . You can run the provided examples, but it's still work in progress. GitHub: https://github.com/RefactoringTools/WSToolkit
  • 39. readSpec The PROWESS Tools What does it do? Generates human readable versions of test properties and test models.
  • 40. readSpec The PROWESS Tools What does it do? Readable how? Generates human readable versions of test properties and test models. Cucumber-like.
  • 41. readSpec The PROWESS Tools What does it do? Readable how? What is Cucumber? Generates human readable versions of test properties and test models. Cucumber-like. Behavior-driven development tool. Originally written in Ruby, many clones. Automated acceptance tests.
  • 42. readSpec The PROWESS Tools How does it work? Let's see some code. . .
  • 43. readSpec The PROWESS Tools How does it work? Can I use it? Let's see some code. . . You can run the provided examples, but it's still work in progress.
  • 44. readSpec The PROWESS Tools How does it work? Can I use it? Let's see some code. . . You can run the provided examples, but it's still work in progress. Where can I get it? GitHub: https://github.com/lauramcastro/readspec
  • 46. a11y-checker The PROWESS Tools What does it do? Tests web pages for conformance to WCAG 2.0.
  • 47. a11y-checker The PROWESS Tools What does it do? Tests web pages for conformance to WCAG 2.0. Wait. . . what? I've seen this before, too! Not Wave (online checker). Not AChecker (online checker).
  • 48. a11y-checker The PROWESS Tools What does it do? Tests web pages for conformance to WCAG 2.0. Wait. . . what? I've seen this before, too! Not Wave (online checker). Not AChecker (online checker). What's the dierence? Implemented in Erlang :).
  • 49. a11y-checker The PROWESS Tools What does it do? Tests web pages for conformance to WCAG 2.0. Wait. . . what? I've seen this before, too! Not Wave (online checker). Not AChecker (online checker). What's the dierence? Implemented in Erlang :). A11y guidelines as QuickCheck properties. Features a PBT-like HTML generator.
  • 50. a11y-checker The PROWESS Tools How does it work? Let's see a demo!
  • 51. a11y-checker The PROWESS Tools How does it work? Can I use it? Let's see a demo! Yes!
  • 52. a11y-checker The PROWESS Tools How does it work? Can I use it? Where can I get it? Let's see a demo! Yes! GitHub: https://github.com/antiapuentes/a11y-checker
  • 54. MEGALoad The PROWESS Tools What does it do? Provides a cloud testing framework.
  • 55. MEGALoad The PROWESS Tools What does it do? What kind of tests? Provides a cloud testing framework. Performance and load testing.
  • 56. MEGALoad The PROWESS Tools What does it do? What kind of tests? Provides a cloud testing framework. Performance and load Wait. . . what? There are many load testing tools! testing. Not SaaS, rather TaaS. PBT for powerful exibility, automation, reporting.
  • 57. MEGALoad The PROWESS Tools How does it work? A teaser. . .
  • 58.
  • 59.
  • 60.
  • 61. MEGALoad The PROWESS Tools How does it work? A teaser. . .
  • 62. MEGALoad The PROWESS Tools How does it work? A teaser. . . What else can I expect? Integration with JSONGEN. A NFR property library for ne-grain tests.
  • 63. MEGALoad The PROWESS Tools How does it work? A teaser. . . What else can I expect? Integration with JSONGEN. A NFR property library for ne-grain tests. Where will I be able to use it? Soon!
  • 64. MEGALoad The PROWESS Tools How does it work? A teaser. . . What else can I expect? Integration with JSONGEN. A NFR property library for ne-grain tests. Where will I be able to use it? Soon! (stay tunned at upcoming Erlang events)
  • 65.
  • 66. To take home • • • • An improved way to have a measure about how well do your tests cover your code Two ways to generate data for your tests A way to generate skeletons for your test models A way to turn your test properties and models into readable text • A way to certify your accesibility compliance • A way to assess your behaviour under congurable load
  • 67.
  • 68.
  • 69. Thanks for your attention! time_for ( Questions ) - [ speaker ! OneByOne || OneByOne - Questions ] . @lauramcastro lcastro@udc.es
  • 70. Credits Image authoring attribution (in order of appearance) • • • • • • • • • • • • • Hitch-hiking Iceland, `Something about Iceland (a blog about Iceland)'. Newspaper kid, `Stamping Julie' paper crafting blog. US Navy cadets, Wikimedia Commons. Success kid, self-education `And be there' website. Condescending Wonka, `A Sub's Life' blog. James Bond's artwork, by Tozani. Q's gadgets, Hostalia (blog). The backpack, by Targus Group International, Inc. FP7 logo, `Adventure (The Plug-and-Play Virtual Factory)' website. Keep Calm and Wrap it Up, Mallika Khurana's blog. The Extra Mile sign, `Personal Development' blog. Douglas Adam's `The ultimate hitchhiker's guide to the galaxy', `Books Come First' blog. Hitch-hiker to Anywhere but here , `Nomad Sage' travel blog.