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

Tester's Anxieties

Tester's Anxieties

Slides form the talk I gave at Testival 2017 (http://www.testival.eu) about my anxieties of being a tester.

Alex Rodionov

September 02, 2017
Tweet

More Decks by Alex Rodionov

Other Decks in Programming

Transcript

  1. TESTER’S ANXIETIES

    View Slide


  2. my name is Alex

    View Slide


  3. my name is Alex

    View Slide


  4. my name is Alex
    @p0deje

    View Slide


  5. my name is Alex
    @p0deje

    View Slide


  6. my name is Alex
    @p0deje

    View Slide


  7. my name is Alex
    @p0deje

    View Slide

  8. TESTER’S ANXIETIES

    View Slide

  9. Test automation
    "

    View Slide

  10. Test automation
    Performance testing
    "

    View Slide

  11. Test automation
    Performance testing
    Security testing "

    View Slide

  12. Organizing testing process
    #

    View Slide

  13. Organizing testing process
    Agile testing
    #

    View Slide

  14. Organizing testing process
    Agile testing
    Test management #

    View Slide

  15. Any talks about testers?

    View Slide

  16. What bothers me most
    as a tester?

    View Slide

  17. ↖ ⬆ ↗
    ⬅ ➡
    ↙ ⬇ ↘

    View Slide

  18. View Slide

  19. Do agile teams need testers?

    View Slide

  20. Do agile teams need testers?
    Should testers fix bugs?

    View Slide

  21. So, you want to release?
    Tell me more about how we roll
    it back when we’re screwed

    View Slide

  22. Contradictions
    +
    Cautiousness
    =
    Anxiety

    View Slide

  23. Contradictions
    +
    Cautiousness
    =
    Anxiety

    View Slide

  24. Contradictions
    +
    Cautiousness
    =
    Anxiety

    View Slide

  25. TESTER’S ANXIETIES

    View Slide

  26. MY ANXIETIES

    View Slide

  27. .

    View Slide

  28. . Cultural studies
    English

    View Slide

  29. ✍ Technical writer
    Software tester

    View Slide


  30. ✍ Technical writer
    Software tester

    View Slide

  31. View Slide

  32. “All I need to do is use the application,
    write down problems and they also pay me for this?
    How awesome is that!”
    Brand New Tester

    View Slide

  33. logging bugs > doing testing =

    logging bugs < doing testing =

    logging bugs ≃ doing testing =

    View Slide

  34. logging bugs > doing testing =

    logging bugs < doing testing =

    logging bugs ≃ doing testing =

    View Slide

  35. logging bugs > doing testing =

    logging bugs < doing testing =

    logging bugs ≃ doing testing =

    View Slide

  36. logging bugs > doing testing =

    logging bugs < doing testing =

    logging bugs ≃ doing testing =

    View Slide

  37. logging bugs > doing testing =

    logging bugs < doing testing =

    logging bugs ≃ doing testing =

    View Slide

  38. logging bugs > doing testing =

    logging bugs < doing testing =

    logging bugs ≃ doing testing =

    View Slide

  39. View Slide

  40. View Slide

  41. 6

    View Slide

  42. 6
    Test automation

    View Slide

  43. Test automation
    Performance
    testing
    6

    View Slide

  44. Testing is easy
    6

    View Slide

  45. Testing is hard
    6

    View Slide

  46. Testing is hard

    View Slide

  47. I DON’T KNOW HOW TO
    TEST

    View Slide

  48. Boundary value analysis
    Equivalence partitioning
    Pairwise testing
    Decision tables

    View Slide

  49. Boundary value analysis
    Equivalence partitioning
    Pairwise testing
    Decision tables

    View Slide

  50. Boundary value analysis
    Equivalence partitioning
    Pairwise testing
    Decision tables

    View Slide

  51. Boundary value analysis
    Equivalence partitioning
    Pairwise testing
    Decision tables

    View Slide

  52. Boundary value analysis
    Equivalence partitioning
    Pairwise testing
    Decision tables

    View Slide

  53. How to test?

    View Slide

  54. How to test?
    9

    View Slide

  55. How to test?

    View Slide

  56. Object-oriented programming
    Functional programming

    View Slide

  57. Object-oriented programming
    Functional programming
    DRY
    SOLID
    YAGNI

    View Slide

  58. Design patterns
    Books
    Object-oriented programming
    Functional programming
    DRY
    SOLID
    YAGNI

    View Slide

  59. Programming Testing
    Analysis
    Decomposition
    Analysis
    Decomposition
    Composition
    Synthesis

    View Slide

  60. Programming Testing
    Analysis
    Decomposition
    Analysis
    Decomposition
    Composition
    Synthesis

    View Slide

  61. Programming Testing
    Analysis
    Decomposition
    Analysis
    Decomposition
    Composition
    Synthesis

    View Slide

  62. A tester is
    ;<

    View Slide

  63. A tester is
    ;<

    View Slide

  64. A tester is
    ;=

    View Slide

  65. How to test?

    View Slide

  66. How to test?
    9

    View Slide

  67. How to test?

    View Slide

  68. Keep looking for the answer

    View Slide

  69. Automated testing
    vs
    Manual testing

    View Slide

  70. Automated testing
    vs
    Manual testing

    View Slide

  71. Automated testing
    vs
    Manual testing

    View Slide

  72. DO I AUTOMATE ENOUGH?

    View Slide

  73. Database
    Front-end
    Server
    Search engines
    Analytics
    Assets
    3rd party integrations

    View Slide

  74. View Slide

  75. Unit tests

    View Slide

  76. Unit tests
    Integration tests

    View Slide

  77. Unit tests
    System
    tests
    Integration tests

    View Slide

  78. Unit tests
    System
    tests
    Exploratory
    testing
    Integration tests

    View Slide

  79. Unit tests
    UI
    tests
    Exploratory
    testing
    Integration tests

    View Slide

  80. Unit tests
    Integration tests
    UI
    tests
    Exploratory
    testing
    API tests

    View Slide

  81. Unit tests
    Integration tests
    UI
    tests
    Exploratory
    testing
    API tests

    View Slide

  82. Unit tests
    Integration tests
    UI
    tests
    Exploratory
    testing
    API tests

    View Slide


  83. PRODUCTION

    View Slide

  84. PRODUCTION

    Unit tests
    System
    tests
    Integration tests

    View Slide

  85. PRODUCTION








    View Slide

  86. PRODUCTION








    I am a server
    config
    syntax error!

    View Slide

  87. PRODUCTION

    Unit tests
    System
    tests
    Integration tests

    View Slide

  88. PRODUCTION

    System
    tests
    Integration tests

    View Slide

  89. PRODUCTION








    View Slide

  90. PRODUCTION








    I am an invalid
    input error!

    View Slide

  91. PRODUCTION

    Unit tests
    System
    tests
    Integration tests

    View Slide

  92. PRODUCTION

    Unit tests
    Integration tests

    View Slide

  93. PRODUCTION






    View Slide

  94. PRODUCTION






    I am a broken
    contract between
    API and front-end!

    View Slide

  95. DO I AUTOMATE ENOUGH?

    View Slide

  96. Can I write a good
    test on this level?
    Unit tests
    System
    tests
    Exploratory
    testing
    Integration tests

    View Slide

  97. Can I write a good
    test on this level?
    Unit tests
    System
    tests
    Exploratory
    testing
    Integration tests

    View Slide

  98. Can I write a good
    test on this level?
    Unit tests
    System
    tests
    Exploratory
    testing
    Integration tests

    View Slide

  99. Can I write a good
    test on this level?
    Unit tests
    System
    tests
    Exploratory
    testing
    Integration tests

    View Slide

  100. Do I automate too much?

    View Slide

  101. View Slide

  102. View Slide

  103. Tests are dumb

    View Slide

  104. I DON’T TRUST MY TESTS

    View Slide

  105. Arrange
    Act
    Assert

    View Slide

  106. Arrange
    Act
    Assert

    View Slide

  107. Arrange
    Act
    Assert

    View Slide

  108. Arrange
    Act
    Assert

    View Slide

  109. Arrange
    Act
    Assert

    View Slide

  110. 6
    Uses available
    data
    Shares data
    between tests
    Uses data that
    is told to use
    Should not share
    data between tests

    View Slide

  111. 6
    Uses available
    data
    Shares data
    between tests
    Uses data that
    is told to use
    Should not share
    data between tests

    View Slide

  112. 6
    Uses available
    data
    Shares data
    between tests
    Uses data that
    is told to use
    Should not share
    data between tests

    View Slide

  113. 6
    Uses available
    data
    Shares data
    between tests
    Uses data that
    is told to use
    Should not share
    data between tests

    View Slide

  114. 6
    Uses available
    data
    Shares data
    between tests
    Uses data that
    is told to use
    Should not share
    data between tests

    View Slide

  115. Online shop

    View Slide

  116. Online shop
    Add item to cart
    Update item in cart
    Remove item from cart
    Checkout

    View Slide

  117. Online shop
    Add item to cart
    Update item in cart
    Remove item from cart
    Checkout 6

    View Slide

  118. Online shop
    Add item to cart
    Update item in cart
    Remove item from cart
    Checkout 6

    View Slide

  119. Online shop
    Add item to cart
    Update item in cart
    Remove item from cart
    Checkout 6

    View Slide

  120. Online shop
    Add item to cart
    Update item in cart
    Remove item from cart
    Checkout 6

    View Slide

  121. Online shop
    Add item to cart
    Update item in cart
    Remove item from cart
    Checkout 6

    View Slide

  122. Online shop
    Add item to cart
    Update item in cart
    Remove item from cart
    Checkout 6

    View Slide

  123. Online shop
    Add item to cart
    Update item in cart
    Remove item from cart
    Checkout 6

    View Slide

  124. Online shop
    Add item to cart
    Update item in cart
    Remove item from cart
    Checkout 6

    View Slide

  125. Online shop
    Add item to cart
    Update item in cart
    Remove item from cart
    Checkout 6

    View Slide

  126. Online shop
    Add item to cart
    Update item in cart
    Remove item from cart
    Checkout 6

    View Slide

  127. Online shop
    Add item to cart
    Update item in cart
    Remove item from cart
    Checkout 6

    View Slide

  128. 6 Less deterministic
    More deterministic

    View Slide

  129. How can we make tests
    less deterministic?

    View Slide

  130. Model-based testing

    View Slide

  131. Usual test Model-based test
    Determine the
    exact steps
    Describe the
    possible states
    and steps
    between them

    View Slide

  132. Usual test Model-based test
    Determine the
    exact steps
    Describe the
    possible states
    and steps
    between them

    View Slide

  133. no items in cart

    View Slide

  134. no items in cart
    item in cart

    View Slide

  135. no items in cart
    item in cart
    Add item to cart

    View Slide

  136. no items in cart
    item in cart
    Add item to cart

    View Slide

  137. no items in cart
    item in cart
    Add item to cart
    Remove item from cart

    View Slide

  138. no items in cart
    item in cart
    Add item to cart
    Remove item from cart

    View Slide

  139. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart

    View Slide

  140. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart

    View Slide

  141. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  142. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  143. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  144. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  145. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  146. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  147. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  148. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  149. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  150. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  151. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  152. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  153. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  154. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  155. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  156. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  157. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  158. Less deterministic
    Improved test coverage
    Same execution time

    View Slide

  159. Less deterministic
    Improved test coverage
    Same execution time

    View Slide

  160. Less deterministic
    Improved test coverage
    Same execution time

    View Slide

  161. Arrange
    Act
    Assert

    View Slide

  162. Arrange
    Act
    Assert

    View Slide

  163. Arrange
    Act
    Assert

    View Slide

  164. Test oracle

    View Slide

  165. 6

    View Slide

  166. View Slide

  167. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  168. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  169. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  170. no items in cart
    item in cart
    Add item to cart
    Remove item from cart
    Update item in cart
    Checkout

    View Slide

  171. Combinatorial
    problems

    View Slide

  172. Period of being
    a customer
    Country
    # of purchases
    Average
    time on site

    View Slide

  173. Period of being
    a customer
    Country
    # of purchases
    Average
    time on site
    42%

    View Slide

  174. Randomized
    input
    Neural network
    System under test
    Compare

    View Slide

  175. Unit tests
    System
    tests
    Exploratory
    testing
    Integration tests

    View Slide

  176. Unit tests
    System
    tests
    Exploratory
    testing
    Integration tests

    View Slide

  177. I DON’T KNOW HOW TO
    TEST

    View Slide

  178. KEEP LEARNING
    “THIS IS FINE”

    View Slide

  179. I DON’T KNOW IF I
    AUTOMATE ENOUGH

    View Slide

  180. USE TEST PYRAMID

    View Slide

  181. I DON’T TRUST MY TESTS

    View Slide

  182. DON’T WRITE MORE TESTS,
    MAKE TESTS SMARTER

    View Slide

  183. WHAT ARE YOUR
    ANXIETIES?

    View Slide

  184. WHAT ARE YOUR
    ANXIETIES?
    @p0deje
    [email protected]

    View Slide

  185. WHAT ARE YOUR
    ANXIETIES?
    @p0deje
    [email protected]

    View Slide


  186. my name is Alex
    @p0deje
    [email protected]

    View Slide