nihonbuson
November 17, 2020
39

How to do example mapping

nihonbuson

November 17, 2020

Transcript

1. How to do example mapping with learning from real-examples Yuya

Kazama (@nihonbuson)

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/

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

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
8. Theme and Participants PO QA Display the number of people

graph in a good way Dev
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
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
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
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?
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.
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
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
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
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
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
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
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

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
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
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?
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
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.
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
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
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
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
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
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
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
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?
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?
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
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
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.
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
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

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.
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.
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.
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
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
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
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.
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

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
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.
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."
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.
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
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.
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.
56. What I understand as seen There are many red sticky

notes -> We may not be ready to start developing.

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
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.
60. Between abstraction and materialization Display the number of people graph

in a good way
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?
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
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.

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』
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』

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.

71. References • Introducing Example Mapping ◦ Japanese translation • The

BDD Books - Discovery ◦ Japanese translation
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.