Black Friday means cheap deals.
Testing is already the ‘cheap’ and undervalued relation in Software Development. Testers are paid less than programmers. Testing is outsourced more often and programming because it is seen as less valuable. Testing is viewed as more of a junior role than programming.
Every day is Black Friday for Software Testing.
Clearly I’m generalising, in your organisation this may not be the case.
In this article I will look at some of the ways Software Testing has come to this, I will also consider how did ‘programming’ avoid this fate, and what can we do to prevent it?
I’m going to consider the following areas.
- Make work visible
The above is not intended to be a complete list of influences on the devaluing of testing.
Compare the results of a web search for “Software Testing Certification” versus “Programming Certification”.
Software Testing has:
- “International” Certification Boards and Bodies
- Training measured in ‘days’
- “Get a guaranteed job” listings
- A lack of certification boards
- Training measured in weeks
- fewer promises of work
Software Testing has allowed itself to be ‘sold’ as:
- something easy to learn
- something to be easily ‘certified’ in
- something that can be quickly trained to a professional level
Programming did not.
If certification is a way of cheapening a set of skills then I expect the following skills and roles to also become viewed as less valuable as more ‘certification boards’, and ‘institutes’ spring up:
- Scrum Master
- Agile Project Management
Cynically, testers might want to cross train in Agile Certification because you can achieve certified status in these even faster than Software Testing.
Certification has also moved into recruitment, with ‘Certified’ being a requirement on many job applications. It is often used as a filter to trim down the number of applications for a role. When used as a filter, certification (achieved in days), trumps experience (achieved over years).
Making Work Visible
Github, Bitbucket, Gitlab and Open Source Software have all contributed to making programming work visible.
Hundreds of thousands of programmers have made their work visible online, making it possible for programming to be viewed as ‘hard’ by people that do not know how to program, and allowed individuals to demonstrate a level of understanding and mastery of their craft.
Software Testing… not so much.
You will find Software Testing information, and lists, and tutorials online. But it is hard to see the output from the act of Software Testing, by individual Software Testers online.
Hundreds (not thousands, or hundreds of thousands) of testers have released their work. This is not enough to make the process of Software Testing visible and demonstrate the difference that skill and experience can make to the process of Software Testing.
Programming has done a much better job of making their role easy to understand in terms of output, than Software Testing.
I searched the web for both “crowdsourced testing” and “crowdsourced programming”.
Guess which came back with more results?
There are crowdsourced programming sites, but they are specifically for:
- small programming tasks
- individual freelance work
Software Testing crowdsourcing is sold as a strategic approach for testing your application with multiple people working in parallel to reduce time and cost. Very often you are paying on a ‘bug’ basis rather than a coverage basis so your costs reduce even further.
Some crowdsourced vendors do sell it as an augmented approach, to work in parallel with an internal testing team. But many sell it as an alternative outsourced testing approach.
Crowdsourced programming vendors do not attempt to sell it as an alternative method for outsourcing programming of large systems.
Programming, as a role, didn’t have to do anything to avoid this fate. Constructing a system by uncoordinated parallel programming activities simply doesn’t work.
Testing a system by uncoordinated parallel testing activities can find bugs. If bugs are your visible indicator of Software Testing or the way that you evaluate Software Testing then it will seem to have worked as well as your internal process - and it’s cheaper.
Software Testing could have avoided this by better communicating the different aspects of testing. Bugs are important, everyone knows that. Coverage is important, not everyone seems to know that. Systematic and demonstrable coverage and understanding risks when coverage is low, seems to be valued less than the highly visible ‘bug’.
Automating activities allows us to augment any process and increase the effectiveness and value of the humans involved.
Programming avoided the impact of automating by naming the activity automated:
- Automated Build Process
- Continuous Integration
- Continuous Deployment
- Integrated Development Environment
- Automated Code Generation
All of the above describe part of the programming process becoming more automated. None of them are referred to as Automated Programming or Programming Automation.
What did Software Testing do?
We called it “Test Automation” and “Automated Testing”.
It is hard to crawl back from this. Despite “Test Automation” and “Automated Testing” completely misrepresenting the actual activity automated, we continue to use these terms. Of course we are aided and abetted in our ongoing process of devaluing Testing by Tool vendors with marketing material that actively encourages this misrepresentation to boost sales.
What can Software Testing do?
I’m working on the assumption that you believe Software Testing adds value and that experienced and professional Software Testers can make a difference to your projects. If not, you probably didn’t make it this far in the article anyway.
Stop filtering applicants based on certification. You don’t do this for programmers. Stop doing it for testers. Evaluate people based on their skills and experience and have them demonstrate those skills and experiences via an ‘audition’ rather than a Q&A interview.
If your organisation does not know how to interview and evaluate Software Testers then that is a different problem. And one that you solve by learning how to recruit. You can seek help from experienced Software Testing professionals to help you bootstrap your recruitment process.
Note that “stop filtering applicants based on certification” also means, do not filter people out because they have achieved a certification. Many people will have achieved a certification because the job market demanded that from them.
If you filter, in or out, based on certification rather than experience and aptitude then you are not evaluating applicants effectively.
As a tester, make your work and thoughts about your work as visible as possible. Blog about your experiences and lessons learned. This is hard since it requires additional time outside of work. Not everyone will be able to do this. But as an industry, more people need to do this to help increase the opportunities for people to ‘see’ what testing can look like in different forms.
Crowdsourcing is a perfectly valid way to augment your internal testing process. It will not, and cannot, replace an effective internal testing process. Use Crowdsourcing to increase coverage where you identify risks to your project e.g. more device coverage, more platform coverage, internationalisation coverage. Use it for breadth.
Do not expect this to be a way to consistently increase the depth of testing. The way for a crowdsourced tester, paid by the bug, to make money is to go broad and find as many low level problems as fast as possible and as quickly as possible. There is very little incentive for going deep into a product.
We do not automate testing. We automate activities within the testing process. Possibly using tools to allow our work to observe or manipulate the system at deeper levels. Possibly automating the creation of data or environment setup to allow us to test more efficiently. We automate the execution of paths through the system to allow us to consistently assert on acceptance conditions to check that functionality behaves consistently between releases.
We do not automate testing. Find new words to describe the introduction of tooling or automated execution, or identify all the activities in Software Testing that are not automated and decide if you value those.
Automating effectively is a highly valuable part of the Software Development process and requires skill and experience - do not restrict it to “testing” or “testers”. To really increase the value of automating in your process then consider it a Software Development activity.
Black Friday comes but once a year. The cheapening and undervaluing of Software Testing continues on a daily basis unless we take steps to prevent it.
- I have personally helped companies with their recruitment processes, and have recruited many excellent Testing professionals without relying on certification as a filter. I have also helped companies improve their internal Software Testing Processes.
- I help teams automate their processes either tactically with tools to increase the technical depth of their testing, and strategically to write codeto automate their applications via the GUI and other interfaces.
- I release a lot of information online showing “Testing in Action” either on YouTube, Patreon, via online training and by writing books and blogs: EvilTester.com | SeleniumSimplified.com | JavaForTesters.com.