Slide 1

Slide 1 text

@maaretp @[email protected] by Maaret Pyhäjärvi Whose Test Is It Anyway?

Slide 2

Slide 2 text

@maaretp @[email protected] Social Software Testing Approaches Exploratory Testing Programmatic Tests

Slide 3

Slide 3 text

@maaretp @[email protected] This is a test. Whose test is it?

Slide 4

Slide 4 text

@maaretp @[email protected] Improv performance External Imagination

Slide 5

Slide 5 text

@maaretp @[email protected] Computer Assisted Software Authorship https://github.com/features/copilot/

Slide 6

Slide 6 text

@maaretp @[email protected] WE are accountable 1. Legal / Ethical 2. Intent / Implementation 3. Domain for the Layman 4. Domain for the Expert 5. Reference Implementation 6. People Filtering 7. Interesting side effects

Slide 7

Slide 7 text

@maaretp @[email protected] Guessing with power to accept For Mood: https://aboutmonica.com/blog/how-to-make-your-vs-code-sparkle/

Slide 8

Slide 8 text

@maaretp @[email protected] Who Am I? Guessing with power to accept What am I testing again? My program or the tool?

Slide 9

Slide 9 text

@maaretp @[email protected] Note: …pillaging digital content without consent, compensation and attribution Even if legal not ethical.

Slide 10

Slide 10 text

@maaretp @[email protected] CTRL+enter for alternatives Code Review

Slide 11

Slide 11 text

@maaretp @[email protected] Say We Have This… Done?

Slide 12

Slide 12 text

@maaretp @[email protected] Some Tests Done?

Slide 13

Slide 13 text

@maaretp @[email protected] Shapes of Approaches Asserts Approvals

Slide 14

Slide 14 text

@maaretp @[email protected] From One to Many Asserts Approvals

Slide 15

Slide 15 text

@maaretp @[email protected] Hypothesis

Slide 16

Slide 16 text

@maaretp @[email protected] Note: …developer intent. It might not do what you wanted it to do.

Slide 17

Slide 17 text

@maaretp @[email protected] Part I. 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) Part VI. Properties Developer intent

Slide 18

Slide 18 text

@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

Slide 19

Slide 19 text

@maaretp @[email protected] https://en.wikipedia.org/wiki/Roman_numerals

Slide 20

Slide 20 text

@maaretp @[email protected]

Slide 21

Slide 21 text

@maaretp @[email protected] Upper Boundary?

Slide 22

Slide 22 text

@maaretp @[email protected]

Slide 23

Slide 23 text

@maaretp @[email protected] References… References…

Slide 24

Slide 24 text

@maaretp @[email protected] References…

Slide 25

Slide 25 text

@maaretp @[email protected] References…

Slide 26

Slide 26 text

@maaretp @[email protected] ApprovalTests Done?

Slide 27

Slide 27 text

@maaretp @[email protected] Note: …business rules. You think you know them and yet you don’t.

Slide 28

Slide 28 text

@maaretp @[email protected] Part I. Be the resident expert. Ask around. Part II. Rules. More rules. Part III. Find better experts. Part IIII. Disagreeing with boundaries. Part IIIII. Oracles. Part VI. Find better oracles. Part VII. No user would do what users would do. Domain

Slide 29

Slide 29 text

@maaretp @[email protected] Part I. Dependencies. Part II. Interruptions. Both software and hardware. Part III. People. Part IIII. Scale. Reliability. Performance. Security. 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.

Slide 30

Slide 30 text

@maaretp @[email protected] WE are accountable 1. Legal / Ethical 2. Intent / Implementation 3. Domain for the Layman 4. Domain for the Expert 5. Reference Implementation 6. People Filtering 7. Interesting side effects

Slide 31

Slide 31 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

Slide 32

Slide 32 text

@maaretp @[email protected] Everything that does not need to be automated gets done while automating. * Programming with thinking – quality of thinking matters

Slide 33

Slide 33 text

@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”

Slide 34

Slide 34 text

@maaretp @[email protected] How Would You Test This? https://todomvc.com/examples/vanillajs/ Visual Functional Purpose?

Slide 35

Slide 35 text

@maaretp @[email protected] No Todos ✓ should hide #main and #footer New Todo ✓ should allow me to add todo items ✓ should clear text input field when an item is added ✓ should trim text input ✓ should show #main and #footer when items added Mark all as completed ✓ should allow me to mark all items as completed ✓ should allow me to clear the completion state of all items ✓ complete all checkbox should update state when items are completed Item ✓ should allow me to mark items as complete ✓ should allow me to un-mark items as complete ✓ should allow me to edit an item ✓ should show the remove button on hover Editing ✓ should hide other controls when editing ✓ should save edits on enter ✓ should save edits on blur ✓ should trim entered text ✓ should remove the item if an empty text string was entered ✓ should cancel edits on escape Counter ✓ should display the current number of todo items Clear completed button ✓ should display the number of completed items ✓ should remove completed items when clicked ✓ should be hidden when there are no items that are completed Persistence ✓ should persist its data Routing ✓ should allow me to display active items ✓ should allow me to display completed items ✓ should allow me to display all items ✓ should highlight the currently applied filter Developer Intent

Slide 36

Slide 36 text

@maaretp @[email protected] Driver (Hands) Designated Navigator (Voice) Navigators (Brains)

Slide 37

Slide 37 text

@maaretp @[email protected] Testing is too important to be left for testers. Testing is too important to be left without testers.

Slide 38

Slide 38 text

@maaretp @[email protected] Agency. Pull. * sense of control * timely for use

Slide 39

Slide 39 text

@maaretp @[email protected] Observe Ideate Let Go Be Impressed Support others Do Something Yes, and… 1. Observe: notice more 2. Ideate: stop censuring 3. Let go: trust the process 4. Be Impressed: react 5. Support others: make them shine 6. Do something: experiment culture 7. Yes, and: combine * Metaskills of Improv, Simo Routarinne, proimpro.fi

Slide 40

Slide 40 text

@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