Quality Workshop

Quality Workshop

One sure way to liven up a meeting is to ask attendees for a definition of quality. My experience has been that this is most entertaining particularly if you have both devops and testing in the room.

It turns out that many people feel very passionate about Quality. It also turns out that many have different ideas on what quality actually is. Who knew? Diversity of ideas are not bad but it can impact a teams understanding of quality. The consequence is that it could possibly hinder a team’s ability to delivery quality product.

To help people understand the challenges around quality and to try clarify what quality might be in their context, I developed the following quality workshop.

Purpose of Quality Workshop

a) to get a working definition of quality that most people are comfortable
b) to outline a manifestation of quality in terms of quality attributes
c) to identify ways in which we can these quality attributes can be acted on

Who should attend

Depends on what your trying to achieve, but if you’re a team delivering product, I would suggest your key stakeholders come along. That may mean product owner, developers, testers, Ops. If you can get your business there too that’s a big plus.

Tools for Quality Workshop

  • A set of Quality Attributes (I’ve known these also to be called Quality Characteristics, or CFR’s – Cross Functional Requirements) printed out and placed on a wall.
  • PostItNotes (of course!)
  • some pens.

Process for Quality Workshop

  1. Ask people to write down on a post-it note their understanding of quality
  2. Place the definitions on the wall and ask people to read them (or read them out)
  3. Note the diversity (if it exists, it typically does). Bring up the subjectivity of quality and how difficult it is to agree on and quantify.
  4. Ask what the implications of this might be throughout the delivery lifecycle (e.g Design, Development, Ops)
  5. You can dot vote to try and get some sort of agreement on a working definition of quality*.

* My working definition of quality is the Jerry Weinberg one “Quality is value to some person”.  If no-one puts this definition up on the board, I like to add it as it encourages a discussion on the subjectivity of quality. 

If you’ve got this far without some major outburst or spat, congratulations! Next step is to try and parse what quality might look like.

  1. Ask people to read the quality attributes on the wall
  2. Ask them to dot vote 3 what they consider to be the most important quality attributes
  3. Collect the top 3 quality attributes and put them on a whiteboard
  4. Ask the group to identify 3 tasks for each particular quality attribute and to write them on a post-it note.*
  5. Place the post it notes on the whiteboard along side the quality attribute
  6. Run through the post-it notes. Discuss the viability of these and how to make these tasks happen.
  7. Visualise and share this information to the broader organisation.

* I avoid using the word ‘testing’ as I want people to think about other factors that influence quality. Testing is important, but testing helps us evaluate quality.  Unless its acted upon, it doesn’t help us build quality. Sometimes I like to prime people by providing a couple of non testing examples such as Code Reviews,  Monitoring and Security by Design. 

I’ve found these sessions generate a lot of discussion and can become quite heated.

I wouldn’t run a quality workshop all the time, but its really useful iron out at perhaps an epic or feature level, what quality might be and how a team can work together to implement that vision.

(Learn more on this topic by attending my Quality Matters Workshop)

Let me know how you get on!

Photo Attribute:  Quality by jason Taellious https://www.flickr.com/photos/dreamsjung/

Yu Han on what Software Testing means to me

Last year I had the honour of teaching post graduate students the subject of software testing at the University of Technology Sydney. I asked students if they would like to write a post on testing on my blog. Yu Han did, and here it is. 

The subject of Enterprise Software Testing demonstrated the existing and interesting aspects of testing. Those lectures and the project in Suncorp are unforgettable experiences.

During the classes, I felt that, most of time, I was acting like a child, playing different kinds of games and drawing pictures with colorful pens. But at the end, there would be some serious discussions, analyses and reporting always broke my sanity.

Those reflections make me realize that my actions and thoughts were more complicated than I could realise, which encouraged me to keep reviewing what I did and exploring how I thought. By doing that, I better understood the purpose behind those activities, and I am being able to sense the essence of what a good testing could be.

I am aware of that my mind prefers to use memory or imagination to fill the gap between the reality and the information once I have received. By linking their similarities, I can better understand the information. But as soon as I came to this stage, my thinking could stop going deeper. I may feel satisfied with the simple explanation, or could be distracted by other information which will draw my attention to something else. Then I may lose the chance to find out the depth meaning of the information or even misunderstand it.

Now I am interested in paying more attention on my flow of thinking. By questioning appeared ideas could be a way to slow it down, which may clarify the understanding or identify potential obstacles hiding behind. It could also be possible to bring back those ideas or considerations which were once brought up then been omitted or developed during the incredible thinking speed. Those ideas and considerations could be questionable as soon as I try to challenge them.

This could turn out that there are missing facts behind the imagination which I feel reasonable but not actually practical. Once I try to gain the evidence to support those ideas, I could realize they are incorrect or unproved. I may need to confirm them before I go further, especially when the goal is based on such ideas. Like those assumptions made in the Big-Track exercise, our group was needed to test our ideas of what other buttons can do, before we finally test how the targeted button works. We questioned our ideas but hard to move forward until we know which ones were correct. We came up with many hypothesis, but failed to prove them at once in practice. After we had some sort of understanding, we found out that we should confirm those assumptions before we continued, which led us to come up a debugging strategy to process our tests. It appears that questioning the information not only could encourage us to seek the truth but also could inspire us to develop our ideas. In this sense, critical thinking could help one to wisely seek information and to reorganize the information into knowledge for idea development.

This now also reminds me the concept of Exploratory Testing. In the previous example, we learned the mechanism, built the tests and proved the ideas all by interacting and exploring with the actual system. It seems that Exploratory Testing could be a natural way to build and run tests while we also need to learn about the system. By understanding how it works, we could come up with how to do the test and find bugs. However, it’s difficult to tell how much time I need to finish the task.

Thanks from the experience in Suncorp, I see the efficacy of Scripted Testing. Our team only performed the testing within several hours. We didn’t need to worry about anything else, knowing other parts of the system and even the depth of the targeted section. It did take a couple of weeks for us to learn the background information and to write the strategy and test scripts, but we could save most of the time if now we are going to test another section. It makes me feel that with a good development and a clear testing goal, the job can be easily done by writing and following test scripts. But it is true that I also feel difficult to understand the system by reading documents, having meetings and even watching demonstrations. It seems easier for me to concentrate and memorize such information when I can apply it, which means learning the system by actually using it.

I am inexperienced to conclude what a good testing is or which testing method is more superior, but running the system to get reliable information, questioning the information to dig insightful connections, finding actual evidence to support the thinking seem to be the correct manners in testing.

Thanks for this subject which let me feel the enjoyment of testing, and provided a real business environment to gain practical experience. I will be happy to get involved in such field and learn more in the future.

I’ll be teaching this subject at UTS again in February next year. The course is open to students and practitioners alike .

Software Testing at University of Technology Sydney

I’m lecturing at the University of Technology this year. I’ve revamped it the course from last year, placing more of an emphasis on the testers skill. This is essential if we are going to improve the quality of testing within organisations, and its why large organisations are excited about and want to work with UTS to make this course happen. As far as I’m aware, this is the first course in Australia of this kind.

The course is part online part tutorial. There is a big emphasis on learning by doing, with lots of opportunity to practice testing. There’s also an opportunity to work with companies, performing testing and reporting to real stakeholders, giving you a real opportunity to experience what software testing is about.

Here’s an overview of the course content:

Software Testing

This course teaches postgraduates the essential skills required in software testing. Learn how to test software in a way that offers stakeholders valuable and insightful information on the quality of the product by asking useful questions of people and the product you are testing.

To do that, you will learn the principles of context driven testing, critical thinking skills, test strategy, test planning, collaboration and communication and documentation.

Subject Objectives

  • On completion of this subject, the student will have the potential to:
  • Understand how context drives how software testing is performed
  • Think critically in software testing
  • Creating Test Strategies
  • Know how to model a product for the purposes of software testing
  • Become proficient in bug finding
  • Learn how to test effectively
  • Create test reports that provide relevant information to software testing stakeholders

On completion of this subject, the student will improve

  • Their understanding of what software testing is and how it relates to other roles in product development
  • Their ability to think critically by asking useful questions.

Teaching and learning strategies

This course is based on the principles of experiential learning with an emphasis of understanding through doing. Each topic will be taught through a practical exercise. Students will have the opportunity to work individually and in groups to complete assignments throughout the course. There will be a final group assessment where students will work in a company to create a test strategy, test software and develop a test report on the software tested. 

This course is aimed at postgraduate students who wish to learn how to test software in an applied and thoughtful way. Some degree of technical understanding is beneficial but not essential.

Content

This subject will cover the following topics:
1) Critical Thinking in Software Testing
2) Test Strategy: Modelling
3) Test Strategy: Coverage
4) Exploratory & Scripted Testing
5) Oracles and Bug Finding
6) Test Reports and Bug Reporting
7) Testability: Tools in Software Testing
8) Advanced Modelling – State Machines
9)  Communication with Stakeholders

Though the course is part of the post graduate program, they’ve agreed to allow people to take the module as a course in its own right. If your interested in taking part in this course,  go to the UTS website

Growing your own

So, I’m sitting here in my office on a beautiful  Australian spring day. The sun is shining brightly, the air is slightly fresh sending wafts of scent from the spring flowers. Its a good time to be alive and its a good time to be thinking of growth and change.

Potatoes in Spring

True to form, I trotted down to the local garden center and bought back a truck load of seeds and ideas on what I can do in the garden. I feel good this year, the potatoes are growing well, and I’ve managed to grow snow peas for the first time. Having invested a good amount of time in the garden, I feel content enough to sit in my office and allow myself to explore ideas on software testing and training.

And I’ve come up with the crazy idea, wonderful idea. For some time I’ve wanted to invest in online training in software testing. Its a model that I think will suit me well. I live far far away from the rest of the world and as much I as enjoy meeting new testers from around the globe, continuous travel is not for me.

To date, I’ve struggled with the concept of online learning. When I learn, I like to get my hands gritty, experience the stuff I’m wrestling with. With my online coaching, I make sure I include a task of some sort but thats one on one. Is it possible to offer online experiential learning to many people?

And then I read about these guys at Venture Lab. The courses are highly experiential & require collaboration to succeed. I sniffed a model that I could possibly work with.

But I’m taking it one step further. I want to make the students the designers of the course. Its the students who will work out what needs to be learned and how that will be achieved, and how they will know they achieved it. There will be some external structure, perhaps in the form of exercises, some philosophies to abide by, but basically, its the students who will dictate the content & the pace. In fact a lot of these ideas are from the coaching model James Bach & I have worked on holding onto the concept that learning requires real desire from the student, and to do that the student needs to dictate the learning (with the teacher offering space and direction to learn).

I see this courses as being a permission giver. We’re so drilled to think of learning as something we have to sign up for, like its impossible for us to learn outside a course. In this way, I’m helping overcome that little hurdle and get into some real meaty learning.

I’m very excited about these ideas and what will come of them. I’m not sure where they will lead and I guess that’s half the fun! If you want to join me on the crazy, wacky journey, feel free to contact me on Skype at charretts, or else add a comment below.

I’ll be adding information on this model as it progresses.

In pursuit of coaching excellence

When you coach a tester you’re working in an environment that dynamically changes as both the student and coach work through a coaching task.  If you look at the diagram below you can see all the different attributes that might change throughout a coaching session.

Coaching Space Bach & Charrett

Also, throughout the coaching session, the student and coach have a mental model of the coach and themselves. They constantly re-evaluate these models as the coaching session progresses.

The coaching I do (and James Bach does) requires that the coach has a testing syllabus that they use to help the student. This is different to life coaching which is non domain specific. Also, our coaching is lot more directive. The relationship between the coach and student is more coach->student than the traditional peer-to-peer relationship you find in life coaching. I see our coaching more like sports coaching, where a coach outside of a game, runs you through drills and challenging exercises to help you improve, often without realising your in need of improvement.

Personally, I’ve experienced good and not so good sports coaches. In my school days I was a bit of a field hockey superstar (I joined the grade A hockey team two years ahead of time, making me the youngest player). My coach however was incredibly overbearing, shouting and yelling at us and telling us how hopeless we were. I’m not sure if we were hopeless or not, but I know we failed to win many games and left the season completely demoralised to the point I gave up hockey for four years. I was persuaded to pick up hockey again and this time we had a different coach. She was quiet, never said too much and let me play my free style. One day she came up to me and be a quietly suggested I move back 10 metres to be able to better angle my shots ( I was in a midfield position). Very quickly I realised the power of such a move, I was in a better position to be able to control the game. I was 16 when that happened and I’ve never forgotten the power of that one statement.

For me that’s what coaching is about and its the type of coach I aspire to be. Its directive but the direction is about the skill and how the student is performing that skill. Where its non directional is that I challenge the student to think for themselves. It’s paradox at play but one that works.

Its also powerful because it’s watchful, ready to tap into what a student is doing at an appropriate time, using pressure and energy as tools to make direction powerful to the student (just like my second sports coach did). The aim is to help the student feel empowered to achieve more.

But the energy is not only in one way. The coach is getting energised by the coaching session too. I’m constantly evaluating my coaching and testing ability. I become a better coach by doing this. My aim is to become the best coach I can be.

I can only do this by coaching lots of testers, evaluating the transcripts and also working with colleagues who inspire and want to become better coaches too. I’ve been doing that this week with James Bach. We’ve been working on our book on coaching, identifying ways in which we coach, syndromes that both student and coaches encounter (we need to do more of this) and also finding ways to better evaluate coaching transcripts.

I think an aspiration of excellence in any field is such a worthy goal. I was watching Ron Ben Israel who is a master baker of sugar dessert flowers. You can see his passion the how is pursuit of excellence has led him to create masterpieces in sugar. Who would have thought that you could become excellent in such a small field?

Excellence I think is different to perfection. Perfection to me sounds more absolute, perhaps a little unrealistic. Excellence however, is within my grasp but also always one step ahead of me. I can be excellent at one point in time, but I can always strive to be more excellent. I think this is a worthy pursuit and a good use of my time and energy.

What are you in pursuit of?

(if you want a coaching session on software testing, please contact me on Skype. My id is charretts, please include the word “coaching request”. I offer free skype coaching to testers as long as you’re willing to allow your transcripts to be used in my research and perhaps in the upcoming book. This means the transcripts may be published, though I do conceal the second name and any potentially sensitive data).

Training Testers

I’m having a complete blast at the moment adding the finishing touches to my upcoming workshops in Dublin,Belfast and London.

The Dublin and Belfast Exploratory Workshops sold out in a couple of days but there are still some seats on the coaching testers workshop in London. This is shaping up to be a great workshop – its jam packed with exercises and I’m very excited to be able to share with other testers the approaches that James Bach & I have honed over the past years.

Then its off to the inaugural Lets Test Conference in Stockholm where I’ll be giving a talk on coaching testers.

The Lets-Test conference is shaping up to be a huge event and personally I’m thrilled to be making part of history by speaking there.

Hope to catch up with you at one of these events!

Please don’t hire me

If you want perfect software
If you want me to break your code
If you want to measure me by the number of test scripts I write
If you want me to tell you its ready to ship
If you want 100% of your product tested
If your looking for a tester to only “check” if things look ok
If you want your testers to mindlessly follow test scripts
If you want training on a test process
If you feel you can’t test without requirements

But if you’re looking for a tester who prides herself on the work she delivers, offers as much value to her clients as she can, and has a reputation for excellent testing, then yes, please hire me!

I’m available for coaching testers, training testers, consulting and testing.

Contact Details

The Buzz On Testing

We’re witnessing a revolution my dear comrades. The tide is turning on drone testing  The word is out. Skill Matters!

Classes such as Rapid Software Testing (developed by James Bach and Michael Bolton), Just in Time (Rob Sabourin) and Elizabeth Hendrikson Exploratory Testing classes are becoming more popular.  They say “Test is Dead” but I say “Bad Test is Dead”.  Hurrah!

Slowly the realisation that tester’s need skills as such as bug recognition, critical thinking, the art of questioning, influencing and developing strategies to help them effectively test software.

I have a theory that the majority of tester training has been focused on process and documentation because its easy to teach that way. Instead of having to working on skill you simply point to a structure and say “follow that”.

Its much more challenging to develop a tester’s skill.

Skilled people earn respect and rightly so. We admire a skilled musician – even if the music doesn’t appeal to us. Developing skill is hard work. It’s the accumulation of understanding, practice and application. This takes time and effort.

As someone who has worked in the industry for twenty years, I know how hard it can be to allocate time for training. We’re deadline orientated and rightly, a Test Manager’s goal is to complete ‘good enough’ testing with the time and resources available.

Coaching is the antidote to this. It allows the tester breathing space to reflect and work on their skill.

The coaching I perform focuses on developing skill through understanding & practice. It takes into account the testers skill base, context, aspirations and the challenges a tester is facing in their current work.

As opposed to arbitrary training, coaching complements a working environment, and often the problems worked on are those that exist at work.

In conjunction with James Bach, I’ve developed systematic approach to coaching a tester’s skill. This approach is a result of coaching hundreds of students, evaluating transcripts and refining the coaching model.

It’s this model that I will be teaching in my workshops on coaching testers. I’ll be holding a workshop in London on the 4th May, and one in Sydney on the 29th May (with James Bach).

Come and join me!

Where do I go from here?

In two months to this day, I will be giving my tutorial on Career Management for Software Testers at CAST 2011, in Seattle, USA.

Any self respecting software tester has asked themselves at least once in their career. “Where am I going with all this?” or “Is this role really where I want to be for the next x number of years”?

If you look around, its traditional* to think of a software testing career path as follows:

[quote style=”boxed”]At entry level as a Tester, you’ll primarily be performing test execution and acquiring niche skills to ensure systems meet performance standards required by the business and end-user.
Progressing to Test Analyst and then on to Senior Test Analyst, you’ll work on more complex scenarios, become involved in requirements analysis and test case design as well as execution. As a Test Analyst you’ll also be able to become involved in the specialist areas of Test Automation and Performance and as a Senior Test Analyst you’ll start taking responsibility for junior staff.  [/quote]

I think that’s a real shame that the role of  Test Manager is considered the pinnacle of your career. Why is it that in order to advance your career you have to be seen to me leading people?

So, I want to show testers that there are other career paths. In my tutorial we’re going to take a look at some of the typical roles testers in testing;  That of a tester specialist, a test manager and a test consultant.

But you won’t have to listen to me share about it, I got some fantastic software testers who have agreed to come in a share their own personal experiences. Karen Johnson (Test Consultant), Fiona Charles (Test Manager) and Markus Gärtner (Software Tester) will be available to discuss the pro’s and cons of their respective roles and understand what skillset you may need to get perform these roles.

I’m looking forward to giving this tutorial. Why not join me at CAST 2011? There are still some spots available.

*sourced from Planit website

How to write about software testing

Based on the number of requests I’ve had to write articles recently, there seems to be a big demand for testers who can write  well about software testing.  I’ve been asked by a few different companies to write articles on their behalf. Sometimes I’ve been asked to write posts for someones’s blog. I’ve only done that once with Quck Testing Tips which was a lot of fun. But generally, I find it hard enough to be inspired on my blog, let alone writing for some-one elses!

I thought putting down what helps me, might help a few testers out there. Writing well is a great skill for a tester to have. Think of all those persuasive bug reports you will be able to write.  Its also a great way to consolidate and  refine your thinking. (A great read on this topic is chapter is Maria Hammeren’s chapter entitled “writing as a method of reflection”  in the book Dialogue Skill and Tacit Knowledge.)

1) Write from the heart.

Personally, I’m only motivated to write when I have something I feel passionate about. Thats a good thing because you can create a bond with the audience. But it can be unhelpful too if other people are relying on you to write something.

Perhaps passionate is the wrong word, but  writing posts that resonate with you reach out in some way to your audience. Perhaps its the choice of words you use, I’m not sure, but your readers will pick up on your sincerity.

2) Be yourself

That is, don’t try and be the expert unless you have personal knowledge about what you are writing. In practical terms, avoid trying to sound more experienced than you are. Be honest about your experiences.If you do write on a topic (say automation) in a authorititive manner, you had better be able to back it up with fact and substance.

An excellent example of someone who does this  well is Michael Bolton. I believe in what he writes because he cites references and backs up his statement with examples and facts.

Nuff said.

3) Give yourself Permission

I have James Bach to thank for pointing this one out in a tweet*. Its so true.
Give yourself permission to write your thoughts. They do count and they are of value. Trust me on this one. A great example of some-one who does this is Lanette Creamer. I admire they way she is so forthright with her ideas.

*tweet info with nod to Michael Bolton for supplying it

[quote style=”boxed”]As a teacher this is key: Permission givers http://bit.ly/9qnyOt (thanks @jerryweinberg, for the link, and the permission)[/quote]

4) Proof Read

I tend to write posts 2 or 3 times before I let them loose on the world. Seriously. This is how I work.

a) Write down sentiment anyhow, anyway. Don’t worry about what it looks like
b) At this point I  feel free to explore, sometimes I stray from my originally intended topic to the point where I have a compeltely new article.
c) Read the post (try reading it aloud), and rewrite it, move paragraphs around to get a better flow. Cut out paragraphs that prevent a nice flow through the post
d) Take a break, do something different
e) Come back re-read the post, edit it. check for spelling then send it

A trap you can fall into though is over proofing. If you feel really strongly about something, and you leave it to the next day, you may chicken out and decide not the send it. Sometimes posting in the heat of the moment is a good idea. (Hey I never said writing was clear cut!)

5) Give credit

If you get an idea based on a book you read, share that. If something inspires you, share the link.

6) Be Original

No-one wants to hear trite stuff that parrotts what others say. Believe me. Make your content your own. If you are talking about a hot topic, try and put your own personal spin on it. What are your thoughts on it? Don’t parrott a thought leader, their stuff is far better than yours anyhow.

7) Be Precise

Often its a struggle to come up with a precise word that reflects exactly what you want to say. But please, don’t be lazy about it. The english language is diverse and there’s bound to be a word that aptly describes what you want. Use a thesaurus if you have to, or do what I do and wait until the right word comes to you. Your readers will appreciate it.

8 ) Why do you write?

Here is Bernard-Henry Levy on his view on writing. Great stuff. In particular what drives him to write is interesting:

[quote style=”boxed”]I am not writing to be loved. There is as much pleasure to being hated as being loved. I write in order to convince. In order to win. In order to change, even just a little, the world. I recently launched an appeal on Twitter supporting those attacking the official websites of the Tunisian regime. An intellectual calling for hacking doesn’t happen very frequently, and there is a stir. I am happy that it succeeded. I care about being heard.[/quote]

Whats your driver? Is it your ego, is it SEO ratings or is it something else? I started writing to get ratings for my website, but now I write for the pure joy of writing, because I get a kick out of crafting a beautiful piece of work.

9) Practise

The only way you are going to get any good at writing is by practicing.  How are you going to practice, well thats up to you, but writing a blog is a good start. Don’t aim for perfection, just get out there and write something. I will never forget my first blog post. It was the equivalent of hello world! (I wish I still had it, I would link it here)

Well, thats it. Nearly

There is one more thing.

If you are serious about writing skype me on charretts. I offer free coaching and I’m willing to include writing in that scope, as long as its to do with testing.

[By the way, when I’m talking about writing, its mostly in the context  of articles, blogs etc.]