Brain dump: How I’d like my Agile testers to be

So I was just thinking about how I need the testers to work in our project (and maybe in any other project). This started as a brain dump and then the next thing I know I’ve got this outline already. So anyways, If I were to outline what I’d look for in testers, I’d look into the following areas:

  • Attitude towards testing
  • Technical competence
  • Being a team player

Attitude towards testing

Working on an Agile, greenfield project really needs to have testers who are quick studies, self-sufficient and proactive. Most of the time we are given just the user story and some mock-ups, so I need the testers who can model the user story in their heads or in their notes, ask the right questions about it, and do it on their own (i.e., not wait to be served the information they need on a silver platter).

I think testing is like problem solving. It’s like: Hey, you’re given this user story. How do you test it to make sure it’ll pass the PO’s review? What exactly do you need to test? What do you need to know to test it? It has a save functionality– what does it save, where does it save it, who’s allowed to save, are there stuff that needs to be derived or transformed, etc. It has a read functionality–read from where, how do I know I’m pulling the right data into the fields I’m checking, how do you get data entered to be read in the first place, do we format certain items differently, etc. Hey, look at this screen, what can I do with the controls in the screen, what can I do that I’m not supposed to, etc. Hey, I found a bug–can I consistently replicate it, can I narrow down the cases when this bug would appear, is this just a symptom of an underlying bug, is this even a valid bug, etc. There’s a fix I need to retest–what could possibly be affected, do I need to retest everything, etc. There’s a lot of figuring out and critical thinking involved.

What I don’t like is to reduce testing to an activity where we just write test cases and execute the test steps without thinking about how our work can provide value to the team, to the product, to the client, and to people who’d end up using our product. I really want the testers go into the project with the desire to make their being in the project really matter.

Technical competence

You can’t just WANT to be a solid contributor to the project, you have to BE one. You can be the most idealistic person but that won’t get you to where you want or need to be, you need to be able to execute.

For testing, I don’t necessarily equate technical competence to being able to automate. Being able to automate tests doesn’t mean so much if your tests can’t find the issues that needs fixing. We have to keep in mind that the product is the actual product — not the test automation scripts.

As I mentioned earlier, testing is like problem solving. Part of this includes modeling the application or feature you need to test — figuring out where there’d be if clauses or doing some decision tables, figuring out the data flows, state transitions, figuring out combination of valid/invalid input, etc. Figuring out what you actually need to test given that the lines defining the scope could sometimes get blurry. Then there’s instances where you have to work with the database, parse some flat files, or with some API. There are also instances when you need to simulate a certain scenario — and you have to figure how to do this right otherwise you might just bring up an invalid test case or bug. There are also instances when looking under the hood allows for more efficient testing; for instance I’ve reviewed database scripts and that reduced the effort as opposed to executing the test cases in fully black box mode.

You’ll also need to collaborate with developers and you need to be able to keep up with the discussions. You can’t rely on the layer of having the test lead interpret stuff for you. And it just saves people time from having to explain things if you can keep up with the technical discussions. When you report bugs, it is also very helpful if you’ve done your own investigation to narrow down the possible causes. When it comes to bug reporting, I always say “A problem well stated is a problem half solved.”

There’s a lot of collaboration within the Agile project. Roles of people you’ll engage with include fellow testers, devs, UX designer, BA, PO, and possibly support. You’ll need to share status updates, raise impediments, raise bugs, raise potential enhancements, raise a lot of clarifications, and possibly conduct demos of the user story. There’s going to be a lot of communication going on so you really need to know what you’re talking about, and you have to know how to talk about it.

Being a good team player

This is good to have in any project or in any team. You want to work with people who are responsible, reliable and who keeps each other informed as needed. You want people to pull their own weight in the project, and to help each other out esp when the load gets heavier for some. And it’s all the more appreciated when people help without having to be asked to help.

Meeting the Sprint goals is the primary focus, and so when needed, the lines defining the roles are blurred and folks try to contribute whenever and wherever they can. For instance, I’ve taken on the BA role while another tester has taken on the PM/scrum master role. We have front end devs who also work on back end tasks. When we needed load testing to be done and we couldn’t get another tester to work on it, one of our devs took on the task. When there were some data update needed, the team split the task among those who can help so as to get the job done faster.

Summing it up

It’s hard to come up with a checklist of traits for what I’d like in the testers in my team. Essentially, I want testers who sincerely want to contribute to the project. I want testers who can actually test, who respect testing per se, and who can build their credibility within the team. And of course, I want team players to help make the not so easy task of building software hopefully less hard. People won’t always fit the bill off the bat, but what’s important is to advance towards improving.

Advertisements

Challenge: focus on value

I’m so tired of things that waste or unnecessarily demand so much of people’s time. You’ve got that meeting where people don’t bother to come in on time. You sit through meetings seeing people kill time on their mobile phones (either that or they’re also people-watching just like you). You have all these goals and expectations thrust upon you, and you can only shake your head over how un-SMART a lot of them are. You’ve got young, impressionable team mates working overtime to prepare for game shows, plotting surprises for people they hardly know, making fancy props for who knows what, etc.

Maybe that’s aligned with what they like. Maybe noontime show antics is what floats their boats. Maybe I’m the boring, cultural misfit who values people’s time (mostly, my own), how it should be the individual’s choice on how they would rather spend it, and how they should have a say if other people are wasting it for them.

Maybe we should challenge ourselves to find focus, and focus on just one simple thing: providing value.

What if our focus is on producing quality interactions with whoever we deal with. We set up meetings that people don’t dread going to and they actually find value in attending. We hold general assemblies where people will get key take-aways other than free food, and they leave feeling inspired or motivated. We hold activities where participants would feel they are better or they’ve grown — even just a little teeny bit — for having been there; rather than have the feeling that they’ve just killed off 30 minutes or more of their lives.

I don’t think it’s possible to get it right off the bat and all the time. But wouldn’t this be a better direction worth going for?

Testing Mindset

At work, I’m helping a colleague in developing a material on ‘testing mindset’ which is to be shared to our fellow testers. Initially, we have this list of one-liners — catchphrases that we hope would stick like: Always ask the question why, Assume the product is broken, Trust but verify, etc.

I tried going over them one evening. And while they do emphasize some qualities that are important for testers — like being persistent, curious, attentive to detail, critical-minded — I felt that it was still lacking. Some qualities that I deem important were missing — like having good communication skills, being a team player, being technically skilled, striving for self-improvement, having pride and ownership of your work/craft. I came up with an 8-point bullet list describing qualities that I would like in my test team, until I cut myself short since I was working time-bound. And as I’ve taken a step back from the one-liners to come up with this incomplete list of desired qualities, I took another step back from these qualities and thought of what is the driving force behind the need for these qualities.

Why must testers have those qualities I’ve been enumerating?  Why must they keep those catchphrases in mind?

In pausing and taking a step back, I realize it’s all for making things better. I guess that’s my personal testing mindset: I try to make things better.

When I started testing, I thought it was my nitpicking skills and slight OC-ness that made me such a good fit for the job. I just loved finding bugs (and still do)! Over time and over many projects, I found that my purpose in the team isn’t just to find bugs. Essentially, it’s to try to make things better. By “things”, I don’t only mean the products under test. But also my working relationship with my team mates, work loads, schedules, processes, the team itself, and even myself.

  • Say, I try to expose the bugs and report them, so that they’d get fix. Product gets better.
  • I try to provide suggestions for improvement like a comment on usability. Product gets better. If fixed, that suggestion could cut short the work that the end-user has to do.
  • I try to report bugs clearly and concisely. Dev’s life and mine are better than it would have been if i had given a vague report. Dev will hopefully be able to replicate the bug so he won’t have to nag me for details.
  • I try to find shortcuts and tools, and share them with the team. Tester’s lives are better. Even just the little things that could help minimize the tedium of some of the tasks we do is something I appreciate.
  • I try to read up, and try to continue learning and improving myself. I (hopefully) get better. (Well, i try.)
  • I try to encourage knowledge sharing among team members. The team (hopefully) gets better.
  • Etc.

Yoda might disapprove, because after all he said “there is no try.” But still, we must persist. The things we do, the qualities we instill in ourselves, our values — these must all drive towards the betterment of our team, our product, and ourselves.