Tag Archives: thinking

Automated Functional Testing – A Test Activity?

If you are a functional test automation expert then times are good. There’s big bucks to be made in the contracting game, companies are desperate for candidates to ‘automate everything’ and to get to this oddly perceived test automation nirvana that those who are either mis-informed or have hidden agenda’s seem to feel fit to promote.

This has made me think. Primarily about how we have got to this state? Is it because, as the testing community, we have wanted to own test automation? Is it because those outside of the test community see test automation as less important than the production code that it tests? Is it that we just built up an expertise and then protected it just for the money?

Some might say that what has actually happened is that we now have a situation where second rate developers now have a great way to stay in the development game. There is a danger, in the apparent supply-side crisis that we find the industry in, that companies merely employ anyone who says they know something about test automation, without doing the same due diligence that one would do for a development position. This would be a mistake.

In my mind there is a solution to all these problems, and that solution comes from treating test automation just like production code. And that means primarily using developers to write it. Sure, you may choose to have testers involved as well, where they have the skills and expertise, but let’s not try and force skills on people who don’t want them, and let’s not accept second rate people just because they can ‘do some test automation’. One advantage to using developers is that test automation becomes a team thing, and you are less likely to spend time playing catch-up when development slips. One downside; it’s going to look like the team has slowed down. Believe me, it hasn’t. It’s just got more effective, and is playing to the right skill-sets.

Don’t believe me? 🙂 Here’s a couple more examples from Rob Lambert and Amy Phillips which show where continuous or more frequent delivery has been successfully rolled out at New Voice Media and Songkick. The common thread – in both cases the test automation is a development activity.

Testing As An Activity

Recently I’ve started to come to the belief that we can solve a lot of our problems if we just start to think differently about testing. If instead of thinking about software testing only as a distinct discipline, we instead to start to think about it as an activity. After all, testing is just that, an activity. It’s something we do. Something we’d love others to do more. James Bach likes to define software testing as a performance, and what is a performance without some activity to perform?

Once we start to think of testing as an activity then it matter less that it’s not always testers who do it. Everyone in a team should test, it’s just that the tester role can be where the expertise lies, and where the test coaching comes from.

Think of all the problems we can solve if we think like this.

Further Notes From A Testers Hierarchy of Needs – pt1

I’ve written about Maslow and links between humanistic psychology and software testing a couple of times before. I presented ‘A Testers Hierarchy of Needs’ at TestBash 2.0. This post gives a bit more information and material to support the slides which you can find on this page.

The idea is that the headings match the slides, in order to make things easy to follow. It’s split into two posts – the first talks about humanistic psychology and Maslow. The second will focus on how we can adapt this to software testing.

Abraham Maslow, Humanistic Psychology and Testing

Abraham Harold Maslow was an American psychologist who died in 1970. He was best known for creating Maslow’s hierarchy of needs, a theory of psychological health predicated on fulfilling innate human needs in priority, culminating in self-actualization. He stressed the importance of focusing on the positive qualities in people, as opposed to treating them as a “bag of symptoms”.

The needs of humans, in their most basic form

Humanistic Psychology focuses on the needs of human’s in their most basic forms. It focuses on the positive qualities in people in a positive way and is based upon observations of humans’ innate curiosity – innate curiosity, something useful for testing I’d argue. Consider the classic “Testing is questioning a product in order to evaluate it” for example.

Maslow studied what he called exemplary people such as Albert Einstein,  rather than mentally ill or neurotic people. He also  studied the healthiest 1% of the college student population.

Humanistic theories of 
self-actualization

Humanistic psychology is a perspective which rose to prominence in the mid-20th century in response to Sigmund Freud’s psychoanalytic theory. Maslow once commented: “It is as if Freud supplied us the sick half of psychology and we must now fill it out with the healthy half”. Humanistic psychologists believe that every person has a strong desire to realize his or her potential, to reach a level of “self-actualization”

It holds that people are inherently good.

Qualities of 
self-actualizing people

Maslow studied what he called self-actualised people. He realized that all the individuals he studied had similar personality traits. All were “reality centered,” able to differentiate what was fraudulent from what was genuine. We do that as testers. They were also “problem centered,” meaning that those treated life’s difficulties as problems that demanded solutions. We do that as testers. These individuals also were comfortable being alone and had healthy personal relationships. Are we like that as testers? 🙂

Self-actualizing people tend to focus on problems outside themselves; have a clear sense of what is true and what is false; and are spontaneous and creative..

The Theory of Needs

needs

The theory of human needs can be expressed or ordered in a pre-potent hierarchy—a pressing need would need to be mostly satisfied before someone would give their attention to the next highest need. Maslow described human needs as being relatively fluid—with many needs being present in a person simultaneously.

1) At the bottom of the hierarchy are the “Basic needs or Physiological needs” of a human being: food, water, sleep and sex.

2) The next level is “Safety Needs: Security, Order, and Stability.” These two steps are important to the physical survival of the person.

3) The third level of need is “Love and Belonging,” which are psychological needs.

4) The fourth level is achieved when individuals feel comfortable with what they have accomplished. This is the “Esteem” level, the need to be competent and recognized, such as through status and level of success.

5) At the top of the pyramid, “Need for Self-actualization,” occurs when individuals reach a state of harmony and understanding because they are engaged in achieving their full potential.

Once a person has reached the self-actualization state they focus on themselves and try to build their own image. They may look at this in terms of feelings such as self-confidence or by accomplishing a set goal.

Usually people in developed countries focus on the third and fourth level of needs while those in less developed worlds focus on the first and second.

Meta-motivation

Maslow used the term metamotivation to describe self actualized people who are driven by innate forces beyond their basic needs, so that they may explore and reach their full human potential. To become better people. Or better Testers.

But how does this fit in with Software Testing? We’ll find out more in part 2.

Presenting at TestBash – A Testers Hierarchy of Needs

TestBash

I was fortunate enough to get the opportunity to speak at TestBash 2.0 recently. TestBash is one of the best software testing conferences, and this year it has a great line-up of speakers: James Bach, Seth Eliot, Matt Archer, Amy Phillips, me, Lisa Crispin, Huib Schoots, Bill Matthews and Tony Bruce.

Dan Ashby has written a great blog post about the presentations themselves, and I’ll leave it to Dan to explain what everything was about. I’ll do that for two reasons, one because he does a great job of explaining it, and two, because, as a presenter, I wasn’t always watching what was going on 🙂

My Presentation

I presented A Testers Hierarchy of Needs, which took ideas from Humanistic Psychology and the work of Abraham Maslow, and applied these to software testing, and the software testers. It stemmed from a blog post that I wrote last year, which seemed to be well received, and attracted a fair few comments.

I’ve published the slides on this site so do take a look  – A Testers Hierarchy of Needs.

I’m also writing a further post, which will go into a bit more detail about my presentation, and the links between humanistic psychology, Maslow, and software testing so do look out for that.

Starting a New Job in Testing

Image

Thing have been a bit quiet around here. Maybe you’ve noticed it. Maybe you’ve only came to this blog for the first time, from a link from Google or Bing, in which case welcome, and do note the gap in posts. I’ve been busy.

Primarily this has been because I’ve been searching for, and then settling into, a new job in a new company. Starting a new job isn’t easy, be it in testing or any other field, and it’s what you do in the first few months in a new company that can really affect how the rest of your time there goes. Those relationships you make early on, and how you are seen by others matter. It matters a lot.

So, while things are fresh in my mind, here’s some handy hints on what you should consider when starting somewhere new. I’ll be sharing further articles about recruitment, job searching and C.V.’s over the forthcoming months.

All presented with a software testing view.

Talk to people

Probably the most important thing you can do when you start, especially in a testing role. Being a good communicator, with the ability to get on with as many people as possible is very important as a tester. Spend your time searching out the important people, introduce yourself, and find out more about them. Ask them about the company, ask them about how you can work together, and find out what they think about how the company does testing. Those relationships you make early on affect how people see you for a long time. Sure, you won’t be able to remember all their names, but make sure they remember yours. And yes, this does mean talking to more than just testers 🙂

 

Ask Questions. A lot of questions

Testing is all about questioning a product in order to evaluate it, right? Take the same approach when you start a new job. Ask everything you can think of, no question is too stupid to ask if you don’t know the answer. Often, so much information in a company, is un-documented, and you want to make sure that you can understand the bigger picture, as well as just knowing enough to do your role. As testers we need as broad a view as possible in order to work effectively so make sure that you learn by questioning, and continue to do so. It takes time to settle into a new job but the more questions you ask then the quicker you should be able to feel like you understand company and your role within it. Don’t sit there, feeling blocked because you don’t feel like you can ask something.

 

Be nice

First impressions count. When you first start you meet a lot of people. Every time you meet someone new then that’s a new first impression. Always remember to be nice. Even if you are really an evil tester 🙂

 

Consider what you are bring to the company

They decided to employ you, there must be a reason, right? 🙂 Remember that you have good, and relevant, experience that you can bring. It’s easy when you first start, to just spend your time learning the company and your new role. But do not forget that your experience from outside the company could be really useful. Maybe your old company did it’s test automation a particular way or maybe you can see the new company works in a way you helped improve in an old role. It’s often new starters who are in the best position to see improvement areas. Don’t just accept that ‘this is the way its done round here’, and don’t feel afraid to speak up.

 

Ask for feedback

It can be really easy when you start somewhere new to just go into things head down and try and pick everything up at once. Remember that you need to pause and ask for feedback. Make sure that you question your own understanding of things, as you learn them, and regularly ask for feedback from those you work with.

 

Don’t forget to continue focusing outwards as well

When you start at a new company it can be really easy to spend all your time learning your new role. After all, there is a lot to pick up and a lot to learn. It is tiring, but don’t forget what you did before. Since you are reading this then I assume you read software testing blogs at least. Keep active in the testing community and keep learning. That way you can bring not only new ideas from your previous job, but also new ideas from the whole testing community.

 

Enjoy it

It takes a lot of effort when you start a new job. There is a lot to learn and a lot of people to meet. Focus on what attracted you to the new job and don’t forget to enjoy it 🙂

 

I’ll be speaking at TestBash 2.0

 

Some exciting news – I’ll be speaking about “A Tester’s Hierarchy of Needs” at TestBash 2.0 which is being held in Brighton, in the UK, on Friday 22nd March 2013. This will be the first time I’ve spoken at the event, and looking at the others speakers, then I’ll be certainly in very good company. James Bach will be giving the keynote.

You can find out a lot more about TestBash 2.0 at the event website, including how to get Super Early Bird tickets.

Hope to see you there.

A Testers Hierarchy of Needs

As part of my role I manage testers and also those involved in delivery operations. This means thinking not only about testing and test techniques, but also about person management, and the tools and techniques that a good manager uses in order to have a happy and productive team. These two areas should not, of course, be treated in isolation since, in order to have a successful test team, it’s the managers job to ensure that the two areas fit well together. If this can be done in as seamless as possible a way, maybe even without the team members even being aware of it, then my experience tells me that you can hit that sweet spot where the team is technically excellent as well as being the sort of team that testers want to work in, and are proud to work in.

I’ve studied a lot of theories of management in the past but the one that I keep coming back to again and again is Maslow’s Hierarchy of Needs. At it’s simplest it seeks to explain the needs of human’s in their most basic form, expressed hierarchically in order of those needs.

So, for example, the theory puts forward the hypothesis that it is most important (and therefore at the bottom of the pyramid) that human’s experience a need for food, water, etc. Safety needs come next, followed by a need for belonging, and so on.

As a manager, keeping this simple theory in mind can really help. I’ve found numerous occasions in the past where it has helped me understand team members actions, and to help ensure the team is working effectively together.

But it has also got my thinking about how one might go about applying Maslow’s Theory of Needs to Testing. More specifically, how a tester in a team or project might experience and visualise those needs, as reflected by their status within the team. This lead me to produce this:

Testers Hierarchy of Needs

Test Mastery is a place I see the respected, happy tester sitting. Probably people like you, who interact and are involved with the software testing community, who self-learn and who are able to articulate the need for testing effectively.

This is just the start of the theory. I’m sure, as a community we can add more to this. What would you add to the different levels and why? Leave a comment below.

 

 

Did You Ever Stop to Think and Forget to Start Again?

One of my favourite quotes comes from Winnie-the-Pooh.

“Did You Ever Stop to Think and Forget to Start Again?”

Sometimes we all over analyse. Especially in software testing, sometimes we just look too deep, we get lost in the details and we fail to see the big picture. We stop. Sometimes we forget to restart, or when we do restart then the time has past. Have you ever spent a day trying to reproduce a bug, only to find that in the meantime the next stable build had corrected the failure anyway? Have you ever got so side-tracked, maybe installing that piece of software, that the point of installing it in the first place becomes lost?

Focus is important in testing but equally important is timely focus. The importance of the service that software testing provides should not be overlooked, but also we should not be naive enough to assume that others will wait for the service. Time moves on, projects move on, and people move on. Quickly. So do stop to think, but always quickly start again.