Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Talk] Let's Do a Thing and Call It Foo 2023 ed.

[Talk] Let's Do a Thing and Call It Foo 2023 ed.

Let’s take computer assisted software authorship and consider ourselves held accountable for results. We do a thing of testing, and call it Foo until we have a shared experience.

Foo is what allows us to be accountable, and we learn that there are 5 layers of oracles we can choose to apply, and from our example can take ideas of how to apply those further.

Maaret Pyhäjärvi

January 29, 2023

More Decks by Maaret Pyhäjärvi

Other Decks in Programming


  1. @maaretp @[email protected] The terms foobar (/ˈfuːbɑːr/), foo, bar, baz, and

    others are used as metasyntactic variables and placeholder names in computer programming or computer-related documentation.[1] They have been used to name entities such as variables, functions, and commands whose exact identity is unimportant and serve only to demonstrate a concept. https://en.wikipedia.org/wiki/Foobar
  2. @maaretp @[email protected] Stakeholders happy, even delighted –Quality Information Good Team’s

    Output –Quality Information Less than Good Team’s Output –Quality Information Results Gap Surprise! Results Gap on a Team that thinks Testers == Testing Pick up the pizza boxes… ”Find (some of) What Others May Have Missed”
  3. @maaretp @[email protected] WE are accountable 1. Intent / Implementation 2.

    Domain for the Layman 3. Domain for the Expert 4. Reference Implementation 5. People Filtering
  4. @maaretp @[email protected] Domain rules: 1V à IIII in clock design

    as per orders of King Louis XIV of France https://www.amalgamsab.com/iiii-or-is-it-iv.html
  5. @maaretp @[email protected] Answer Key to Some of the Bugs •

    Values over 4k don’t work (without extending to line-on-top notation) – Zeros, fractions, large numbers later in scope • Decimal values truncated vs. rounded • *some of the implementations* – Boundary values miscalculated – Infinite loop • Implementing Classic when expecting Simplified • Got someone’s code without license text!
  6. @maaretp @[email protected] Insights from 8 rounds of pair/ensemble testing •

    Unit Exploratory Testing is FAST • Concepts: Parametrized tests, pytest.raises, approvaltests • Selecting vs. oversampling for finding boundaries • Choosing later what is left behind (if dropping tests is worth the investment) • Both valid and invalid values, balance and role-based heuristics • Fooling a domain expert on conflicting domain rules surprising how versatile a simple appearing domain is
  7. @maaretp @[email protected] A majority of the production failures (77%) can

    be reproduced by a unit test. https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf Through https://www.slideshare.net/Kevlin/the-error-of-our-ways
  8. @maaretp @[email protected] Everything that does not need to be automated

    gets done while automating. * Programming with thinking – quality of thinking matters
  9. @maaretp @[email protected] WE are accountable 1. Intent / Implementation 2.

    Domain for the Layman 3. Domain for the Expert 4. Reference Implementation 5. People Filtering
  10. @maaretp @[email protected] For pair / ensemble testing this with me

    <3 Thank You Alex, Elisabeth, Bertold, Thomas, Mirja, Karen, Moroni, Isidro, Benjamin & Testing Dozen #1
  11. @maaretp @[email protected] 2020 2016 MIATPP Most Influential Agile Testing Professional

    Person #PayToSpeak #TechVoices #EnsembleTesting #EnsembleProgramming #StrongStylePairing #ExploratoryTesting #TestAutomation #ModernAgile #AwesomeTesters Maaret Pyhäjärvi (from Finland) Email: [email protected] Twitter: @maaretp Web: maaretp.com Blog: visible-quality.blogspot.fi (please connect with me through Twitter or LinkedIn) 2019 - 2022 https://exploratorytestingacademy.com Ohjelmistotestaus ry https://techvoices.org