- Who has helped us in our automation efforts?
We want to share a couple of our stories.
But one of the questions that always comes up is
do testers need to code?
Should testers be doing this automation?
Janet what do you think?
- Well, you mentioned the term before
generalized specialists,
and I think that testers need to understand code,
should be able to read and understand some of the things,
but to actually code production code
I'm not sure that they need to.
It's a help to be able to code
but I don't think they have to.
One of my teams, we were choosing
a tool to go through the user interface to test,
and our lead developer was...
we were having a little bit of trouble with it,
and so our lead developer said, "Janet, I can help you."
And I go, "OK."
He said, so...
He did downloaded Ruby, downloaded Water,
did a proof of concept, took about a half a day
to show us that we could actually do that.
And then, he would write the initial test
so that the rest of the testers
could use it as examples to continue on.
He took it into...
as part of his job, to help us.
So every time we needed a new library
or a new functionality underneath,
the programmers actually helped us write that,
so we didn't have to.
Now the interesting thing was,
that over time, one of our testers
really liked this idea.
So he actually started understanding more about it.
He took an interest.
He actually took over a lot of the coding,
but because he wanted to, not because he had to.
So what about you Lisa?
Do you have a story to share?
- Yeah, I found that the developers
are usually quite willing to help,
as long as they're...
we're not in a dysfunctional environment
where we're all driven to meet that deadline, right?
So when they have time.
Now, on my last team, it took them
a long time to learn how to do tester and development.
That's really got quite a steep learning curve,
and then once you learn it,
none of those developers would ever go back.
- Yes.
- But, it took them a while to learn.
And, we had talked about testing at the API level,
and using that for acceptance tester and development,
and I thought that was so important.
I really wanted to get going on it.
And, we had chosen a tool to use called FitNesse,
and I had to be patient and just wait
until the team was far enough along
in writing their unit test with TDD,
and then when I felt like
they were not too stressed about that anymore,
I went to a developer, who seemed
the friendliest on the team, and said,
"hey, we've all agreed to use this FitNesse tool
to test at the API level,
you're working on a story that seems ideal for this.
Would you pair with me for awhile,
and let's see if we can write some tests for this story?"
And so, we spent a couple of hours.
He found that it was very easy to write
the fixture codes to send the inputs to the production code,
and get the outputs back, and
the tool does the comparison of the results.
And, he thought it was quite useful.
So the next day at the stand up,
he related this experience and said,
"hey, we wrote some FitNesse tests.
It was really pretty easy."
So then I picked another developer on the team,
and we went through the same thing,
and had these ah-hah moments of
oh I thought the story should work this way.
- Yes.
- Oh no, I thought it should work this way.
And so, it really helped our collaboration,
and because they found value in it right away,
they were more than glad to help,
and like you said, it doesn't necessarily
mean a big investment of time.
- Yeah, and I think that's a really good strategy.
Choosing somebody you have a relationship
already with, right.
So if I'm trying to introduce something
going to the friendliest developer
or the one I have the relationship.
I've also said the other way.
Programmers, if you're trying to do something,
find the friendliest tester - Right.
- who is most willing to try something.
Once you show that it works,
then you can move on.
I've been known to have chocolates
on my desk as bribery.
It works pretty good too.
- That is a good idea.
- But, really help, really find who can help you.
- Right.
And again, as I said, this can be an investment
of time at the beginning,
so do educate the managers on
what this investment means to them.
How is it going to save us
time and money over the long term?
So, we need to make a little investment now.
- Be able to articulate what that means.
- Right. - Yes.
- Next, let's look at some ways
to create an automation strategy
using the test automation pyramid.