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
Tweet

More Decks by Maaret Pyhäjärvi

Other Decks in Programming

Transcript

  1. @maaretp @maaretp@mas.to 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 @maaretp@mas.to 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 @maaretp@mas.to WE are accountable 1. Intent / Implementation 2.

    Domain for the Layman 3. Domain for the Expert 4. Reference Implementation 5. People Filtering
  4. @maaretp @maaretp@mas.to 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 @maaretp@mas.to 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 @maaretp@mas.to 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 @maaretp@mas.to 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 @maaretp@mas.to Everything that does not need to be automated

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

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

    <3 Thank You Alex, Elisabeth, Bertold, Thomas, Mirja, Karen, Moroni, Isidro, Benjamin & Testing Dozen #1
  11. @maaretp @maaretp@mas.to 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: maaret@iki.fi 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