@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
@maaretp @[email protected] TESTING not TESTERS. Developers are brilliant explorers. Testing is too important to be left for testers.Testing is too important to be left without testers.
@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”
@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
@maaretp @[email protected] Part 1. Review for correctness and conciseness Part II. Input -> Output Part III. Rules of behavior boundaries Part IIII. Coverage Part IIIII. Sampling vs wide nets (approvals) PartVI. Properties Developer intent
@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
@maaretp @[email protected] Part 1. Be the resident expert. Ask around. Part II. Rules. More rules. Part III. Find better experts. Part IIII. Disagreeing with boundaries. Part IIIII. Oracles. PartVI. Find better oracles. Part VII. No user would do what users would do. Domain
@maaretp @[email protected] Part 1. Dependencies. Part II. Interruptions. Both software and hardware. Part III. People. Environment “People are not pure functions; they have all sorts of interesting side effects.” - Engineering Management for the Rest of Us, Sarah Drasner … nor are pure functions if you grow the boundary of what might fail.
@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 6. Interesting side effects
@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 • Someone’s code without license text!
@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
@maaretp @[email protected] Everything that does not need to be automated gets done while automating. * Programming with thinking – quality of thinking matters
@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 https://github.com/exploratory-testing-academy/do-a-thing-and-call-it-foo-solution