Professional Documents
Culture Documents
Around The World With 80 Software Testers
Around The World With 80 Software Testers
Around The World With 80 Software Testers
Software Testers
Viv Richards
This book is for sale at
http://leanpub.com/AroundTheWorldWith80SoftwareTesters
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Argentina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Big shots are also humans . . . . . . . . . . . . . . . . . . 3
Bulgaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Keys to effectiveness as a software tester . . . . . . . . . 6
Canada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Know your simple tools . . . . . . . . . . . . . . . . . . . 10
Egypt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
The power of trust and questions in testing . . . . . . . . 14
England, UK . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Take responsibility for our testing . . . . . . . . . . . . . 18
What I have learned (the hard way) in testing and in life 21
The day I fell in love with testing . . . . . . . . . . . . . 24
Finland . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Fighting Against Automation Isn’t Doing Anyone a Favor 28
France . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Testing is about sharing . . . . . . . . . . . . . . . . . . . 35
Can Software Testing be a calling? . . . . . . . . . . . . . 37
Germany . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
CONTENTS
Greece . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Be an Asker and Explorer. Be a Tester. . . . . . . . . . . . 68
Hungary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Grow by helping others grow - like a badass. . . . . . . . 72
India . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
From a newborn to a grown-up in QA world . . . . . . . 76
Japan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Reaching “Zero Customer Dissatisfaction” . . . . . . . . 83
It all began with “Space” . . . . . . . . . . . . . . . . . . . 87
Lithuania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Power in authenticity: Being yourself is your superpower 93
Netherlands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
A glimmer of hope . . . . . . . . . . . . . . . . . . . . . . 97
Romania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Letter to my fellow tester . . . . . . . . . . . . . . . . . . 112
Scotland, UK . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Don’t limit yourself - focus on growth . . . . . . . . . . . 116
CONTENTS
Serbia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
#10yearschallenge - what I wish I knew before . . . . . . 120
Singapore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Quality is a Team Responsibility . . . . . . . . . . . . . . 124
Spain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
My software testing journey and involvement with the
testing community . . . . . . . . . . . . . . . . . . 133
Sweden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Journey from dev to tester . . . . . . . . . . . . . . . . . . 140
Tunisia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Starting your journey as a tester . . . . . . . . . . . . . . 145
Turkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
A drawing compass, a multi-sport athlete, and a multi-
skilled tester . . . . . . . . . . . . . . . . . . . . . . 152
A Collection of Soft Skills for a Tester . . . . . . . . . . . 155
Ukraine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Making test automation better . . . . . . . . . . . . . . . 160
Wales, UK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
The art of critical thinking . . . . . . . . . . . . . . . . . 174
You can do it! . . . . . . . . . . . . . . . . . . . . . . . . . 181
Preface
Around the World with 80 Software Testers draws upon the knowl-
edge and experience from both experts and new voices from around
the world involved in software testing.
The contributions within this book are ordered alphabetically by
country. Neither each chapter nor country is ordered with the
intention that there is a natural flow throughout the book. This
is a book created both by and for the software testing community.
This book contains reflections and thoughts based on many peoples
own personal experiences, some of which you may agree with, and
others you may well not. There is no overarching narrative, this
book is for you to absorb, link what you read together, evaluating
it based upon your own meaning, knowledge and experience.
This book will continue to evolve. When new contributions are
received they will be reviewed, added to the book and then a new
version of this book will be published. This process will continue
until the book contains 80 software testers from all around the
world.
Thank you to everybody who took the time to contribute to this
book as well as give feedback on each of the released versions of
the book.
I hope you enjoy reading this book as much as I have bringing it all
together.
Argentina
Argentina 3
• literacy,
• the ability to prepare and deliver written and verbal reports,
• the ability to communicate effectively,
• and so on.
Good communication
A tester must be frank enough to ask questions to find out what
needs to be done. A good tester can’t afford to be shy. They
Bulgaria 7
Self-education
The software engineering field is relatively new (compared with
most other forms of engineering) and new technologies appear with
a speed that would astonish those not familiar with software.
Great software testers must have an ingrained propensity to be
ongoing learners and consistently spend part of every week, and
maybe even part of every day, dedicated to upgrading their skill
sets.
(the research was performed a couple years ago that suggested that
a software engineer’s “skill set half-life” is about 18 months —
Bulgaria 8
Team Player
Flow Charts
https://en.wikipedia.org/wiki/Flowchart
Process flow: My favorite way to visualize a new feature is using
a flow chart to map a feature especially when the whole team
is involved. Once you have it visualized, it is much easier to see
how to break it up into small testable stories. You start with the
simplest thing that could possibly work, and then add complexity
with each new story until you have the feature complete. Each of
these flows becomes scenarios you can test. (You can read more in
Agile Testing: A Practical Guide for Testers and Agile Teams)
Data flow: Another way to look at a story or feature is to examine
how the data flows. Where does it come from, where does it end
up, and how did it get there? Did it transform along the way? It
gives you clues about what kinds of data you might need, as well
as where to test.
Relationship Diagrams
There are many very specific types of diagrams that show relation-
ships between objects/entities. Here, I’ll talk about only two.
Context diagram: A high level context diagram shows the rela-
tionships and system interfaces within your application or system.
Does it talk to other systems, or to people or a database? Does
it interact with the cloud? What kinds of messages does it pass
between modules? Assumptions can be easily dispelled and lets the
team see the system as a whole.
State diagrams: This tool shows the different states of an object
and the transitions it makes to get from one state to another. What
triggers the change? These states and transitions are great places to
tests.
Canada 12
Affinity Diagrams
https://en.wikipedia.org/wiki/Affinity_diagram
There are many uses for this tool which is a mechanism for
categorization of ideas. Individuals write ideas or topics – one per
sticky note, and then put them on a wall or table and look for
patterns. For example, I use it during retrospectives to group “like”
ideas together to make it simpler to vote about which problem we
want to solve first. I also use it after brainstorming ideas during a
workshop to decide what is the most important topic.
Three other simple tools I still use, and are easy to learn but you
can read about them yourself are:
1. Truth tables¹
2. Decision trees²
3. Check list³
Accept that there is a risk with change and work on reducing the
risk by understanding the change and asking more questions. Next
time you are on a project team up with the developer and use trust,
curiosity, and questions to achieve your goal.
England, UK
England, UK 18
first what “the real world” was like. But getting into computing, as
well as testing and automation, gave me an amazing and wonderful
career, totally unexpected, and much better. Somebody up there
had a much better plan for my life than I did!
shouldn’t know - the details. That’s why it’s important how you
communicate with managers!
you can use, what techniques you know, or what latest technology
you understand, but the Tester’s Mindset - questioning everything,
thinking what could go wrong. What is more important in life is
not the technical side, it is your relationships with people.
Looking back over 50 years in software testing, what is most
important to me is that I have been able to help people (through
training, consultancy and books), and the relationships I have with
the people I have known over the years. I wish you an fulfilling and
possibly unexpected career, working with wonderful people.
One of the things I love about being a Software testing trainer and
consultant is hearing about how people ‘fell’ into testing. Through
my travels, I have met testers who used to be physicists, nurses,
England, UK 25
Navy engineers, BBQ salesmen and musicians. It’s more the norm
that testers fell into testing than actually taking an academic course
in testing! I’m no different. As I’ve often joked in the past, I wasn’t
supposed to become a tester, I was supposed to become a rock star!
As I was finishing up at university studying music, I had a plan. Get
a job testing games and work my way into the industry so that I
could connect with others and end up writing music for games. Not
the most detailed of plans, and one that was proving to be harder to
implement than I first thought. I struggled to find work as a games
tester as I lacked testing experience, so I took another direction and
started my career as a tester by testing music software. So the plan
was on track, get some experience as a tester, move into games
testing, become a composer. Simple!
However, it all changed one day when I was working in that role
as a junior tester when I was tasked with finding a particularly
thorny bug. The software that I was tasked with testing was a music
notation application, like a word processor for music, that a lot of
respected composers used. One day, we received word from one
of these composers that when they played back their score in our
software, the whole application crashed! Something in the notation
was causing an issue. So the challenge was set and the whole team
was set to discover the issue (this was a high priority fix): find out
what was causing the crash, reproduce the bug. All well and good,
until we were given the score which contained 20 instruments and
was over 10 pages long!
It was overwhelming, to begin with, but I found very quickly that
I got into an analytical flow. Slowly testing the score in different
ways, removing elements and adding them back in to reproduce
the score. After a half-hour, I had managed to discover the source of
the crash. A trill, one of the smallest pieces of notation you can find
in a score was causing the crash as our player couldn’t process it
for playback, thus causing the crash. I was ecstatic! I had found the
elusive bug, and not only that I got my extremely positive feedback
from our developers.
England, UK 26
That was the moment I fell in love with testing. I got to experience
everything that makes testing so fun and rewarding. The desire to
learn how the crash worked, the analysis to discover the problem,
the feeling of being a valued part of my team and earning the
respect of my peers, and helping an end-user with their problem.
Testing is such a varied and interesting role, and that day I got a
taste of all of it all for the first time! I was hooked, and I’ve not
looked back since then. I love testing as much now as I did that day
I found my favourite bug.
Finland
Finland 28
With 25 happy testing years behind me, I can’t help but to reflect
on what I learned about testing after spending two years as an
engineering manager. I learned that while a testers work never
drove me to boring and stupid clicking work, the manager work
surely did - there was little space of variation you can introduce to
approving people’s hour reports and still get the outcome the people
need.
Testing is about variation. Identifying things that could be different,
and intentionally making them different. Keeping your eyes open
when you do so, and when keeping at it, enjoying the gift of
serendipity - lucky accident that brings you the observation of
Finland 29
things that were broken even you did not anticipate! Variation
shows as fast forwarding a year of production, all the different
kinds of uses and scenarios to the short timeframe you spend on
testing. Users stumble on bugs, testers simulate the masses to find
bugs intentionally.
With the love towards spending time with the application, I would
always find the reasons why I did not have time to automate some
of the testing I was doing. After all, I wasn’t repeating the same
things, and automation would force flows that are repeatable. For a
long time, I did not work on implementing automation, but I always
had an opinion that it wasn’t perfect, it wouldn’t do all the things
we aspired for it to do.
Your move?
cover ground you try to cover with your automation. See the whole
picture, not just what you got assigned.
Perhaps you are a manual exploratory tester. Start reading code and
recognizing patterns around how it changes, and how that is related
to what you are testing. Don’t deny yourself the understanding of
what has changed. Start reading automation logs. Start reading test
case names in automation. And most of all, start speaking up about
what you’d like to test and how your programming colleagues
could benefit from what you know about the application we are
testing and the risks of the domain.
Perhaps you are a developer. Spend time with your application and
your users’ problems, and care. Remember you are not alone. The
other developers work with you. The testers work with you. There
is always a second pair of eyes available so that you don’t need
to be left alone with big responsibility. The business opportunity
of having people specializing in testing is that they’d blame the
developer and point out mistakes. It is that together we can con-
dense schedules and achieve a higher level of quality than you could
alone.
For the last few years, I have been realizing that personally as a
tester, I serve my team in many different ways.
I am a catalyst that enables things that wouldn’t happen without
my presence. For the last two jobs, I have found myself working
with developers who can test, and sometimes what they needed for
that was to look at me and say “You’d want me to click here”.
I am working against inertia and entropy. Inertia is the idea that
we don’t need to change, but just keep ticking away as the process
defines. Entropy is the idea that without continuous effort, things
turn messy. Neither one works in favor of great software.
Finland 33
Well, why not, but we can say that this is not the case for most of
us who have many years of experience. At least in France, testing
is just beginning to be taught in some universities and engineering
schools. A few books exist (most of them in English) but they are
nothing in the middle of development books. Training providers
all now have courses on testing, but the content is not always
satisfactory. Most of the time, it will contain the same things as the
ISTQB courses and will offer you to pass (or not) the certification
at the end of it.
Knowing that the goal is certification, the content will be fully
compliant with it, it’s a pity: these “testers” may not have the
necessary state of mind to be a good tester, they will most of the
France 40
time follow recipes and will not adapt to the context. Fortunately,
as I said before, I am not alone anymore (and probably never was,
I was just biased) and most of us are now aware of this. There is
a real community of dynamic testers (this book is a proof of that),
always ready to put themselves in danger to learn and it is clear
that the profession is evolving enormously fast, which makes it
exciting. And in saying this, I’m not just talking about the trend
towards automation: there is still a lot of room for exploratory
testing, security, performance, user, accessibility and the products
being tested are becoming more and more complex and constantly
evolving.
Is there a single tester who gets bored in this business? I don’t think
so, and if there is, it’s probably because they are not in the right
place and just need to move.
Germany
Germany 42
perception. Bad testing is bad testing. And bad testers are equally
responsible for this broken perception of testing that non-testers
have even today. Period!
Change their perception of you as a tester
If some non-testers do not want to get involved or associate
themselves with testing (for they have this negative perception
about testing), I won’t hold it against them. How do we still onboard
them and enable them to test when they have to?
A simple yet difficult answer is, by changing their perception of you
as a tester. I suffered from this perception problem too and below
are some things I did that helped me change others’ perception of
me as a tester.
Speak their language and show respect for their craft:
Want them to understand you better and engage with you in
meaningful work-related conversations? Then please start speaking
their language (hint- interactional expertise)
• Show them how big, smart and active software testing com-
munity is
• Introduce them to various resources to learn, read more about
testing
• Share interesting articles/blogs/discussions with them sur-
rounding testing and quality
• Discuss test strategy with them, involve them if possible
The damage bad testing has caused to the reputation of testers over
the decades is not easy to fix but certainly not impossible.
If you want to stay relevant with your testing skills in changing
times and contexts, I beg of you, be the change you want to see!
Germany 46
Just like testing, our personal growth is all about learning - so let’s
Germany 49
Trust in you
• Be brave.
• Stretch yourself
Set ambitious goals in areas, which you like and want to evolve.
Everything is possible if your work becomes your hobby and you
enjoy it. Just allow yourself to think big and you can achieve really
incredible goals.
Trust in QA community
Jim Rohn said that we are the average of the five people we spend
the most time with. What if we would be surrounded by passionate
quality specialists? Attend Meetups and conferences. You also can
become part of the QA community by following different speakers
and coaches on Linkedin, Medium, Twitter or by regularly checking
some blogs. By becoming part of the QA community you would get
a lot of inspiration and knowledge.
• Network ethically
The people around you can support you and inform you about
something new in the industry - connect with proper specialists.
However the ethical networking is not self serving, it is about
giving. Invest in your education to become interesting and useful
to others. If you only read one article about some topic, it’s very
difficult to network with famous speakers about it. Maybe you
Germany 52
may have luck and the specialist in that area can give you an
informational interview. However this is not networking. Find
people at your level and start helping each other.
Very often you will need to do completely new tasks. You can
struggle even with what to do first. Try to find a mentor in
your network or in the organisation you work. Some people are
mentoring others on a volunteering basis or to get their own
experience of mentorship. Don’t hesitate to become a mentor as
well on the topics you know.
Being lucky
Being lucky
Some years ago, I chatted with another attendee after a conference
and she noticed that I seem to be particularly lucky in life.
I didn’t think much about this at that moment and yet, I started to
observe whether I am lucky or not.
Let’s start with a definition of ‘luck’. The Cambridge Advanced
Learner’s Dictionary defines ‘luck’ as
Agile TD
• A Welcoming Community
Second of all, I’ve learned that there’s ‘bad luck’, too. With that part
removed, the definition now looks like this:
There’s not much left and talking about the force doesn’t explain
that much. I’m sure Obi-Wan Kenobi would approve this:
Germany 60
Take a moment to think about it, then answer the question, make a
plan and do it.
GOOD LUCK! — AND MAY THE FORCE BE WITH YOU!
Gran Canaria, Spain
Gran Canaria, Spain 63
I suppose my passion for testing started back in the ’80s when I was
a child with my first computer that was the legendary Amstrad 6128
CPC.
I remember I wanted to rip open the computer monitor and see
what’s inside. I guess this was my first time exploratory testing.
When I was out of university, I had no idea what testing was. I still
remember my first interview in one of the most famous companies
in the world (with a 3-letter logo) that I rejected a position in
because I said, “Software Testing? What is it? No, thanks.”
The next month I got my first job as a tester in a different company.
Since then, I have worked as a Software Tester. To be more precise,
I have been working as a professional software tester for over a
Greece 69
decade, and I have tried during these years to learn something new
every day. However, I have to mention that the journey from being
a junior manual tester to someone who can set up an automation
framework from scratch was long.
In Greece, back in the late 2000s, software testing was not so
popular. It was hard to find information sources if you wanted
to learn a new testing technique or an automation tool. This
was an issue because, as testers, we all should improve our work
continuously.
A lesson that I learned is that teamwork and collaboration are
essential. I do recall the day when a software developer told me
about cross-site scripting (XSS) attacks. I injected a script into the
login form of a web-page, and magically the page crashed! It was
enlightening to see it. When I went back home, I stayed up all night
trying to crash all the pages with XSS attacks. I found so many bugs
that the next day I received recognition from my manager for doing
good work.
So my first piece of advice is as a software tester, you have to dare
to ask questions, try to find a mentor that can inspire you, ask for
feedback and help.
My second piece of advice is that you should not worry about
failures, and believe me in the beginning you probably would have
a lot. The first time that I set up an automation framework, my code
was just ugly.. spaghetti code. Try to learn from your failures and
mistakes, gain experience so you can be better in the future.
In the first years of my career as a junior tester, I always had in my
mind how I can improve my skills. I kept asking why there is not a
community or a support network of people in Greece that can help
you and encourage you regarding software testing?
The years have passed, and one day I said to myself that I couldn’t
sit back. I had to do something about it. I found out about the
Ministry of Testing in the Selenium Conference in London in 2016.
When I arrived at the venue, I saw the banner of the Ministry of
Greece 70
Testing. After some short talks with the guys there, I found myself
longing for making more and more people in Greece aware of this
community. The decision to run the local meetup was taken.
Now there is a Greek community that we all share knowledge and
experience to teach and learn about software testing. If I have a
question, I go to the slack channel and ask.
So my third piece of advice is the following one. Try to find a testing
community. Go to meetups. Community is not an ideal; it is people.
Meetups are about members of the community rooting for each
other, learning together, searching for opportunities, and helping
each other find them.
Hungary
Hungary 72
“What life have you if you have not life together? There
is no life that is not in community”.
T.S. Eliot
Hungary 73
Only those who will risk going too far can possibly find
out how far one can go.
T. S. Eliot
India
India 76
Nithin SS - India
Being an adult:
blog platform for the community with a vision: Learn, Share, and
Grow Together.
I am still learning, and I do believe that known is a drop and
unknown is an ocean. Try to explore the unknown, and find the
inner you…
Finally, believe in yourself and always seek improvements!
Japan
Japan 83
Why am I a tester
Ever since I was a child, I had a vague idea that I wanted to do a
job that would help a lot of people.
I started working in an internet service company as a new graduate
and was a web developer for E-Commerce service.
One day when I got to work, I faced big system trouble, I logged
on to a server and saw the logs flowing through the terminal at an
alarming rate.
There were two things in my mind:
No Broken
No Downtime
Even if it’s not broken, you might face trouble during downtime.
For example, in a gambling betting service, the server might be
overloaded every time when the voting deadline is closed and
people cannot buy a ticket, or the screen might be slow due to
unexpected access because of some big campaign and so “No down
time” is one of the key missions that should be accomplished by
QA.
No Struggle
Conclusion
I’d say, “The more you come-up with unique user perspective
scenarios, the best quality deliverables would be”
Every tester will follow the workflow which the product is built
for. I accept since this is a simple prerequisite. But I strongly believe
that the best quality product can be built once the tester cerebrates
out of the box. Testers should be able to think both from an end-
users perspective and also what users would do in this particular
workflow? Is there any other possible way users use the product,
other than the developed basic workflow.
Lets say: e-commerce domain application - Account Signup.
E.g. 1. User fills out all the necessary Sign-up fields & clicks
“Submit”
This is the basic workflow which the Dev team developed. Here
anyway testers will test with techniques such as: Boundary Value
analysis, Equivalence Class Partitioning, State Transition Criteria,
Blank / Null value inputs etc..; these are the fundamentals to be
observed by testers. Now let’s see other instances that users usually
experience during this workflow.
E.g. 2. User fills appropriate fields of Sign-up & clicks “Submit”.
Scenario: Suppose the user manually clicks the back button while
the page is loading, or clicks force refresh, or the cancel button, or
if the network failure occurs during submission.
In this case of interference, we need to check whether the user’s
submitted data is registered in the database or not. These are just
several possible scenarios that might arise at the users end.
Japan 89
Experience is Knowledge:
Testing helps us to learn from our own experience. The more we test
& dig in, the more it improves the quality of the end product. When
we work on different projects and clients, “Testers need to regard
any obstacle encountered, as the next move toward their milestone”.
Create the test scenarios with all your experience and implement
new scenarios thinking out-of-box.
Japan 90
Precision:
Failure is Learning
It’s okay to say that you don’t know something. What it shows
most is not the weakness, but power. Showing your vulnerabilities
shows your strength. You have to get weak in order to get strong.
Working closely with all other roles and having an open growth
mindset together with honesty will help you grow even more.
3. Listen to your heart
If you feel that the product is not ethical, maybe it actually is
not ethical. Especially nowadays we as testers may have a good
intuition - products should be more accessible, secure, and in
general fairer. In the age of concepts like artificial intelligence
gaining speed, we are the ones to question it and make sure AI
is more inclusive.
Chase less trends and best practices, you are already bringing in
great ideas because… they are your ideas. Embrace them. Embrace
your power of being you and your testing will blossom, too.
To end in an authentic manner, I just have to embrace my love for
poetry:
Finding Power in Authenticity
And there may be times when you say to yourself
“I’m not good enough, why do I even try?”
It may continue day after day, even in the middle of the night
Wondering how everyone has their careers going so fine.
But everyone is not you, and that’s… okay
We fear to be different but knowing thyself is the only way
To learn, improve, and even help each other grow
To train a growth mindset and reach the flow.
And, hey you!
If something is hard to do - do it more often, and remember
You are good enough and you can even get better
If you accept others and yourself for who you are
Embrace your inner strange & keep an open heart.
Netherlands
Netherlands 97
A glimmer of hope
A glimmer of hope
during JAOO last year, Kent Beck and Erich Gamma conceived
JUnit.”
I guess that was my first introduction to unit testing.
The impact of JUnit on the industry of software development was
huge. It was the first viable unit testing framework out there. Still,
unit testing took a long time to gain traction. Even today in 2020,
when I ask audiences at talks for a show of hands about who
actually writes unit tests, most people do not raise their hands. And
that’s a shame really.
Recently, I was coaching a development team that had come to
a complete standstill. They didn’t dare to change another line
of code, afraid the codebase would break. Not a single feature
had been delivered to their clients in over ten months. When we
investigated their codebase, we found few unit tests, extremely
low code coverage, high cyclomatic complexity and many untested
paths in the code. And still, when I stressed the importance of solid
unit testing for maintaining quality and speed of development, the
developers stared at me with long faces and asked if writing all
these tests was really, really necessary.
It is.
To be totally honest, it took me quite some time to get convinced of
the effects and benefits of unit testing and test-driven development.
For authors Kent Beck and Erich Gamma, the number one goal for
creating JUnit was “to write a framework within which we have
some glimmer of hope that developers will actually write tests.”
They built JUnit with already existing, familiar tools so that there
was little new to learn. As they said: “It has to require no more
work than absolutely necessary to write a new test.” Gamma and
Beck made writing unit tests as simple as possible.
So why is it so hard to start writing unit tests?
From my own experience, despite the simplicity of the tooling, with
Jest being my current poison to test my TypeScript and JavaScript
Netherlands 99
code, one problem I think lies in the fact that writing unit tests still
requires skills and understanding. It takes time to learn. And time is
something we are always short of in software development. There
is continuous pressure from stakeholders, managers or product
owners to add and improve features in our products. We never seem
to have time available to work on the quality of our architecture and
code. Hence, we tend to skip writing unit tests.
Another challenge is that the benefits of having good unit tests are
reaped in the long run. People are not really good at preparing for
long term benefits. Not unit testing is like smoking. We all know
smoking is bad for us. Nonetheless, people find it extremely hard
to stop smoking. This is because the drawbacks of smoking are
usually not felt until years later. With unit testing, this is quite
similar. Having unit tests for everything pays back in the long run.
It pays back after six months when you notice you can change
your code without pain. And it pays back after one year when you
can still change the code. And even after multiple years, your code
remains stable and has even become more robust than it ever was.
Unfortunately, too many people postpone writing unit tests until its
late, and the consequences of not having tested code have become
huge.
And it becomes worse when you work with modern software archi-
tectures, such as microservices or serverless, where you usually do
not have a single codebase, but rather work on a vast collection of
small codebases. With one of my recent clients, the total landscape
consisted of around forty micro-applications, fifty microservices,
and about the same number of serverless functions, each of which
with their own codebases, pipelines, and infrastructure. In environ-
ments like these, it becomes even more vital to keep your codebases
in good health. Unit testing is essential.
As an example, while writing this post, my teams and I are looking
at a small, but a rather delicate change in the core library of my
client’s landscape. This library contains around fifteen hundred
lines of code. Around thirty applications and microservices running
Netherlands 100
With proper unit testing, we would not have had the trust and guts
to make this radical change. We would just let it slide. And we
would just let it slide over and over again. Until we would not be
able to guarantee the quality of our codebases anymore.
My advice? Stop whining about the effort and time it takes to
start writing unit tests. Or even complain about it being boring.
Even though unit testing might not seem to deliver on its promises
immediately, it will in the long run. For sure. Don’t wait until
your code becomes unmaintainable. Just like you can better stop
smoking today than to wait for your package to be empty, or until
the first of January of next year. There is no excuse to postpone.
It is always better to start writing unit tests today. Actually? Stop
reading now, start unit testing.
New Caledonia
New Caledonia 102
“So, Zoé, why should we pick you for this software testing job?”
“Well, my five-year goal is to become a software developer, and
I think beginning with software testing would be a great way to
achieve this.”
… Oops, right? I feel a bit queasy when I think of this answer I
gave to my very first employer on my very first job interview.
By this time, I was about to graduate in social sciences, and the
standard path for me would have been to become a documentalist,
an archivist or an editor, but I wanted to venture into something
else. I had been learning some development skills at home, coding
some little video games in Javascript and a goofy essay generator
in Perl. Khan Academy and OpenClassrooms had been helping me
a lot, as well as regular Meetups that I enjoyed attending back then
in Lyon, France.
New Caledonia 103
This will cause the group of physicists to look down at their feet,
and shuffle about awkwardly. They all respect the speed limit.
Some have forgotten the exact reasons. Most have it conceptually
in their head why. But few can actually explain it.
Okay, well I don’t teach five-year-olds to test, but coaching about
testing is a big part of my role. And he had a really good point.
In our testing career, we can go through one project after another,
and we can follow a copy-and-paste, rinse-and-repeat formula to
what we do. This was very much me in the early 2000s.
You took what you’d done on your last project, and you copied
it over to the next one because it ‘kind of worked’. Everyone is
okay with that because it ‘kind of looks like’ something they did on
another project.
So everyone’s happy, and going along with everything until a
graduate tester is assigned to the project and asks, “Why do we do
it this way?”
You look around your team who’ve been doing this for two years
and they are all blank looks. The best response you can come up
with is that, “Well, we’ve always done it like this!”
Erm … erm …
As human beings, we love routine. According to Daniel Kahne-
man’s Thinking Fast And Slow, routine means we’re saving mental
bandwidth for other things. And that’s great, but sometimes when
routine is no longer serving us, we do need to fire up those neurons
and think again.
Doctor David Hughes was right, in order to challenge ourselves and
reconnect with the important whys around our subject we need to
explore through teaching. As such I’ve taught bootcamps on testing
as well as mentored a few graduates in their first testing position,
as well as more senior testers.
For an example, I’m working with a group of testers on an appli-
cation which originates from the 90s (it’s said one of our senior
New Zealand 108
form of,
Often these tools form a great focus for a session – we might explore
how to test them as they are, or how we’d handle testing a change to
the system. Most of these resources have been used as the backbone
for international conferences I’ve attended.
So, although I’m supposed to be teaching them, you’ll notice that
doing teaching will stretch me as an individual, there will be items
I need to think about deeply, but also I get better at anticipating and
dealing with questions.
That later part is important – because of course it’s not just
graduates and testers I coach. Testing is something which isn’t
really well understood – it’s seen as the strange, Charlie Brown
child of the software development lifecycle. I’ve also coached whole
teams, and seen developers themselves realise ways they could
build systems which have testability baked in from the get-go rather
than something the testers feel they have to accept.
As a senior agile tester, it’s also been necessary to coach managers
and stakeholders on what we’re trying to achieve – especially
against the difficult question of ‘why can’t we test it all?’
And this later group are our equivalent of 5-year-olds to a physicist.
It’s not that they’re children, it’s that they come from a different
background, so don’t hold the same things as us sacred and unchal-
lengeable. Being able to better engage with this group will allow us
to share our world view and avoid being overlooked or considered
a final piece of the puzzle.
New Zealand 110
Misconceptions
It is well known that some people and companies are seeing your
relationship with the developers as a continuous battle, as the
developers are the ones working to build something and you to
break it. More than that, you, my fellow tester, might get to be
marginalised by the fact that you are the “breaker of the system”
and your role is not as important as the constructor’s (developer)
is.
Not even it’s a bad approach and an unhealthy way of looking at
the tester - developer relationship, but might give you a poor self
esteem, making you avoid giving an opinion as you might think
you are not good enough or you are not having the power to speak.
Wrong!
Misconceptions are affecting your voice as a tester.
Since you’re afraid to speak as you’re considering yourself as not
being as good or as valuable as a developer is, you’re prone to end
up making the following mistakes.
Let’s have some examples.
This letter is for you, my dear tester, and for the silent tester I used
to be too, years ago.
Scotland, UK
Scotland, UK 116
back to the company later on, and I am still there). This change
was good because I met awesome people and great mentors. Two
of them shared the same vision with me, we therefore founded the
first testing community in Serbia.
Around that time, they also inspired me to apply for my first time
as a conference speaker. Speaking of courage - I had never been to
a conference before, I had no idea what one looked like! I was lucky
to get accepted. I had the best time on stage, and have loved doing
presentations and workshops ever since. What I absolutely adore
about conferences is that you get a chance to meet a lot of inspiring
people, have great conversations, discussions and have fun. Also, I
met my power learning group friends, with whom I have regular
learning and sharing sessions over Skype. I will never be alone in
the testing world since I found my support.
After the retrospective I realized I was not happy about the fact
that I reached a two-digit number of years in testing, but I was
so happy by all the experience I gained, about the opportunities I
seized, challenges accepted and people who I’ve met. I was happy
with who I am, after doing the thing I love for 10 years. Happiness
is my main driver to grow and learn. Are you happy? If not, change
something!
Oh and my advice, if I need to put it in one sentence - nurse your
coding skills, use Twitter, go to conferences, be brave to speak at
different events (remember, everyone has an interesting experience
to share - their own experience!), create your own community (it
could be virtual) and find people from whom you can learn and the
ones who support you. And yes - don’t forget to be happy!
Singapore
Singapore 124
Heaving a sigh of relief after deploying a hotfix, Maira and Rob step
out of the “war-room” - a meeting room in their office dedicated
for people who are dealing with production outages and issues.
As they walk back to their desks, Kayla, the Product Manager, calls
for a quick meeting to brainstorm ways of avoiding such issues in
the future.
Rob starts by explaining details about the issue and what he
did to fix it. He continues, “Maira tested my fix on the staging
environment sometime back and she gave a sign off. So I went
ahead with the deployment to production. She also verified the fix
on production post deployment. So the issue should be resolved
now”.
“When and how did we detect the issue?”, asks Kayla. “The cus-
Singapore 125
being done and the risk areas are assessed before the changes are
made.
Over the last 4 years or so I started diving into the world of Testing
conferences, test community, social media and being bold enough
to voice my opinions across different platforms. If I had to look back
at my 5 year ago self or even my 10 year ago self I would have told
‘me’ to not hold back and get involved in the testing community
sooner.
When my career started I always felt I needed to not just focus on
my job but focus on a career. I wanted to be part of something big
and at various points I felt the need to give back and share learnings.
My feeling is usually that even though every work environment is
unique there are definitely common and generic aspects of a role
that can be extracted and shared. This in turn would be able to
help and assist anyone who would find themselves looking for an
answer which my experience sharing could potentially resolve. I
South Africa 130
think the element of boldness stepped in over the last few years
and I wish I could have done it sooner. I personally felt I made
some positive strides over the last 3 years which I hardly thought
was ever possible.
Something that has pushed my career to new heights has been
pairing with an international group of people who I value and have
utmost respect towards. From my detailed pairing with my learning
partner Elisabeth Hocke to the co-forming and interactions of the
amazing, informative Power Learning Group all whom hail from
different countries across the globe. With all these pairings we
have created a platform where knowledge sharing takes the centre
stage. Contributing and learning is the key focus for these awesome
partnerships, the benefit of which is priceless and rewarding in
many ways.
As your career progresses it is key to ask yourself who you are, this
is true in both a personal and a professional context. If you look
specifically on the professional context I started to believe that each
person brings a uniqueness and its key to display this uniqueness
so that at any given point in time your presence spoke for itself.
Whether that presence is a physical presence or a virtual/social
media presence. The passion for what you do should be clear, this
ties in closely with your values, your knowledge, your experience
and your drive. Find ways to determine your uniqueness within
the Testing and Agile space then put all your effort in bearing it to
fruition.
Keep pushing your own boundaries, after all you only have yourself
to impress.
Spain
Spain 133
Often testers lament that developers don´t care about quality, focus
too much on building and not enough about understanding what
they are building. And I have agreed more than once. But there are
so many things a developer (and a tester) needs to know about that
it´s impossible to think of everything all the time.
Sweden 141
Consistency is key
The older I get the more weight I put on this. It´s easy to brush
off inconsistent behaviour as “not important”, but this ties in with
understanding UX Standards and the psychology of user behaviour.
I suggest looking into things like Jakob´s Law: “Users spend most
of their time on other sites. This means that users prefer your site
to work the same way as all the other sites they already know.”
Meaning your edgy new interface needs to have a very good reason
for breaking standards.
Consistency has a lot of facets, know about them! Look for in-
consistencies within your product, with your purpose, with your
users´ expectations, with claims you make about your company
or product, with rules and regulations in play and again: against
comparable products on the market.
already done.
Some are more likely to pick something that seems to be an
interesting problem to solve, meaning they might prioritize things
that look less straight-forward, maybe a tough race condition that
is hard to replicate. Make sure you tell the story of things you have
tried.
Others are motivated by pride, only delivering high quality soft-
ware. They will most definitely not want embarrassing or obvious
problems to show up in production.
And of course, there are some who will do only what someone
“higher up in the food chain” tells them to do. In those cases, you
have to find the people making the decisions and motivate them.
If you work with someone motivated by emotions (oh they are more
than you might think…) it is more important than ever to tell a
compelling story. Who is affected, how will it affect them and what
might the consequences be?
And then of course: relationships. Do not underestimate the impor-
tance of this! Build trust and strong relationships and you will be
much more successful. We want to help people we like and we tend
to like people who like us.
While you are at it: learn what objections different people will
use and prepare to overcome them. Usual objections are “Can´t
replicate”, “This is an unrealistic scenario”, “This is not a bug!”,
“This was not in the requirement”, “This is too hard to fix” or “This
is not important right now”.
Remember the story about the boy who cried wolf? Yeah, it works
the same way being a tester. If you always fight to the bitter end
for every bug, or every test you want to run, you find people will
start ignoring you. Find a good balance between what is worth
Sweden 143
championing for, and what you can let go without lying awake at
night worrying will happen in production.
The same goes the opposite way: The more people see that your
work is well thought-through and that your judgement is good, the
more they will start to listen to you.
The same idea can be used to consider how much effort should be
put into planning your tests, analysing your findings and how to
report. Sometimes it´s crucial to be able to show later on what you
did and/or what you found. Sometimes it is only waste. Sometimes
it will save the team a lot of time if you do a thorough analysis of
a problem, sometimes it will just be wasteful.
It ties back with knowing legal requirements, knowing your do-
main, having strong relationships and being very good at doing
risk analyses. The more you know about different aspects of your
domain, the better you get at analysing risk and how to mitigate
them: The more value you will bring, and the more people will
value you.
Quality is a team sport, not a race, so make sure neither you nor
your team-mates measure your value in how many bugs you find
or miss.
Tunisia
Tunisia 145
When testing becomes your passion and your world, it will be more
than exciting !
Joining different testing communities around the globe is also a
great way to share your thoughts and learn more from other like
minded people.
Attending conferences and testing meetups around you is also an
opportunity to meet and talk to passionate people about what they
are doing in their careers in software testing. Try to get inspired
from them and apply your new learnings with your team.
Inspired by my talk about CoP “Why it’s important to build com-
munities of practice in your agile organization”
Starting a community is relatively simple, but keeping it running
over time is much more complicated.
I suggest in just a few steps how you can build your community
Tunisia 149
from scratch in case you didn’t find one near to you or you’d like
to introduce it in your organization:
Community Levels
state at the same time gives the compass a great advantage. Without
losing its focus and control, a compass can change and adapt as
much as it wants. This same dual competency is also important in
the ever-changing IT world. Any new software tester must also be
skilled in software development and human relations, as software
testing does not exist in isolation. A multi-level investment in these
skills both enhances your testing skills by allowing you to learn
from other disciplines and enables you to stake your position within
the bigger picture of the IT ecosystem.
Proof of the effectiveness of this framework comes not only from
my 20 years of IT experience, but also from being a sports fan.
For example, most of the round picks in the NFL draft have been
multi-sport athletes. The combination of different challenges, skill
sets, viewpoints, coaching experience, leadership skills, and cross-
training know-how add value to the athletes’ competencies, giving
them competitive advantage in their profession.
In addition to the competitive advantage, experience in a variety of
sports allows athletes to become well-rounded people. By nature,
such people tend to be more agreeable. With the high adoption
rates of Agile frameworks in software development, self-organized
teams are now much more prevalent than in the past. Being
a self-organized team requires team members having agreeable
personality traits. Without this skill, it is almost impossible for team
members to reach consensus, take initiative, or move forward.
Having defined the objective of new software testers, let’s examine
the ways to achieve this objective. Becoming a multi-skilled tester
requires acting as a drawing compass, with one fixed leg placed
firmly on the ground and the other leg drawing value circles on
different levels around itself.
In order to stand firmly on the ground, one should first begin
learning and practicing the fundamentals of software testing. These
include: defining the risk; recognizing different risk types; assessing
product risks; using different test design techniques such as black-
Turkey 154
(5) and you present the product in the name of company, namely
embracement (6).
From another aspect, testers may face different challenges. Unlike
a developer, you are not a domain expert. You switch to various
products/domains and should quickly understand it. When I was
first involved in the project, some of my colleagues had concerns
about if I could make it. In this point, stress management (7) is the
key skill to overcome. Since we already discuss domain switches, it is
worth mentioning innovation (8) because you can apply what you
learnt in different studies to others. I remember that sometimes I
had to take decisions, which refers to: Bravery (*9).
After learning much in the Defense industry, I wanted to take my
chance in Industrial Automation. I was closely following the latest
methodologies and management approaches. Being aware (*10) of
what is going around can help you to take correct actions.
When I moved to software automation, I was surrounded with SW
experts around me. For a moment, I felt that I should immediately
quit there! No chance to be successful there. But 3 months later, I
was one of the guys who were leading the process. At this moment,
I am still not a software expert, but I strongly believe that there
is nothing that I can’t learn. In this kind of situations, not losing
motivation (11) is the key. Yeah, there is nothing that I cannot learn,
but there is too much to learn on the other hand: Learning (12).
Greeting Bob Marley: No ask, no get. You have to be Proactive (*13)
to learn much.
I was one of those, who individually experienced the transition
from waterfall to agile. I confess: I resisted at first. But now that
resistance created another principle for me: Flexibility (14) Changes
did not include only the methodology, but also products, teams, tools
and location, referring to Adaptation (15). Going through all these,
sometimes you have to convince team mates, Influence (16), but
you will not be accepted for all cases! You have to wait until the
correct time: Patience (17).
Turkey 158
After I had a team lead position, I had more issues to be solved. But,
from the beginning you have to have: Problem solving (18) skills. To
find bugs, you have to think the unexpected! You have to be creative
( 19). Besides, you have to try each single detail: Determination (20).
But you can not do everything on your own: You have to be a team
player (21).
I experienced that taking initiative (22) eliminates waste of time.
Otherwise, you may have to wait for a long while for someone else to
act! About time: Another important aspect is prioritization of tasks,
namely: Time Management (23).
Last but not least, you may always face naysayers or people who
underestimates testing: Stay focused (24) and share (25) everything.
It can be a conference speech, a little chat or anything else. World is
beautiful with different colors & opinions. That is why I am writing
now!
To sum up, I have collected 25 principles for myself over my own
story. Of course no one should memorize any of them. My advice
would be making your own observations and continuously learning
from lessons.
Ukraine
Ukraine 160
your product.
Why do they want to introduce automation? Is it just “hype” or a
well-established plan of transformation?
What do they want to optimize? What do they want to save (time,
money)?
How do they see the usage of automated tests on a daily basis?
Tip: Test automation is not a “write once, execute forever” solution.
Maintenance is included.
Move small
Start with a small smoke suite of the most critical cases. Make them
stable and usable.
Automate 100% of tests that can be automated, no more.
The best way to plan testing is a mix of automated and manual
exploratory testing.
Tip: Five cases, which are executed on each developer’s code
change is way better than a hundred failed tests that are executed
from time to time.
Execute automated tests from day one. Integrate it into the devel-
opment process.
Continuously show the value from automated tests: how much time
do they save, how stable or fast are they, what is the automated test
coverage?
Tip: Think outside of tests - where automation can help and speed
up the delivery. It can be the scripts for preparing test environments,
generating test data, setting up complex preconditions.
As a conclusion
Technological Excellence
When I started off my career in testing many years ago, I was told,
or had the impression, testers are not supposed to be technical. We
don’t worry too much about product’s design and code. We’re more
concerned with how the product behaves and just test it like the
‘end user’ would.
That never sat right with me and I always thought, in other
industries you start as a technical person, once your experienced
you are put in validating others work and guide them, a different
way of saying you ‘test’ their work. Then how is it in software
testing we divorce ourselves from technology and all we care about
are requirement documents (this was before even Agile was a big
thing).
United Arab Emirates 166
Finding home
Don’t give up
You might have tried and failed a few times at making peace with
programming. I’m here to tell you from my experience & others
around me, the pain you’ll suffer from not trying will be far more
than trying and failing again and again. There is so much help and
content out there now, I believe any individual can develop decent
United Arab Emirates 167
I could write a whole book on what I’ve learned from Linda Rising⁷.
I’m going to share the one thing that I feel has helped me the most.
I wish I had learned this much earlier!. I encourage you to go find
YouTube videos of Linda’s conference talks, and her books with
Mary Lynn Manns.
example mapping
We will build shared understanding of stories
Which will reduce rework
As measured by cycle time being reduced by 25% and rejection rate
reduced by 50% after two iterations
Evaluate results
Introduction
Any team that follows an agile approach is probably cross-functional.
If you’re lucky, you will work alongside developers, business
analysts and UX specialists. They are specialists in their own
right. The expectations of Developers are the implementation and
optimisation of the code they create, if you’re very lucky, they will
create unit tests alongside the implementation. A business analyst
will focus on the requirements of the system to be implemented,
they will act as the prime interface between the stakeholders and
the team as a whole. A UX specialist is expected to be concerned
about workflows, look and feel and colour palettes.
So what of the QA? One of the expectations of a QA is the ability
to think⁸; the ability to evaluate information using a systematic
and deliberate approach separate from the mechanistic ritualistic
⁸https://www.merriam-webster.com/dictionary/think
Wales, UK 175
History
What it is
How to apply
Real-life scenarios
Let’s run through some typical group scenarios that often occur
in cross-functional agile teams (using a stand-up as the reference
activity):
Developer Jenny states that implementation of the API is almost
complete but she believes that it doesn’t require much in the way
of testing:
Tester Gwen states that the vehicle selection screen story can now
be considered done, BA Bob disagrees.
• Ask if she can articulate the task within the context of the
story?
– Does her understanding reflect the team’s understand-
ing?
• Ask if the card is accurate in intent and accurately reflects
the actual task?
– Ask if the the card requires rewording
• Ask the team if Alana’s understanding is correct
– Does the team employ empathy to address any confu-
sion on Alana’s part?
• Articulate your understanding of the problem
– Are there opposing views?
Wales, UK 180
Summary
As previously stated, this will take time. No-one thinks critically
100% of the time. Critical thinking is a tool. You can consciously
practice on your own reasoning. Don’t attempt to inject every
type of question into every situation.. Learn to read your team.
Make a conscious effort to observe how individuals respond to
different stimuli, increase your awareness of body language. These,
combined with critical thinking skills will make you a far more
effective quality advocate than any amount of code knowledge.
Wales, UK 181
some feedback which may help you learn or change the way you
think about that thing that you shared.
Another way to gain experience may be to consider contributing
to an open source project. If you’re unsure where to start, find a
project on GitHub and start small. Start by making changes to a
README.md file or some documentation. As you become more
confident perhaps help with some code maybe? This is a great way
to gain not only some visibility about what you’re doing in the
community but it’s experience and will help you not only gain
experience but to possible help you get noticed.
It’s also becoming more and more common that employers when
recruiting for jobs in the world of software tend to like to see what
candidates like to do in their spare time. Who do you follow and
what do you post on social media? Do you have a GitHub account?
If so, what pet projects do you have? Do you contribute to any other
projects? Do you have a blog? What books do you read?