A Backpack to go the Extra-Functional Mile

a hitched hike by the PROWESS project

Laura M. Castro
Universidade da Coruña ...
relationship between the
business criticality of modiability and IT project
success.

There is a signicant negative

relat...
The application of

verication (starting as early as

possible during the software development life cycle) has a
positive ...
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 account...
Smother

The PROWESS Tools

What does it do?

Code coverage

for Erlang.

Wait. . . what about cover?

While cover account...
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.
...
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 tutori...
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...
JSONGEN

The PROWESS Tools

What does it do?

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

Wait. . . what...
JSONGEN

The PROWESS Tools

What does it do?

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

Wait. . . what...
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 i...
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 particula...
WSToolKit

The PROWESS Tools

What does it do?

Assists in using PBT tools for web

services.

What do web services have i...
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 example...
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...
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 tes...
readSpec

The PROWESS Tools

What does it do?

Readable how?
What is Cucumber?

Generates human readable versions
of test ...
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...
readSpec

The PROWESS Tools

How does it work?

Can I use it?

Let's see some code. . .

You can run the provided examples...
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 see...
a11y-checker

The PROWESS Tools

What does it do?

Tests web pages for

conformance to WCAG 2.0.

Wait. . . what? I've see...
a11y-checker

The PROWESS Tools

What does it do?

Tests web pages for

conformance to WCAG 2.0.

Wait. . . what? I've see...
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:

...
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 ...
MEGALoad

The PROWESS Tools

What does it do?

What kind of tests?

Provides a cloud

testing framework.

Performance and ...
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 pr...
MEGALoad

The PROWESS Tools

How does it work?

A teaser. . .

What else can I expect?

Integration with JSONGEN.
A NFR pr...
MEGALoad

The PROWESS Tools

How does it work?

A teaser. . .

What else can I expect?

Integration with JSONGEN.
A NFR pr...
To take home

•

•
•
•

An improved way to have a
measure about how well do
your tests cover your code
Two ways to generat...
Thanks for your attention!

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

@lauramcastro
lcast...
Credits

Image authoring attribution (in order of appearance)

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

Hitch-hiking Iceland, `Something...
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project)
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project)
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project)
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project)
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project)
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project)
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project)
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project)
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project)
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project)
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project)
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project)
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project)
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS project)
Upcoming SlideShare
Loading in …5
×

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

763 views
642 views

Published on

Property-based testing is an already known testing methodology for the Erlang community, with tools such as QuickCheck and PropEr being highly popular among Erlang developers in the last few years. However, they are commonly used for functional testing... Which are the challenges in using them for testing non-functional properties of software? What other tools or libraries are there to help Erlang developers?

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
763
On SlideShare
0
From Embeds
0
Number of Embeds
21
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 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. 2. 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)
  3. 3. 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)
  4. 4. www.prowess-project.eu
  5. 5. Smother The PROWESS Tools
  6. 6. Smother The PROWESS Tools What does it do? Code coverage for Erlang.
  7. 7. 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.
  8. 8. 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.
  9. 9. Smother The PROWESS Tools How does it work? Let's see a demo!
  10. 10. Smother The PROWESS Tools How does it work? Let's see a demo! There's also a tutorial on Youtube.
  11. 11. 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.
  12. 12. 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 :).
  13. 13. 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
  14. 14. JSONGEN The PROWESS Tools
  15. 15. JSONGEN The PROWESS Tools What does it do? Generates and validates JSON instances w.r.t. a JSON schema.
  16. 16. 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).
  17. 17. 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 :).
  18. 18. 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.
  19. 19. JSONGEN The PROWESS Tools How does it work? Let's see a demo!
  20. 20. JSONGEN The PROWESS Tools How does it work? Can I use it? Let's see a demo! Yes.
  21. 21. JSONGEN The PROWESS Tools How does it work? Can I use it? Let's see a demo! Yes. But it's work in progress.
  22. 22. 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
  23. 23. WSToolKit The PROWESS Tools
  24. 24. WSToolKit The PROWESS Tools What does it do? Assists in using PBT tools for web services.
  25. 25. 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.
  26. 26. 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.
  27. 27. WSToolKit The PROWESS Tools How does it work? Let's see some code. . .
  28. 28. 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.
  29. 29. 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
  30. 30. readSpec The PROWESS Tools
  31. 31. readSpec The PROWESS Tools What does it do? Generates human readable versions of test properties and test models.
  32. 32. readSpec The PROWESS Tools What does it do? Readable how? Generates human readable versions of test properties and test models. Cucumber-like.
  33. 33. 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.
  34. 34. readSpec The PROWESS Tools How does it work? Let's see some code. . .
  35. 35. 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.
  36. 36. 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
  37. 37. a11y-checker The PROWESS Tools
  38. 38. a11y-checker The PROWESS Tools What does it do? Tests web pages for conformance to WCAG 2.0.
  39. 39. 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).
  40. 40. 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 :).
  41. 41. 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.
  42. 42. a11y-checker The PROWESS Tools How does it work? Let's see a demo!
  43. 43. a11y-checker The PROWESS Tools How does it work? Can I use it? Let's see a demo! Yes!
  44. 44. 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
  45. 45. MEGALoad The PROWESS Tools
  46. 46. MEGALoad The PROWESS Tools What does it do? Provides a cloud testing framework.
  47. 47. MEGALoad The PROWESS Tools What does it do? What kind of tests? Provides a cloud testing framework. Performance and load testing.
  48. 48. 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.
  49. 49. MEGALoad The PROWESS Tools How does it work? A teaser. . .
  50. 50. MEGALoad The PROWESS Tools How does it work? A teaser. . .
  51. 51. 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.
  52. 52. 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!
  53. 53. 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)
  54. 54. 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
  55. 55. Thanks for your attention! time_for ( Questions ) - [ speaker ! OneByOne || OneByOne - Questions ] . @lauramcastro lcastro@udc.es
  56. 56. 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.

×