Categories
benefits coaching

Coaching your Test Team

I’ve implemented coaching within my test team. To me, this is a natural progression from the coaching work I’ve been doing on Skype.
Its early days yet, but I can already see the power of this approach to upskilling testers in a team environment.

I’ve been working on implementing coaching into my team for a while now. I was a little cautious on how to approach coaching in a work environment because the dynamics are a little different.

When I launched the program within the team I made it clear that:

1) Coaching was optional, its not mandatory .
I made this clear because its better that the tester owns the learning. I want them to feel they are in control of their learning. No-one is forcing you to be coached.

2) Coaching is not linked to performance reviews
I know this occurs in some organisations, but for my purposes I wanted to clearly distinguish between the two, so testers could feel they could discuss topics freely.

3) Coaching is focused on tester skill.
I wanted to make it clear I wasn’t a counsellor. This coaching was focused on becoming better tester’s improving skill. What the tester wants to learn and improve is up to them.

On the logistics side, I’ve booked a 1 hour session on a monthly basis for each tester. Initially, I blanched at putting this amount of time aside, but after some coaching, I’m convinced it’s worthwhile.

Its given me an opportunity to have a chat with testers I’m sometimes not fully engaged with. This is especially the case if a team lead is involved and I’m a bit distant from the tester. It helps me understand how the tester is doing, wether they are enjoying work.

It’s given me an insight into what tester’s want to learn about. I’m amazed how practical the questions are. In fact, it sometimes makes coaching a litter harder.
The challenge in coaching is not to answer questions but help them discover the solution for themselves.

I’ve adapted some of the approaches I use for Skype coaching. For example, I use tasks to help a tester understand the dynamics or complexity of a problem that seems simple.

An example of this was one tester who was frustrated at the lack of test procedures within the organisation. She felt sometimes she simply didn’t know if what she was looking at was the right or wrong answer.

I can empathise with this, especially, when your a young  tester working on a complex and technically challenging product. The simple answer here would have been to suggest she speak to a senior tester or stakeholder to find out more information. But I felt this wasn’t the real problem here. Even if you do have procedures, that doesn’t mean they will provide you with the full information. What happens if something occurred that was outside the procedure. Then what? Does it get ignored?

We ran through the calculator exercise, a challenge that Mr James Bach kindly allows me to use in my coaching sessions.

This really helped her understand the complexities of testing software and how we can’t rely solely on the information provided to us. Even then our job is remain skeptical of the information we are given. The tester had many questions and the hour flew by quickly. I summarised up what we had gone through, and suggested some further reading on some areas.

Time will tell if the coaching is really effective, but I left the coaching session with a clear sense of how powerful coaching an be in this environment . I see this type of coaching in testing teams becoming an effective tool in helping testers self learn.

 

Categories
benefits BlogRoll tools

Bug Tracking Tools Explained

Like it or not, all software has bugs.You may not know about them but they are there..lurking in the darkness, ready trip up one of your innocent user who has just gone and purchased your software.
That’s why you employ a software tester. A software tester’s job is to find as many of the bugs and report them to you and the rest of the team before they can do untold damage to you and  your software’s reputation.

You can report bugs in as many ways as there are to communicate. You can write the bugs up in an email, on a piece of paper, in a spreadsheet (see my previous post on spreadsheets). You can even directly speak to the relevant person and directly show them the bug.

Or you can use a bug tracking tool.

So why do you need to track a software bug and whats so great about a bug tracking tool?

Software Bug Workflow

Well, just as a normal bug goes through several stages in its life such as egg, nymph, larvae and finally adult, so to does a software bug go through its own lifecycle or workflow. Redmine the opensource software I use as my online bug tracking tool,  uses the word workflow so I’ll use that term in this post.

Typically a simple bug workflow goes as follows:

Bug WorkFlow

Where:

new is when a tester creates a bug report

open is when a developer  accepts the bug report as valid

fixed is when a developer indicates that the bug is fixed

tested is when a tester indicates the bug has been tested

closed is when a tester accepts the bug has been fixed and the report is now closed

This is a very simple workflow. Alternatives to the workflow can happen when for example,  bugs are rejected by the developer  or a bug fails test and the tester places the bug back to open state. In fact, it can get quite complicated if you let it.

Most bug tracking tools will let you modify or create your own stages and workflows, but if your new to the concept of a bug tracking tool, its better to select a simple existing workflow and use that for a while to get used to what works for you. Redmine, lets you chose a preexisting work-flow.

A bug tracking tool then allows a tester to create a bug report and monitor its progress as it goes through its workflow

So whats the big fuss? Why not just use a spreadsheet or email?

I’ve personally benefited a lot from bug tracking tools. Here are some ways they’ve helped me.

Benefits of a bug tracking tool

1) Its easy to keep track of one bug, but keeping track of many bugs is hard work. A tool helps you easily find out what bugs are still open, fixed, closed. Bug tracking tools normally allow you to sort and filter your bugs and create reports on the bugs.

2) You can track other stuff about bugs, such as how important they are and who is fixing them. This can help you prioritise which bugs are important and require urgent fixing.

3) You can start seeing clusters of bugs which indicates there may be underlying issues in parts of the code

4) Lots of people can see the status of the bugs, not just the tester and the developer. The overall bug status can be quickly reviewed by many avoiding nasty surprise syndrome (NSS) at the end of development/testing.

5) Sometimes not all bugs are fixed in the current release but will be fixed and tested in a future release. This means long after software release the bugs still need to kept open and tracked. A bug tracking tool ensures that these bugs are not overlooked in the future.

6) A bug tracking tool can centralise information. Often a bug tracking tool can be used to track new features as well as issues and can act as a document repository. Redmine offers many additional features such as document repository and wiki.

7) A bug tracking tool can improve productivity by increasing bug awareness and responsiveness. It is also handy when a project is scattered geographically and works across different time zones.

As I’ve mentioned in previous posts, there are many open source options bug tracking tools out there, so if budget is an issue there is no need to spend a lot of money on an top end commercial tool.

And of course, a tool is only as good as the developer and tester using it and will fail miserably if no one is willing to use it, so perhaps if your thinking of adding such a tool to your testing toolbox, speak to the rest of your team first to find out what they are looking for in a tool.

Categories
benefits BlogRoll software testing process

Celebrate your wins in software testing

Too often software testers are the bearers of bad news:
“There is a major defect that will stop us rolling out to production on time”

“We have to increase the budget to ensure that the system is properly tested”

The more I roll software testing concepts to companies, the more I’ve realised the importance of celebrating your wins.

If you don’t who else will?

Small wins are just as important as big ones. I don’t wait for a software testing process to have all the bells and whistles of metrics before I start shouting about the great benefits that testing has provided.

For example; I was rolling out a software testing process that was new to the client.  At every meeting (in particular the senior ones), I declared:

“In addition to completing the system testing, we found seven existing production defects”

I wanted people to know that we have good testers in their company, and also that they were providing a good service.

As testers I think we need to be smarter about how we promote our services.

 

Categories
benefits BlogRoll business cross browser testing template

Getting ROI from your freelance software tester

Development houses have a right to expect a lot from a freelance tester.
Firstly, without the endless budget of some larger companies, they can ill afford time and money caused by improper scoping and testing.

Secondly, they have recognised the advantage of having an independent review of the product and that in its own right deserves to be appreciated.

In order to get the best return on investment from their tester, communication of priorities and expectations must be passed onto the tester. With knowledge, testers can focus their effort on what developer priorities instead of what they suspect is their priorities.

I’ve created a short questionnaire to clarify to developers what a tester needs. It contains some of these areas:

1) What do you as a developer value most? Consistency, Quality, Breadth of testing,
2) What specifically do you want tested in web testing?
3) What technology are you using?
4) What testing has already been performed?
5) Do you have any specs of any sort?
6) Is this new software, or updated software
7) What sort of feedback do you want? Defect reports, results?

Note: These questions have been created with web testing in mind, but can be changed for any type of testing

Here’s an example of what I use

Customer survey (pdf reader required)

Having this information upfront helps everyone because:
1) There is an agreed understanding of the scope of testing
2) Quotes can be validated through the questionnaire
3) More upfront information maximises your return on investment allowing focus on customer driven testing
4) It provides an insight into the software testing process

The above information is used to create tests in a spreadsheet which I use to track defects and results.

See example:Software Testing Template(pdf reader required)

With this document you have the benefit of evidence of testing which can be useful for contractual purposes. It also assists in future upgrades, streamlining the next round of testing.

Like what your read? Please feel free to use the ideas I have here. Do us a favour though, leave a comment, or digg the post. Thanks !!

Categories
benefits BlogRoll business

Benefits of Software Testing

Looking at the benefits of software testing from a business perspective can be quite a challenge if your a blue-hat, IT type of person as I am. To sell testing effectively though, its helpful to view testing from the perspective of the person who ultimately gets to make the decisions. So here goes!The way I see it, business is about Profit and Loss. So I’ve split up business as follows ;
1) Business want make money through sales
2) Business want cost cutting to improve the profit margin

Business want to sell things

If business is about selling products or services, how in business terms can software testing help sell a product? I’ve come up with the following possibilities;
1) Software testing discovers if critical functionality works. This is helpful to know when your trying to sell something (I’m assuming!)
2) Software testing makes sure that your product doesn’t negatively affect interacting systems. I suspect this helps encourage repeat sales.
2) It provides tangible results which can be used to sell the product. For example, you can use your proven high performance as a selling point
3) It demonstrates delivery from a contractual perspective through acceptance testing
4) It gives confidence to those selling the product. There is added benefit in knowing the product your selling works.
5) Certification can provide business a selling point. If your system conforms to a technical standard, it may help your product to be perceived as reliable.

Business want to save money

How can testing help save a company money?
1) Early fault detection reduces the cost of fault detection. The earlier a defect is found, the less development rework and re-test is required, minimising its implementation cost. The Baziuk Study (1995) estimates the relative cost to repair a defect found in Operations to be between 470 – 880 times the amount found in the Requirements phase of the lifecycle*
2)It delivers efficiencies in the software development process through metrics such as root cause analysis . These detect possible areas of improvement for software development.
3) Software testing is the source of information such as defect reports, metrics and results that assist IT perform their roles efficiently. Project managers rely on metrics to report on progress, operations, on tangible results to extrapolate future hardware requirements and developers on defect reports to fix their code.

As is plainly obvious, I do not a heavy background in business, so I’d be most interested in comments from those who have! And testers, how have you helped your company save money through testing?

*National Institute of Standards and Technology, May 2002

<a href="http://technorati.com/tag/software+testing" mce_href="http://technorati.com/tag/software+testing" rel="tag"> software testing