JV: And is it always like … I mean, it’s agile, so I’m assuming it’s always a working process, there’s always adding more things and adding everything to it or is this pretty much like “Let’s stick with this. This is our new waterfall.”
MA: It’s always changing. I mean, that system right now is actually kind of been running in the background for a little while. I’ve since moved out of QA doing work in a development organization now, but I was just helping some just two weeks ago who were looking in extending to help support new web applications and new test cases. So yeah, it’s something that’s growing here at the organization. And another thing that we did at the same time was we moved to one test framework, because for a while we were doing a lot of stuff in Java and we probably had different test framework for every single application.
JV: Oh wow.
JV: Yeah, that can get be kind of a mountain to manage I would imagine.
MA: It is and Java is great, but It’s not really meant for behavioral testing, which is what we were doing. You can do it, but you just have to be a very diligent developer about it, so I moved the team to Cucumber.
JV: Okay, and that’s better for behavioral testing.
MA: It’s better for behavioral testing, because you describe the behaviors that you don’t write function names. It really enforces code cleanliness. One of the big problems we had that I was talking about [involved] copying and pasting. With Cucumber you really can’t do that. Each step has to be completely separate and on its own, so that they can be chained together uniquely. So it forced my developers to think about how to organize their code more cleanly. Again, it’s one of those forcing functions; just like having that agile release schedule every two weeks makes you think about things.
Having that whole different framework where they had to make sure every set would run independently made them work on that. And the two together we got to the point where we actually … to do our test plans we would get three or four people in a room and then we’d put up a notepad on the board and would just start writing the Cucumber test as a group. Once we were done it’s like okay, those are all the problems we can think of to test we can all go back to our desk and just start filling out for that, and we had full functioning automated test in a week and sometimes before the application even existed, so it was cool.
JV: Very cool. We’re coming close to ending here. Any final words of advice you have to the people listening and reading?
MA: I think my only piece of advice is to always be looking how to improve. It’s hard to do; it’s hard to take the time to step away and see how can I do this better, but I know here we had problems were we didn’t take that time, and it’s hard to build the month you need to improve your life, but once you do you get three months back. Sometimes you have to suffer. Like there was a month there where I worked late nights so that my developer could build that test data management system, and I took over his testing work and we all really kicked our [rears], but then we’ve had this system since and the quality of life improvement is huge, so you just have to bite the bullet sometimes.
JV: You got to like put out that extra effort; always step up a little bit, step up your game just a little bit more.
MA: Well, it’s step up so that you can relax, and that’s the thing. A lot of times it’s easy to get in the mindset, “I’m going to have to do this thing and I’m going to be stuck doing that forever,” but you’re trying to look for improvements where you can get more of your free time back.
JV: That’s a wonderful way of looking at the world. When you get worked dumped on you don’t think about the work; think about the relaxation that comes once you [get familiar]. All right, thank you Matt very much.
MA: Thank you so much I really appreciate talking to you.
A jack of all trades and master of some, Matt Attaway has worked as a tester, developer, researcher, designer, manager, DevOps engineer, and elephant trainer. He currently manages the open source development group at Perforce Software, but prior to that he led a test team working on the highest profile projects at Perforce. When not tinkering with the latest software development pipeline tools, Matt enjoys experimenting with cocktails and playing games of all sorts—preferably simultaneously.