1 00:00:06,611 --> 00:00:10,252 - Who has helped us in our automation efforts? 2 00:00:10,252 --> 00:00:12,768 We want to share a couple of our stories. 3 00:00:12,768 --> 00:00:15,224 But one of the questions that always comes up is 4 00:00:15,224 --> 00:00:16,651 do testers need to code? 5 00:00:16,651 --> 00:00:18,700 Should testers be doing this automation? 6 00:00:18,700 --> 00:00:20,210 Janet what do you think? 7 00:00:20,210 --> 00:00:22,304 - Well, you mentioned the term before 8 00:00:22,304 --> 00:00:24,910 generalized specialists, 9 00:00:24,910 --> 00:00:29,131 and I think that testers need to understand code, 10 00:00:29,131 --> 00:00:32,608 should be able to read and understand some of the things, 11 00:00:32,608 --> 00:00:34,549 but to actually code production code 12 00:00:34,549 --> 00:00:37,313 I'm not sure that they need to. 13 00:00:37,313 --> 00:00:39,100 It's a help to be able to code 14 00:00:39,100 --> 00:00:41,741 but I don't think they have to. 15 00:00:41,741 --> 00:00:44,699 One of my teams, we were choosing 16 00:00:44,699 --> 00:00:49,077 a tool to go through the user interface to test, 17 00:00:49,077 --> 00:00:52,029 and our lead developer was... 18 00:00:52,029 --> 00:00:54,883 we were having a little bit of trouble with it, 19 00:00:54,883 --> 00:00:58,010 and so our lead developer said, "Janet, I can help you." 20 00:00:58,010 --> 00:00:59,468 And I go, "OK." 21 00:00:59,468 --> 00:01:00,910 He said, so... 22 00:01:00,910 --> 00:01:04,697 He did downloaded Ruby, downloaded Water, 23 00:01:04,697 --> 00:01:07,966 did a proof of concept, took about a half a day 24 00:01:07,966 --> 00:01:11,406 to show us that we could actually do that. 25 00:01:11,406 --> 00:01:15,108 And then, he would write the initial test 26 00:01:15,108 --> 00:01:16,904 so that the rest of the testers 27 00:01:16,904 --> 00:01:19,942 could use it as examples to continue on. 28 00:01:19,942 --> 00:01:22,242 He took it into... 29 00:01:22,242 --> 00:01:24,958 as part of his job, to help us. 30 00:01:24,958 --> 00:01:27,086 So every time we needed a new library 31 00:01:27,086 --> 00:01:29,399 or a new functionality underneath, 32 00:01:29,399 --> 00:01:32,981 the programmers actually helped us write that, 33 00:01:32,981 --> 00:01:34,184 so we didn't have to. 34 00:01:34,184 --> 00:01:35,964 Now the interesting thing was, 35 00:01:35,964 --> 00:01:39,258 that over time, one of our testers 36 00:01:39,258 --> 00:01:40,746 really liked this idea. 37 00:01:40,746 --> 00:01:43,654 So he actually started understanding more about it. 38 00:01:43,654 --> 00:01:45,052 He took an interest. 39 00:01:45,052 --> 00:01:47,804 He actually took over a lot of the coding, 40 00:01:47,804 --> 00:01:51,804 but because he wanted to, not because he had to. 41 00:01:52,731 --> 00:01:53,765 So what about you Lisa? 42 00:01:53,765 --> 00:01:55,804 Do you have a story to share? 43 00:01:55,804 --> 00:01:58,265 - Yeah, I found that the developers 44 00:01:58,265 --> 00:02:00,645 are usually quite willing to help, 45 00:02:00,645 --> 00:02:02,503 as long as they're... 46 00:02:02,503 --> 00:02:04,115 we're not in a dysfunctional environment 47 00:02:04,115 --> 00:02:06,032 where we're all driven to meet that deadline, right? 48 00:02:06,032 --> 00:02:07,523 So when they have time. 49 00:02:07,523 --> 00:02:09,827 Now, on my last team, it took them 50 00:02:09,827 --> 00:02:13,273 a long time to learn how to do tester and development. 51 00:02:13,273 --> 00:02:15,542 That's really got quite a steep learning curve, 52 00:02:15,542 --> 00:02:17,449 and then once you learn it, 53 00:02:17,449 --> 00:02:18,684 none of those developers would ever go back. 54 00:02:18,684 --> 00:02:19,517 - Yes. 55 00:02:19,517 --> 00:02:20,807 - But, it took them a while to learn. 56 00:02:20,807 --> 00:02:24,242 And, we had talked about testing at the API level, 57 00:02:24,242 --> 00:02:27,246 and using that for acceptance tester and development, 58 00:02:27,246 --> 00:02:28,535 and I thought that was so important. 59 00:02:28,535 --> 00:02:30,854 I really wanted to get going on it. 60 00:02:30,854 --> 00:02:34,090 And, we had chosen a tool to use called FitNesse, 61 00:02:34,090 --> 00:02:37,031 and I had to be patient and just wait 62 00:02:37,031 --> 00:02:39,022 until the team was far enough along 63 00:02:39,022 --> 00:02:41,655 in writing their unit test with TDD, 64 00:02:41,655 --> 00:02:43,163 and then when I felt like 65 00:02:43,163 --> 00:02:46,192 they were not too stressed about that anymore, 66 00:02:46,192 --> 00:02:47,586 I went to a developer, who seemed 67 00:02:47,586 --> 00:02:49,386 the friendliest on the team, and said, 68 00:02:49,386 --> 00:02:52,121 "hey, we've all agreed to use this FitNesse tool 69 00:02:52,121 --> 00:02:53,729 to test at the API level, 70 00:02:53,729 --> 00:02:56,675 you're working on a story that seems ideal for this. 71 00:02:56,675 --> 00:02:58,084 Would you pair with me for awhile, 72 00:02:58,084 --> 00:03:01,704 and let's see if we can write some tests for this story?" 73 00:03:01,704 --> 00:03:03,730 And so, we spent a couple of hours. 74 00:03:03,730 --> 00:03:05,457 He found that it was very easy to write 75 00:03:05,457 --> 00:03:08,189 the fixture codes to send the inputs to the production code, 76 00:03:08,189 --> 00:03:09,528 and get the outputs back, and 77 00:03:09,528 --> 00:03:12,847 the tool does the comparison of the results. 78 00:03:12,847 --> 00:03:15,941 And, he thought it was quite useful. 79 00:03:15,941 --> 00:03:17,576 So the next day at the stand up, 80 00:03:17,576 --> 00:03:19,722 he related this experience and said, 81 00:03:19,722 --> 00:03:20,971 "hey, we wrote some FitNesse tests. 82 00:03:20,971 --> 00:03:22,240 It was really pretty easy." 83 00:03:22,240 --> 00:03:24,382 So then I picked another developer on the team, 84 00:03:24,382 --> 00:03:25,723 and we went through the same thing, 85 00:03:25,723 --> 00:03:27,398 and had these ah-hah moments of 86 00:03:27,398 --> 00:03:29,574 oh I thought the story should work this way. 87 00:03:29,574 --> 00:03:30,407 - Yes. 88 00:03:30,407 --> 00:03:31,891 - Oh no, I thought it should work this way. 89 00:03:31,891 --> 00:03:35,127 And so, it really helped our collaboration, 90 00:03:35,127 --> 00:03:37,309 and because they found value in it right away, 91 00:03:37,309 --> 00:03:39,218 they were more than glad to help, 92 00:03:39,218 --> 00:03:41,046 and like you said, it doesn't necessarily 93 00:03:41,046 --> 00:03:42,974 mean a big investment of time. 94 00:03:42,974 --> 00:03:45,969 - Yeah, and I think that's a really good strategy. 95 00:03:45,969 --> 00:03:47,730 Choosing somebody you have a relationship 96 00:03:47,730 --> 00:03:49,063 already with, right. 97 00:03:49,063 --> 00:03:51,828 So if I'm trying to introduce something 98 00:03:51,828 --> 00:03:53,166 going to the friendliest developer 99 00:03:53,166 --> 00:03:54,866 or the one I have the relationship. 100 00:03:54,866 --> 00:03:56,640 I've also said the other way. 101 00:03:56,640 --> 00:03:59,346 Programmers, if you're trying to do something, 102 00:03:59,346 --> 00:04:01,288 find the friendliest tester - Right. 103 00:04:01,288 --> 00:04:03,723 - who is most willing to try something. 104 00:04:03,723 --> 00:04:05,623 Once you show that it works, 105 00:04:05,623 --> 00:04:07,542 then you can move on. 106 00:04:07,542 --> 00:04:08,899 I've been known to have chocolates 107 00:04:08,899 --> 00:04:10,951 on my desk as bribery. 108 00:04:10,951 --> 00:04:12,599 It works pretty good too. 109 00:04:12,599 --> 00:04:13,947 - That is a good idea. 110 00:04:13,947 --> 00:04:17,495 - But, really help, really find who can help you. 111 00:04:17,495 --> 00:04:18,328 - Right. 112 00:04:18,328 --> 00:04:21,927 And again, as I said, this can be an investment 113 00:04:21,927 --> 00:04:23,210 of time at the beginning, 114 00:04:23,210 --> 00:04:25,575 so do educate the managers on 115 00:04:25,575 --> 00:04:27,387 what this investment means to them. 116 00:04:27,387 --> 00:04:28,603 How is it going to save us 117 00:04:28,603 --> 00:04:30,349 time and money over the long term? 118 00:04:30,349 --> 00:04:32,144 So, we need to make a little investment now. 119 00:04:32,144 --> 00:04:35,443 - Be able to articulate what that means. 120 00:04:35,443 --> 00:04:36,759 - Right. - Yes. 121 00:04:36,759 --> 00:04:38,349 - Next, let's look at some ways 122 00:04:38,349 --> 00:04:40,330 to create an automation strategy 123 00:04:40,330 --> 00:04:43,163 using the test automation pyramid.