What is software testing?
Ministry of Testing
Ministry of Testing is where software testing professionals grow their careers.
We’re all meeting in Brighton this October ??
Software testing is probably the best job you might never have heard of. Only recently have colleges and universities begun to offer courses and programs in testing.? Unlike a lot of tech careers, you don’t need a computer degree or other qualifications to start. All you need is a desire to understand how technology works, curiosity, and a desire to learn about new things continuously.?
There are software testers who have worked in factories, taught in schools, worked on help desks, written code, and done a variety of other things for work. And somehow they find their way into software testing. Sometimes people even find software testing by accident.
Software testing, by definition, is risk mitigation. A tester explores questions when testing and assessing the quality of the software they have been asked to evaluate:?
These are only a few examples. The software tester needs to design a hypothesis of what the answer might be to the questions at hand and how they can test the scenario. But they don’t have to do this all on their own. Designers can show the team how the software might look and behave. Requirements can tell us what and how the software should function. Product managers can guide resources and priorities. Another main component of being a software tester is that it is fundamentally a thought worker position where thinking deeply about problems, situations, systems, and people leads to insights. The quality of any activity is driven by the quality of thinking done before starting it (paraphrased from?Time to think by Nancy Kline).?
Software testers are constantly looking for ambiguity. Everything is relevant and meaningful but only in a given context. My favourite exercise is to take a simple sentence and ponder the possible meanings.?
The most famous example is from an old English-language 19th-century nursery rhyme by American writer Sarah Hale; it's called "Mary had a little lamb." If you don’t know the original context you might read that title as telling of a shepherdess who has lost a small sheep or lamb. Others might assume that someone had a meal. Yet another could understand from it that a sheep called Mary has given birth. There are literally dozens of variations of what that simple sentence could mean.?
Imagine reviewing a couple of hundred requirements for a complicated software system. How many possible ambiguities might you find? That is the task of the tester.?
Sounds fun? It could be just the career for you!
But what exactly is software testing? Ask ten testers, and you might get ten different answers. Let’s take a look at some definitions of software testing and why these definitions matter when shaping your own approach to testing.
Claim Your Space in the Ministry of Testing Universe ?? (MoTaverse)
Definitions of "software testing"
In the software testing world, there are countless definitions of what software testing is . Some are “well-known” industry standards, and some are “community definitions” shaped by the vast experience of software testing professionals across the globe.
Well-known definitions of software testing
Let’s have a look at some well-known definitions first:
“Software testing is an empirical, technical investigation conducted to provide stakeholders with information about the quality of the product or service under test.”?
Cem views software testing as a systematic process to gain information about how good or reliable a system is, which is then shared with the people who need it, like developers or managers. He uses the terms “empirical” and “technical” combined with “investigation,” meaning that software testing is methodical and grounded in observation and technical know-how.?
“It's when we hunt information, using the application, its interfaces and all existing information as our external imagination to go even deeper in empirical understanding of what is true and what is an illusion. It involves a person or multiple people, using programming to get to places in time, but it is all framed in this quest of someone learning what more we could try knowing.”?
Maaret’s definition of software testing is tied to?exploratory testing. She sees testing as an active search for information, where testers use the application and its interfaces to uncover what is true and what is incorrect. This approach requires creativity and curiosity, where testers think critically and explore the software deeply rather than merely following preset plans. In other words, Maaret sees software testers as explorers who continuously learn and adapt, using their imagination and skills to uncover the strengths and hidden issues of an application.
“Comparing models of system with observed interactions of the system for the purpose of evaluating the comparison and refining the model”
Alan?presents software testing as a process of comparison. He describes testing as comparing our “models”, which are our expectations or ideas of how the system should work and how it behaves when interacting with it. The purpose of this comparison is to see if there are any differences between what we expect and what happens. We refine our understanding or "model" of the system if there are differences. Alan's definition highlights that testing is not just about finding bugs; it's also about learning more about the system and making sure our assumptions are accurate.
Community definitions of software testing
Testers do not have to rely solely on a few prominent voices in the industry. Community discussion has often taken the lead in shaping how we understand and approach testing.?Ministry of Testing?has been at the heart of these discussions since 2007.?
The great thing about community definitions is that they tend to come from those who are at the forefront of practising their testing craft. They come from lived experience and capture where people are in their testing journey and the evolving nature of the industry.
“Evaluating a product, through experimentation, exploration, and experiencing it, on behalf of people who matter, to find ways in which it fails or might fail.”?
Stefan highlights the balance between product and people, both having value.?
“Learning about a product wearing thinking hats and asking context-based questions that helps me to discover bugs, highlight risks, perform experiments, and make informed decisions about the product that I am testing.”?
Mahathee emphasises the importance of context and critical thinking in discovering bugs and making informed decisions.
“It’s about understanding the unique value your product brings to its users and stakeholders and then ensuring every update, feature, or change enhances that value.” -?Kat Obring
Kat places value on the user at the centre of this definition.?
“Software Testing is considering what could happen given every possible, practical scenario.”?
In my own definition, I cast a wide net, narrowed by practical considerations.?
The many?definitions of software testing, both well-known and community-based, show that testing can be thought about, discussed, and approached in many ways. By learning from these different perspectives, we can improve our understanding of what software testing is. We can then go on to create our own definitions that resonate with our teams, be able to discuss testing confidently and make better decisions in our testing practices.
These evolving definitions reflect how software testing has grown into a well-established profession. But how did it all begin? To fully appreciate what testing is today, let’s take a brief look at its origins.
The origins of software testing?
Computers have been around much longer than you think. Charles Babbage is credited with creating the first mechanical computer in 1822. The first electronic computer was built in 1942 by John Atanasoff and Clifford Berry. Even in the early days, people did software testing, but not in the way you would see today due to the primitive level of technology. Those programming the computer would review their code, an early form of debugging or reviewing for errors.?
It was in the 1950s, as computing power grew, that IBM formed the first dedicated testing team. And it was right around that time that the term "bug" was coined: a computer scientist named Grace Hopper recorded a ‘bug being found’ in the Harvard II computer in 1947. In actual fact, a moth got stuck in a relay inside the machine, but a defect was recorded, and the term "bug" is used to this day. When you hear news stories about issues caused by software failures, glitches, anomalies, crashes, incidents or faults… these are all "bugs."?
The expression "software testing" was used from time to time over the next decade or so and became more common in the late 70s and 80s. The first standard for software test documentation was published in 1983. Through the 90s and into the new millennium, wherever software was being developed, software testing wasn’t far away.?
Today, there are dedicated software testers and specialists all over the world. And there are many wonderful communities like Ministry of Testing who support software testers and help them grow.?
As software development has evolved, software testers have become a valued part of many teams and businesses. That value goes beyond finding bugs to where testers contribute insights that help improve quality across the entire development process.
The value of software testing?
Software testers add value to teams, projects, and software in many different ways. For every story of a banking app failing, there are hundreds of untold success stories of bugs being found, fixed, or remediated before the product's release to customers. Not that you hear the success stories very often; site outages on big sale days or failing airport systems are the stories that make the six o’clock news. Software working as expected does not.?
It turns out that software testers love sharing their “bug” stories. We should do this more often, not to gloat, but to use them as a team opportunity to share and learn from.
Some public bug stories to learn from:
When software testers really understand what the software does, they can think deeply about the potential risks and uses. Through interaction with the software they can learn about how it works and any limitations it may have, and they can generate questions to clarify their understanding.?
It is in completing these activities that they need to focus on the ‘thought’ part of being thought workers. They look to manage their personal biases and call out any assumptions they might make as questions to be confirmed. They generate a lot of value to projects by asking the questions that may have been overlooked in ideation, requirements writing, design, and so on.?
Software testing is not just about finding software bugs. It’s about supporting the business to create the best product we can.
Of course, the way testers provide value can depend heavily on how teams are set up. Testers work in a wide variety of team structures, each influencing what testers do and how they collaborate with others.
Software testing on teams?
Testing is done in many different ways throughout the software development lifecycle (SDLC) depending on the varying needs of software development teams. Testers might work alone in a company or be part of a larger testing team; there's an infinite variety of team configurations.?
In this section, we’ll look at the team structures of which testers can be part and how these can affect their roles, activities, and processes. The many configurations can be confusing. But we’ll explore how each setup influences what testers do and the testing activities they focus on.
Solo tester on a small team
In small organisations or startups, there is often only one tester responsible for all testing activities. This can mean that one person handles everything from test planning and execution to reporting and working directly with developers. As the sole tester, they need to be highly adaptable, covering both manual and automated testing. Their role often extends beyond testing, acting as an advocate for quality across the entire development process.
Key points
Dedicated software testing teams
Larger organisations typically have dedicated software testing teams within a broader quality ‘engineering’ or ‘assurance’ department. Such teams are common in governed corporations that cover banking or financial services tech, and their work process is sometimes labelled? 'waterfall project management.' These teams can include specialised testers who focus on specific areas like automation, performance, or security testing. They follow structured software testing strategies and collaborate with other teams to ensure the quality of the software.
Integrated software testing on agile teams
Agile methodologies promote cross-functional teams where software testers are embedded within development teams. Software testers collaborate closely with developers and other stakeholders throughout the project, ensuring continuous testing as part of the development process.
No matter what type of team a software tester works on, their skills are important and relevant even if their actual activities vary across environments.?
As testers gain experience working within these different team structures, they also start to shape their own career paths. Some testers choose to specialise, while others prefer to broaden their skills across multiple areas.
Software testers' career growth paths?
Software testing as a craft is very broad, almost like a universe of possibilities. Software testers can be generalists who do lots of different things. Or they can be specialists, with each discipline a vast subject in its own right.?
A few software testing specialisms cover areas like:?
No matter which career path a software tester takes, their growth is most often driven by a continuous learning mindset. You can stand still all you want, but the world of technology is ever-changing. So if you aren't keeping current, you can be left behind. This sounds like a lot of hard work, but there is a certain joy in needing to discover new information, techniques and tools on a regular basis.?
Here are a few different types of ways in which a tester might grow through their career. They are only examples; there will be many variations depending on where they work, the tools they use, the projects they are involved in, and so forth.?
These varied paths show that there’s no single way to build a successful career in software testing, and that’s part of its strength. And if you’re considering stepping into this world, there’s space for you to find your own path, too.
To sum up?
Software testing is a broad craft with many different disciplines, processes, techniques and skills to learn. Everyone can test, but it takes discipline, patience, time and experience to become a professional software tester. It is a varied, rewarding and valuable career that can welcome people of all ages, types and backgrounds. And it is strengthened by the variety of different people who perform testing.?
Personally, I became a software tester at the age of 37 after having a number of successful jobs including at director level. I feel like it was not until 37 I actually had a career. Before I discovered testing, all I had were jobs.?
What next??
Interested? Curious? You can find out more on the?free Ministry of Testing Club chat forum?or sign up to the?MoT Software Testing Essentials Certificate?and begin learning about your new career today.?
Can’t wait to have a go yourself? Ok, here is a really simple mock up of a login screen, much like many you might see online or in apps. As an exercise, think about how you might test this screen. What will you enter? Will you consider different devices? Will you try to hack it? Have a go, and when you run out of ideas,?use this cheat sheet to stimulate more ideas.?
For more information?
"MoT is becoming a paradise for testers to experiment, extend, and innovate. In a world of limited opportunities for testers, MoT is creating the difference we all needed!"?—?Rahul Parwal
I found a community in the Ministry of Testing, a form of belonging which helped me grow personally and in my career. For this I will be forever grateful. I especially value the safe and supportive space they have created for learning and networking, be that in online or in person events. - Kim Knup
The best learning & chilling community in software testing - Rahul Parwal
Systems End-to-End Tester p? Volvo Group Connected Solutions
1 天前Software testing is ultimately that I find and report the problems before it reaches the customers so that they can get whatever that they need cleaned out: https://open.spotify.com/track/3NVojlIQV1YtIHBFNnzeri?si=db1b0249a06644d4
Empresario
1 天前Muy útil
"The most famous example is from an old English-language 19th-century nursery rhyme by American writer Sarah Hale; it's called "Mary had a little lamb." If you don’t know the original context you might read that title as telling of a shepherdess who has lost a small sheep or lamb. Others might assume that someone had a meal. Yet another could understand from it that a sheep called Mary has given birth. There are literally dozens of variations of what that simple sentence could mean. Imagine reviewing a couple of hundred requirements for a complicated software system. How many possible ambiguities might you find? That is the task of the tester. "
Lecturer in Computing at NWRC && Lead Instructor : Software Tester at Correlation One - BCS IT Educator of the year 2024 - Software Development & Test Automation - OCN NI Level 4 Diploma in Software Testing
2 天前Great article! I have trained hundreds of people into various QA roles over the years. The majority come from non-IT backgrounds.
Senior Tester - Accessibility Specialist at iPipeline UK
2 天前Excellent article Ady Stokes.