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

How to do example mapping

nihonbuson
November 17, 2020

How to do example mapping

nihonbuson

November 17, 2020
Tweet

More Decks by nihonbuson

Other Decks in Technology

Transcript

  1. How to do example mapping
    with learning from
    real-examples
    Yuya Kazama
    (@nihonbuson)

    View full-size slide

  2. What is
    Example Mapping

    View full-size slide

  3. Example Mapping
    Techniques for clarifying
    understanding of rules
    ● Red sticky notes (Questions) is many
    ○ Still have a lot to learn
    ● Blue sticky notes (Rules) is many
    ○ Story is big and complicated
    ○ We should divide the story
    ● One rule has many green sticky notes
    ○ The rules are too complicated
    ○ Should be divided into multiple
    blue sticky notes (rules)
    Japanese version: https://nihonbuson.hatenadiary.jp/entry/ExampleMapping
    https://cucumber.io/blog/bdd/example-mapping-introduction/

    View full-size slide

  4. Participant in
    example mapping
    session

    View full-size slide

  5. Three Amigos
    People from three standpoints gather and collaborate to confirm requirements
    People vector created by stories - www.freepik.com
    QA(Tester) Dev PO

    View full-size slide

  6. Describe how to make
    an example mapping
    using real examples

    View full-size slide

  7. ● It's not important to use the practice of example mapping!
    ● It is important to have a conversation with stories, rules,
    examples, and questions separately, and record them separately!
    ● This time, we will also introduce the conversation
    that is the process of creating the example mapping.
    What I want to convey through real examples

    View full-size slide

  8. Theme and Participants
    PO QA
    Display the number of
    people graph in a good way
    Dev

    View full-size slide

  9. Add scale rule
    I want to display the graph
    of the number of people
    in a good way
    I don't understand
    what "good way" is.
    So, I'll ask you a lot of
    questions.
    The scale of the vertical axis
    changes with a good way based on
    the maximum value
    Change the
    scale based
    on the
    maximum
    value
    Display the number of
    people graph in a good way
    PO
    QA

    View full-size slide

  10. Case of 1000 people
    For example, what happens if
    there are 1000 people in max
    value?
    Display the number of
    people graph in a good way
    QA

    View full-size slide

  11. Case of 1000 people
    Since there are 4 scales,
    the scales are 250, 500, 750,
    1000.
    For example, what happens if
    there are 1000 people in max
    value?
    Display the number of
    people graph in a good way
    QA
    PO

    View full-size slide

  12. Add example
    1000
    Display the number of
    people graph in a good way
    Change the
    scale based
    on the
    maximum
    value
    For example, what happens if
    there are 1000 people in max
    value?

    View full-size slide

  13. Add example
    1000
    -> 250,500
    750,1000
    Change the
    scale based
    on the
    maximum
    value
    Display the number of
    people graph in a good way For example, what happens if
    there are 1000 people in max
    value?
    Since there are 4 scales,
    the scales are 250, 500, 750,
    1000.

    View full-size slide

  14. Add another scale rule
    There are 4
    scales
    Change the
    scale based
    on the
    maximum
    value
    Display the number of
    people graph in a good way For example, what happens if
    there are 1000 people in max
    value?
    Since there are 4 scales,
    the scales are 250, 500, 750,
    1000.
    1000
    -> 250,500
    750,1000

    View full-size slide

  15. Case of 800 people
    Ah, what happens if there are 800
    people in max value?
    Display the number of
    people graph in a good way

    View full-size slide

  16. Add example
    There are 4
    scales
    1000
    -> 250,500
    750,1000
    800
    Change the
    scale based
    on the
    maximum
    value
    Ah, what happens if there are 800
    people in max value?
    Display the number of
    people graph in a good way

    View full-size slide

  17. Add example
    Ah, what happens if there are 800
    people in max value?
    Again the scale is the same as
    for 1000 people case.
    Display the number of
    people graph in a good way
    There are 4
    scales
    1000
    -> 250,500
    750,1000
    800
    -> 250,500
    750,1000
    Change the
    scale based
    on the
    maximum
    value

    View full-size slide

  18. Case of 1500 people
    So is it the same result for
    1500 people case?
    Display the number of
    people graph in a good way

    View full-size slide

  19. Case of 1500 people
    So is it the same result for
    1500 people case?
    In this case, the scale will
    be adjusted to
    400,800,1200,1600.
    Display the number of
    people graph in a good way

    View full-size slide

  20. Case of 1500 people
    So is it the same result for
    1500 people case?
    1500
    Display the number of
    people graph in a good way
    There are 4
    scales
    1000
    -> 250,500
    750,1000
    800
    -> 250,500
    750,1000
    Change the
    scale based
    on the
    maximum
    value

    View full-size slide

  21. Add example
    In this case, the scale will
    be adjusted to
    400,800,1200,1600.
    So is it the same result for
    1500 people case?
    1500
    -> 400,800
    1200,1600
    Display the number of
    people graph in a good way
    There are 4
    scales
    1000
    -> 250,500
    750,1000
    800
    -> 250,500
    750,1000
    Change the
    scale based
    on the
    maximum
    value

    View full-size slide

  22. Add rule that not to exceed scale
    Why would it change in the
    case of 1500 people case?
    1500
    -> 400,800
    1200,1600
    Display the number of
    people graph in a good way
    There are 4
    scales
    1000
    -> 250,500
    750,1000
    800
    -> 250,500
    750,1000
    Change the
    scale based
    on the
    maximum
    value

    View full-size slide

  23. Add rule that not to exceed scale
    If the max scale is 1000,
    the data will go through on
    grath.
    Do not
    exceed the
    top mark
    Display the number of
    people graph in a good way
    There are 4
    scales
    1000
    -> 250,500
    750,1000
    800
    -> 250,500
    750,1000
    Change the
    scale based
    on the
    maximum
    value
    1500
    -> 400,800
    1200,1600
    Why would it change in the
    case of 1500 people case?

    View full-size slide

  24. Case of 1050 people
    Then, what happen 1050
    people case? This is over
    1000 people.
    Display the number of
    people graph in a good way

    View full-size slide

  25. Add example
    Display the number of
    people graph in a good way
    1500
    -> 400,800
    1200,1600
    Change the
    scale based
    on the
    maximum
    value
    There are 4
    scales
    1000
    -> 250,500
    750,1000
    800
    -> 250,500
    750,1000
    Do not
    exceed the
    top mark
    1050
    Then, what happen 1050
    people case? This is over
    1000 people.

    View full-size slide

  26. Add example
    In that case, the max scale
    remains at 1000 because the
    data does not protrude
    outside the graph.
    Then, what happen 1050
    people case? This is over
    1000 people.
    Display the number of
    people graph in a good way
    1500
    -> 400,800
    1200,1600
    Change the
    scale based
    on the
    maximum
    value
    There are 4
    scales
    1000
    -> 250,500
    750,1000
    800
    -> 250,500
    750,1000
    Do not
    exceed the
    top mark
    1050
    -> 250,500
    750,1000

    View full-size slide

  27. Change the rule
    Then, what happen 1050
    people case? This is over
    1000 people.
    In that case, the max scale
    remains at 1000 because the
    data does not protrude
    outside the graph.
    I found that it is important
    that the graph does not go
    out of the area.
    Display the number of
    people graph in a good way
    1500
    -> 400,800
    1200,1600
    Change the
    scale based
    on the
    maximum
    value
    There are 4
    scales
    1000
    -> 250,500
    750,1000
    800
    -> 250,500
    750,1000
    Do not
    exceed the
    top mark
    1050
    -> 250,500
    750,1000

    View full-size slide

  28. Change the rule
    In that case, the max scale
    remains at 1000 because the
    data does not protrude
    outside the graph.
    I found that it is important
    that the graph does not go
    out of the area.
    Then, what happen 1050
    people case? This is over
    1000 people.
    Display the number of
    people graph in a good way
    1500
    -> 400,800
    1200,1600
    Change the
    scale based
    on the
    maximum
    value
    There are 4
    scales
    1000
    -> 250,500
    750,1000
    800
    -> 250,500
    750,1000
    data does
    not go out
    of graph
    area
    1050
    -> 250,500
    750,1000

    View full-size slide

  29. Case of 600 people
    Now, consider a smaller value.
    What happen 600 people case?
    Display the number of
    people graph in a good way

    View full-size slide

  30. Add example
    Change the scale based
    on the maximum value
    600
    Now, consider a smaller value.
    What happen 600 people case?
    Display the number of
    people graph in a good way

    View full-size slide

  31. Add example
    600
    -> 200,400
    600,800
    250, 500, 750, 1000 scale makes
    the plot is smaller. So 200,
    400, 600, 800 scale makes.
    Now, consider a smaller value.
    What happen 600 people case?
    Display the number of
    people graph in a good way
    Change the scale based
    on the maximum value

    View full-size slide

  32. Case of 150 people
    Next, consider a more
    smaller value.
    What happen 150 people case?
    Display the number of
    people graph in a good way

    View full-size slide

  33. Add example
    600
    -> 200,400
    600,800
    150
    Display the number of
    people graph in a good way
    Change the scale based
    on the maximum value
    Next, consider a more
    smaller value.
    What happen 150 people case?

    View full-size slide

  34. Add example
    150
    -> 40,80
    120,160
    Ah, 40,80,120,160 is just
    right.
    Display the number of
    people graph in a good way
    Change the scale based
    on the maximum value
    600
    -> 200,400
    600,800
    Next, consider a more
    smaller value.
    What happen 150 people case?

    View full-size slide

  35. Discover the new rule
    Oh, yes. that's true.
    I see.
    Based on the examples,
    is the maximum value
    adjusted so that it is
    larger than the second from
    the top of the scale?
    Display the number of
    people graph in a good way

    View full-size slide

  36. Discover the new rule
    Oh, yes. that's true.
    I see.
    Based on the examples,
    is the maximum value
    adjusted so that it is
    larger than the second from
    the top of the scale?
    Display the number of
    people graph in a good way
    Change the scale based
    on the maximum value
    600
    -> 200,400
    600,800
    150
    -> 40,80
    120,160

    View full-size slide

  37. 600
    -> 200,400
    600,800
    Discover the new rule
    The largest data is
    plotted larger than the
    second from the top of
    the scale.
    Display the number of
    people graph in a good way
    150
    -> 40,80
    120,160
    I see.
    Based on the examples,
    is the maximum value
    adjusted so that it is
    larger than the second from
    the top of the scale?
    Oh, yes. that's true.

    View full-size slide

  38. Case of 2 people
    Next, consider a much more
    smaller value.
    What happen 2 people case?
    Display the number of
    people graph in a good way

    View full-size slide

  39. Add example
    The largest data is
    plotted larger than the
    second from the top of
    the scale.
    2
    Next, consider a much more
    smaller value.
    What happen 2 people case?
    Display the number of
    people graph in a good way
    600
    -> 200,400
    600,800
    150
    -> 40,80
    120,160

    View full-size slide

  40. Add example
    I think about 4 divisions,
    it's 0.5, 1, 1.5, 2.
    2
    -> 0.5,1
    1.5,2
    Next, consider a much more
    smaller value.
    What happen 2 people case?
    Display the number of
    people graph in a good way
    600
    -> 200,400
    600,800
    150
    -> 40,80
    120,160
    The largest data is
    plotted larger than the
    second from the top of
    the scale.

    View full-size slide

  41. Add question
    Oh, it might need to discuss.
    Even though we are dealing
    with the number of people, it
    feels strange to have a scale
    with decimal places.
    2
    -> 0.5,1
    1.5,2
    Display the number of
    people graph in a good way
    600
    -> 200,400
    600,800
    150
    -> 40,80
    120,160
    The largest data is
    plotted larger than the
    second from the top of
    the scale.

    View full-size slide

  42. Add question
    Do scale with
    decimal points
    appear?
    Display the number of
    people graph in a good way
    600
    -> 200,400
    600,800
    150
    -> 40,80
    120,160
    2
    -> 0.5,1
    1.5,2
    The largest data is
    plotted larger than the
    second from the top of
    the scale.
    Even though we are dealing
    with the number of people, it
    feels strange to have a scale
    with decimal places.
    Oh, it might need to discuss.

    View full-size slide

  43. Resolve question
    We don't lose value by not reducing
    the number of scales, so we fix the
    number of scales at 4 this time.
    Changing the number of scales
    depending on the situation
    takes man-hours, so this time
    I want to leave it as it is.
    Display the number of
    people graph in a good way
    600
    -> 200,400
    600,800
    150
    -> 40,80
    120,160
    2
    -> 0.5,1
    1.5,2
    The largest data is
    plotted larger than the
    second from the top of
    the scale.
    Do scale with
    decimal points
    appear?
    Dev

    View full-size slide

  44. Resolve question
    Display the number of
    people graph in a good way
    600
    -> 200,400
    600,800
    150
    -> 40,80
    120,160
    2
    -> 0.5,1
    1.5,2
    The largest data is
    plotted larger than the
    second from the top of
    the scale.
    Do scale with
    decimal points
    appear?
    -> Yes
    Changing the number of scales
    depending on the situation
    takes man-hours, so this time
    I want to leave it as it is.
    We don't lose value by not reducing
    the number of scales, so we fix the
    number of scales at 4 this time.
    Dev

    View full-size slide

  45. Case of 0 people
    Exactly. I'm not really sure
    what to do.
    Also, what happens if there
    are 0 people?
    I can't imagine how the scale
    is adjusted.
    Display the number of
    people graph in a good way

    View full-size slide

  46. Add question
    The largest data is
    plotted larger than the
    second from the top of
    the scale.
    What happens to
    the scale when the
    maximum value is
    0?
    Display the number of
    people graph in a good way
    600
    -> 200,400
    600,800
    150
    -> 40,80
    120,160
    2
    -> 0.5,1
    1.5,2
    Do scale with
    decimal points
    appear?
    -> Yes
    Also, what happens if there
    are 0 people?
    I can't imagine how the scale
    is adjusted.
    Exactly. I'm not really sure
    what to do.

    View full-size slide

  47. Summary of this example mapping
    Display the number of
    people graph in a good
    way
    600
    -> 200,400
    600,800
    150
    -> 40,80
    120,160
    The largest data is plotted
    larger than the second from
    the top of the scale.
    2
    -> 0.5,1
    1.5,2
    Do scale with
    decimal points
    appear?
    -> Yes
    What happens to
    the scale when
    the maximum
    value is 0?
    There are 4
    scales
    1000
    -> 250,500
    750,1000
    800
    -> 250,500
    750,1000
    data does
    not go out
    of graph
    area
    1500
    -> 400,800
    1200,1600
    1050
    -> 250,500
    750,1000

    View full-size slide

  48. What we can learn from
    example mapping
    artifacts

    View full-size slide

  49. example mapping artifacts in this case
    Display the number of
    people graph in a good
    way
    600
    -> 200,400
    600,800
    150
    -> 40,80
    120,160
    The largest data is plotted
    larger than the second from
    the top of the scale.
    2
    -> 0.5,1
    1.5,2
    Do scale with
    decimal points
    appear?
    -> Yes
    What happens to
    the scale when
    the maximum
    value is 0?
    There are 4
    scales
    1000
    -> 250,500
    750,1000
    800
    -> 250,500
    750,1000
    data does
    not go out
    of graph
    area
    1500
    -> 400,800
    1200,1600
    1050
    -> 250,500
    750,1000

    View full-size slide

  50. example mapping artifacts in this case
    Display the number of
    people graph in a good
    way
    600
    -> 200,400
    600,800
    150
    -> 40,80
    120,160
    The largest data is plotted
    larger than the second from
    the top of the scale.
    2
    -> 0.5,1
    1.5,2
    Do scale with
    decimal points
    appear?
    -> Yes
    What happens to
    the scale when
    the maximum
    value is 0?
    There are 4
    scales
    1000
    -> 250,500
    750,1000
    800
    -> 250,500
    750,1000
    data does
    not go out
    of graph
    area
    1500
    -> 400,800
    1200,1600
    1050
    -> 250,500
    750,1000
    This could be a Spike Task.
    We should not start development
    unless we investigate and decide.

    View full-size slide

  51. example mapping artifacts in this case
    Display the number of
    people graph in a good
    way
    600
    -> 200,400
    600,800
    150
    -> 40,80
    120,160
    The largest data is plotted
    larger than the second from
    the top of the scale.
    2
    -> 0.5,1
    1.5,2
    Do scale with
    decimal points
    appear?
    -> Yes
    What happens to
    the scale when
    the maximum
    value is 0?
    There are 4
    scales
    1000
    -> 250,500
    750,1000
    800
    -> 250,500
    750,1000
    data does
    not go out
    of graph
    area
    1500
    -> 400,800
    1200,1600
    1050
    -> 250,500
    750,1000
    These can be used for acceptance criteria.
    After confirming that these have been achieved,
    this story is changed to "Completed."

    View full-size slide

  52. example mapping artifacts in this case
    Display the number of
    people graph in a good
    way
    600
    -> 200,400
    600,800
    150
    -> 40,80
    120,160
    The largest data is plotted
    larger than the second from
    the top of the scale.
    2
    -> 0.5,1
    1.5,2
    Do scale with
    decimal points
    appear?
    -> Yes
    What happens to
    the scale when
    the maximum
    value is 0?
    There are 4
    scales
    1000
    -> 250,500
    750,1000
    800
    -> 250,500
    750,1000
    data does
    not go out
    of graph
    area
    1500
    -> 400,800
    1200,1600
    1050
    -> 250,500
    750,1000
    These can be used as test case examples.
    Note: Not all of them are used as they are.

    View full-size slide

  53. What I understand as seen
    There are few green sticky notes
    -> There may not be enough discussion
    or
    Implementation content may be
    self-explanatory

    View full-size slide

  54. What I understand as seen
    There are many green sticky notes
    for one blue sticky notes.
    -> Since the rules are complicated,
    it may be better to divide them
    into multiple simple rules.

    View full-size slide

  55. What I understand as seen
    There are many blue sticky notes
    →Since the story is complicated,
    it may be better to divide it
    into smaller stories.

    View full-size slide

  56. What I understand as seen
    There are many
    red sticky notes
    -> We may not be ready to
    start developing.

    View full-size slide

  57. Skills required for
    example mapping
    Designed by Rawpixel.com / Freepik

    View full-size slide

  58. Skills required for example mapping
    ● Can consider in a concrete example
    ● Can go back and forth
    between abstraction and materialization
    ○ It is necessary when deriving a rule
    from a concrete example.
    ○ We can also use testing skills.
    ■ Equivalence partitioning
    ■ High-level test case and Low-level test case

    View full-size slide

  59. Three Amigos specialties
    Three Amigos has different points of focus to be good at
    ● PO…Good at focusing on what I want to achieve with this Feature.
    ● Dev…Good at focusing on how this Feature can be realized.
    ● QA…Good at focusing on what I need to confirm to judge
    that this Feature is "completed"
    Note: These are just each strong point, not a divided responsibility.

    View full-size slide

  60. Between abstraction and materialization
    Display the number
    of people graph in a
    good way

    View full-size slide

  61. Between abstraction and materialization
    materialization
    1500
    -> 400,800
    1200,1600
    Display the number
    of people graph in a
    good way
    Then, what happen 1050
    people case?

    View full-size slide

  62. Between abstraction and materialization
    If the max scale is 1000,
    the data will go through on
    grath.
    So, the scale will be
    adjusted to
    400,800,1200,1600.
    Then, what happen 1050
    people case?
    1500
    -> 400,800
    1200,1600
    Display the number
    of people graph in a
    good way

    View full-size slide

  63. Between abstraction and materialization
    Do not exceed
    the top mark
    abstraction
    Display the number
    of people graph in a
    good way
    1500
    -> 400,800
    1200,1600
    Then, what happen 1050
    people case?
    If the max scale is 1000,
    the data will go through on
    grath.
    So, the scale will be
    adjusted to
    400,800,1200,1600.

    View full-size slide

  64. From example mapping
    to automation...

    View full-size slide

  65. Flow to automation in BDD
    reference:『The BDD Books - Discovery』

    View full-size slide

  66. Flow to automation in BDD
    e.g.Example mapping
    e.g.Writing automated
    test code
    e.g.Scenario arrangement
    by BRIEF principle
    reference:Keep your scenarios BRIEF
    reference:『The BDD Books - Discovery』

    View full-size slide

  67. Don't think of automation tools first
    ● You will achieve significant improvements in your software
    development activities just by practicing discovery on its own.
    ● Using a BDD tool, or automating tests using Given/When/Then
    doesn't make your development approach BDD in the slightest.
    ● Don't focus on the automation tools
    until you’ve got good at collaborating across the team.
    参考:『The BDD Books - Discovery』

    View full-size slide

  68. Example mapping
    summary

    View full-size slide

  69. Example mapping summary
    ● Able to distinguish between rules, specific examples,
    and questions in a story.
    ● It is important to think in terms of concrete examples
    and to go back and forth between abstraction and concreteness.
    ● Developers, POs, and QAs should work together
    to think about testing before implementing development,
    and recognize the product the team is aiming for.
    ● Discovery practices such as example mapping are important
    to consider before doing automated testing.
    ○ Instance mapping is not required.
    Other methods may be used as long as
    Discovery activities are possible.

    View full-size slide

  70. References and
    real practices

    View full-size slide

  71. References
    ● Introducing Example Mapping
    ○ Japanese translation
    ● The BDD Books - Discovery
    ○ Japanese translation

    View full-size slide

  72. Real practices (These resources are Japanese text)
    ● QAエンジニアが実例マッピングを2ヶ月運用した話
    ● miroを使って実例マッピングの一歩目を踏み出すの(仮)
    ● 新機能の開発前に行っている3つのプラクティスを紹介します
    ● 異世界に転生したら激レア職業のスクラム Developerだったので
    手始めに Scrum Fest Osaka 2020 でラーニングしたスキルで
    リファインメント無双してみた
    There are other cases that have not been presentation but have been
    contacted individually.

    View full-size slide