1 00:00:06,941 --> 00:00:10,435 - We talked about personas in the last section, 2 00:00:10,435 --> 00:00:12,889 and now we're gonna introduce you to a few other 3 00:00:12,889 --> 00:00:15,274 techniques for exploratory testing. 4 00:00:15,274 --> 00:00:18,806 Teams often don't give enough attention to risks. 5 00:00:18,806 --> 00:00:21,229 Product owners should know the business risks 6 00:00:21,229 --> 00:00:23,069 and make 'em visible. 7 00:00:23,069 --> 00:00:27,041 Another example besides business risks might be 8 00:00:27,041 --> 00:00:27,874 from a technical perspective; 9 00:00:27,874 --> 00:00:30,919 what happens if you lose your data 10 00:00:30,919 --> 00:00:33,168 due to error message handling. 11 00:00:33,168 --> 00:00:38,027 Other coding risks as well, such as the language you use. 12 00:00:38,027 --> 00:00:40,953 Different languages have different risks. 13 00:00:40,953 --> 00:00:42,217 You should know them. 14 00:00:42,217 --> 00:00:44,387 What about outside influences? 15 00:00:44,387 --> 00:00:47,043 What are the risk from them? 16 00:00:47,043 --> 00:00:48,948 So start asking questions. 17 00:00:48,948 --> 00:00:51,269 What-if scenarios. 18 00:00:51,269 --> 00:00:53,001 One of my favorite questions is, 19 00:00:53,001 --> 00:00:56,282 what is the worst thing that could possibly happen? 20 00:00:56,282 --> 00:00:59,232 So if you ask that question to your product owner, 21 00:00:59,232 --> 00:01:01,375 they might think about it and then go, 22 00:01:01,375 --> 00:01:04,625 well, maybe the theft of customer data. 23 00:01:06,100 --> 00:01:10,267 So then, you know that security has really big impact 24 00:01:11,668 --> 00:01:15,410 and you're gonna wanna spend extra time exploring that 25 00:01:15,410 --> 00:01:17,237 to bring out the biggest risks, 26 00:01:17,237 --> 00:01:19,473 well to mitigate those risks. 27 00:01:19,473 --> 00:01:22,765 A tried and true approach, the simplest approach 28 00:01:22,765 --> 00:01:26,077 to exploratory testing, and it's the most common, 29 00:01:26,077 --> 00:01:27,729 is user journeys. 30 00:01:27,729 --> 00:01:31,479 For example, thinking about how people use your system. 31 00:01:31,479 --> 00:01:35,472 I have a very personal one that I suffered through lately. 32 00:01:35,472 --> 00:01:40,038 We had a mobile phone network, we bought a little network 33 00:01:40,038 --> 00:01:41,687 that we were trying to do. 34 00:01:41,687 --> 00:01:45,523 I wanted to add funds to that network so that I could have 35 00:01:45,523 --> 00:01:46,773 wifi on the go. 36 00:01:48,551 --> 00:01:52,220 Found out that I couldn't do that over the internet 37 00:01:52,220 --> 00:01:56,963 like we'd tried to because it wanted a US postal code. 38 00:01:56,963 --> 00:01:58,623 I'm from Canada. 39 00:01:58,623 --> 00:02:02,459 That company didn't think of non-US citizens. 40 00:02:02,459 --> 00:02:07,285 I had to go down to a store and get them to add the funds 41 00:02:07,285 --> 00:02:11,077 so that I could continue to use the wifi. 42 00:02:11,077 --> 00:02:13,282 Start with one journey. 43 00:02:13,282 --> 00:02:15,968 Try exploring variations. 44 00:02:15,968 --> 00:02:20,135 For example, if we use our dog-owner versus a cat-owner, 45 00:02:20,973 --> 00:02:23,754 if we look we through a journey through the pet salon, 46 00:02:23,754 --> 00:02:26,281 we have a cat-owner looking for a new groomer, 47 00:02:26,281 --> 00:02:28,617 wants to see the options and the prices. 48 00:02:28,617 --> 00:02:32,558 They want to book a simple brush-out to check out the store, 49 00:02:32,558 --> 00:02:34,439 but the groomers as well. 50 00:02:34,439 --> 00:02:37,813 What happens if you don't have the cat-owner, 51 00:02:37,813 --> 00:02:39,641 but try the dog-owner? 52 00:02:39,641 --> 00:02:41,324 Is that a different journey? 53 00:02:41,324 --> 00:02:43,705 Would you be looking at different things? 54 00:02:43,705 --> 00:02:45,963 A tour is a little bit different. 55 00:02:45,963 --> 00:02:47,915 There's different things. 56 00:02:47,915 --> 00:02:49,482 But it's structured; it allows us 57 00:02:49,482 --> 00:02:52,772 to focus the types of questions. 58 00:02:52,772 --> 00:02:55,374 It's based on a tourist metaphor. 59 00:02:55,374 --> 00:02:59,460 So if you think about going to a city, right, 60 00:02:59,460 --> 00:03:03,043 if I go to Paris, I want to see the Louvre, 61 00:03:04,338 --> 00:03:06,188 I wanna see the Eiffel Tower, 62 00:03:06,188 --> 00:03:09,105 I want to see the Cathedral, right? 63 00:03:10,115 --> 00:03:11,861 That's a tour. 64 00:03:11,861 --> 00:03:15,278 I can use it as a possibly tourist agent. 65 00:03:17,282 --> 00:03:20,853 They would look at it much different than if I was a tourist 66 00:03:20,853 --> 00:03:23,088 who came in and I had one day 67 00:03:23,088 --> 00:03:25,922 and wanted to see all three things. 68 00:03:25,922 --> 00:03:27,831 Different types of tours. 69 00:03:27,831 --> 00:03:29,210 One that is used quite often 70 00:03:29,210 --> 00:03:33,211 and is quite effective is a landmark tour. 71 00:03:33,211 --> 00:03:36,992 It means looking at the order differently. 72 00:03:36,992 --> 00:03:39,885 So the first time I might go to the Louvre, Eiffel Tower 73 00:03:39,885 --> 00:03:42,873 and the Cathedral; the next time, what happens if I 74 00:03:42,873 --> 00:03:47,012 go to the Cathedral first and then the Eiffel Tower? 75 00:03:47,012 --> 00:03:48,065 All right. 76 00:03:48,065 --> 00:03:52,066 You wanna look at your landmarks in your application. 77 00:03:52,066 --> 00:03:53,758 What would that mean? 78 00:03:53,758 --> 00:03:57,781 Can you take and go through different ways changing 79 00:03:57,781 --> 00:03:59,388 the order up? 80 00:03:59,388 --> 00:04:01,874 James Whittaker has a book out that describes a lot of 81 00:04:01,874 --> 00:04:05,833 different tours, but, if you go and explore on the internet, 82 00:04:05,833 --> 00:04:09,927 you will see all kinds of tours that people have made up. 83 00:04:09,927 --> 00:04:13,875 Create their own very special for their application. 84 00:04:13,875 --> 00:04:17,281 I like to use tours during the end game. 85 00:04:17,281 --> 00:04:21,543 It gives you a different perspective for your application. 86 00:04:21,543 --> 00:04:23,254 You want to be looking at it 87 00:04:23,254 --> 00:04:25,997 from a completely different viewpoint. 88 00:04:25,997 --> 00:04:29,939 So let's look at some examples in our pet salon site. 89 00:04:29,939 --> 00:04:33,763 Websites appear differently on different devices 90 00:04:33,763 --> 00:04:35,705 with different resolutions. 91 00:04:35,705 --> 00:04:37,518 Maybe if you have different printouts 92 00:04:37,518 --> 00:04:40,652 or from different papers or a different printer even, 93 00:04:40,652 --> 00:04:44,589 the pet salon will look different on different devices. 94 00:04:44,589 --> 00:04:48,193 You might wanna look for or think about colorblindness. 95 00:04:48,193 --> 00:04:50,721 For example, if i was looking at a airline seat 96 00:04:50,721 --> 00:04:53,267 and we were trying to say, this is a good seat by 97 00:04:53,267 --> 00:04:56,864 the color green and this would be color red, 98 00:04:56,864 --> 00:05:01,031 if somebody was colorblind, well, it might not look so good. 99 00:05:02,039 --> 00:05:04,460 So we wanna think about accessibility. 100 00:05:04,460 --> 00:05:07,339 If you have a pink dog with a green background, 101 00:05:07,339 --> 00:05:09,614 how will that affect your site? 102 00:05:09,614 --> 00:05:11,470 Think about those sorts of things. 103 00:05:11,470 --> 00:05:15,095 So you wanna manage color and style across platforms. 104 00:05:15,095 --> 00:05:20,007 It's a big challenge to optimize what is important to you. 105 00:05:20,007 --> 00:05:23,516 If we think about the landmark tour from our pet salon, 106 00:05:23,516 --> 00:05:26,344 what happens if you try things in a different order? 107 00:05:26,344 --> 00:05:28,887 So first of all we try grooming options, 108 00:05:28,887 --> 00:05:30,621 maybe we look at testimonials, 109 00:05:30,621 --> 00:05:32,862 maybe we look at the pet pictures. 110 00:05:32,862 --> 00:05:34,449 And then we book an appointment. 111 00:05:34,449 --> 00:05:36,756 That might be a normal kind of thing to do. 112 00:05:36,756 --> 00:05:40,783 What happens if we start by looking at the pet pictures, 113 00:05:40,783 --> 00:05:44,374 booking an appointment, then looking at the testimonials? 114 00:05:44,374 --> 00:05:48,923 You may get different behavior in your testing. 115 00:05:48,923 --> 00:05:49,758 So try it. 116 00:05:49,758 --> 00:05:51,343 It can be very powerful. 117 00:05:51,343 --> 00:05:53,995 Programmers might explore during their own coding 118 00:05:53,995 --> 00:05:57,791 to help shorten the feedback loop for their visual issues. 119 00:05:57,791 --> 00:06:02,375 Testers might explore stories for browser incompatibility. 120 00:06:02,375 --> 00:06:05,579 But we still need to explore at the feature level. 121 00:06:05,579 --> 00:06:08,094 And one way is to explore in groups. 122 00:06:08,094 --> 00:06:11,203 Lisa's teams adds group hugs, she calls 'em, I love that, 123 00:06:11,203 --> 00:06:14,989 for extra confidence on major or risky features. 124 00:06:14,989 --> 00:06:17,034 She gets a lot of people together in a room 125 00:06:17,034 --> 00:06:19,337 or perhaps even a video meeting. 126 00:06:19,337 --> 00:06:21,646 Testers might provide the charters, 127 00:06:21,646 --> 00:06:24,611 or maybe the team members will provide their own, 128 00:06:24,611 --> 00:06:27,904 collaborate to test concurrency issues. 129 00:06:27,904 --> 00:06:31,037 If I update this, what happens to that? 130 00:06:31,037 --> 00:06:33,494 Lisa and I do that a lot when we're collaborating on 131 00:06:33,494 --> 00:06:36,246 a book or even this video course, 132 00:06:36,246 --> 00:06:38,957 making sure that we keep things in sync. 133 00:06:38,957 --> 00:06:41,044 When you're doing group testing, though, 134 00:06:41,044 --> 00:06:43,801 make sure you keep notes in a shared document 135 00:06:43,801 --> 00:06:46,222 to follow up if necessary. 136 00:06:46,222 --> 00:06:48,332 We can also do mob testing. 137 00:06:48,332 --> 00:06:51,731 It's a very interesting way of testing one driver with 138 00:06:51,731 --> 00:06:55,262 multiple people helping by asking questions. 139 00:06:55,262 --> 00:06:57,361 It's a lot like mob programming, 140 00:06:57,361 --> 00:06:59,312 but from a testing perspective. 141 00:06:59,312 --> 00:07:00,951 We're not gonna talk a lot about that, 142 00:07:00,951 --> 00:07:03,643 but we've provided a link in the download section 143 00:07:03,643 --> 00:07:05,772 so that you can research more. 144 00:07:05,772 --> 00:07:09,520 Exploratory testing is about learning. 145 00:07:09,520 --> 00:07:12,462 One of my favorite ways of going into a new team 146 00:07:12,462 --> 00:07:16,847 is to explore, not only the software, but the 147 00:07:16,847 --> 00:07:19,432 documentation if there is any. 148 00:07:19,432 --> 00:07:21,385 I look at the tests. 149 00:07:21,385 --> 00:07:26,231 I walk around to see what's on the walls, what's visible. 150 00:07:26,231 --> 00:07:28,743 It really is all about learning. 151 00:07:28,743 --> 00:07:31,576 Exploratory testing has many uses. 152 00:07:32,417 --> 00:07:36,187 Programmers use it to explore new tools or language. 153 00:07:36,187 --> 00:07:40,414 Maybe we have end-to-end slice of a new project 154 00:07:40,414 --> 00:07:44,013 and we need to look for unexpected behavior. 155 00:07:44,013 --> 00:07:47,475 Does a feature have unexpected impacts on other areas? 156 00:07:47,475 --> 00:07:51,412 So I would probably start by drawing a context diagram 157 00:07:51,412 --> 00:07:55,501 or something else to be able understand what impacts 158 00:07:55,501 --> 00:07:59,668 it might be, and maybe I go explore in that specific area.