Here are some facts about software testing I compiled to help me seek clarity about what is needed and what can be done to improve the state of software testing.
- Software testing is a multi-billion dollar industry.
- There are three segments to the software testing marketplace: tools, services, and infrastructure.
- Testing is a young and growing discipline.
- Testing is a craft.
There is no strong academic or vocational discipline for testing.
Some great preliminary work has been done to codify testing practices, but testing is primarily learned by mentorship and trial and error.
There is no clear career path to testing.
No one says “I’m going to be a tester when I grow up.”
Indeed, few people know of the role before entering into it.
Fewer still set out to become a tester.
- Testing consists of two primary facets: regression testing and exploratory testing.
Both are necessary. The way they are approached should be different.
The process should be different for regression testing and exploratory testing.
A single tool does not fit well with both processes.
- There are two means to accomplish testing: manual testing and automation.
There is a gap in skill sets between the two.
There are some things that can only be accomplished well through manual testing.
There are some things that can only be accomplished well through automation.
There are some things that are better suited to either manual testing or automation.
Few people understand the needs of both manual testing and automation.
Fewer have the skill set and inclination to do both.
There is a gap in tools between automation and manual testing.
- Testing is largely inefficient.
Many testers are poorly trained.
Many testers developing automation are inexperienced in development or lack formal development training.
Software development best practices are rarely practiced in test automation — largely due to this lack of training.
Testing tools are marketed to and geared towards test managers and gathering metrics, not tester productivity.
Testing process is often not clearly defined.
The features and requirements to test are often not clearly elucidated.
Even when they are, they are not well prioritized.
- Testing is often an afterthought.
Testing organizations are often understaffed and resources.
Testers are often considered less valuable than developers.
Developers often don’t want to test.
Testing environments are often inadequate.
Time available for testing is often cut short.
- Expert testers are rare.
This may have to do with the lack of rewards and appreciation testing receives.
There is not a clear senior career path — senior testers move into management, development, or business analysis.
Senior testers should be mentoring junior testers.
Senior testers should be designing testing tools and processes.
Senior testers often make less than junior developers and low level managers.
Many testers burn out.
Including those who have a passion for testing.
A passion for testing is rare.
Many testers see testing as a stepping stone to development or IT management.
It is difficult to break out of the testing “ghetto” once labeled a tester.
Expert testers are good developers.
Senior testers understand the business as well or better than any business analyst.
- Creating something (development) and testing something are two different skillsets.
They have different goals.
It requires a different perspective.
Verifying something works and finding ways something will not work are not recipricol functions.
- Testers are focused on quality.
No other part of the organization is as concerned with quality.
Development strives for quality.
Customer support feels the effects of poor quality.
Testing measures quality.
Quality is most often the item cut from the list: Quality, Speed, Price — pick two.
Quality is rewarded in the marketplace more than quickness or cheapness.
A quality perspective can be taught.
Technical skills can be taught.
- Organizations need better testing tools and processes, and they need expert testers to use them.
- They need dedicated testing infrastructure, and they need someone who can help them see how to implement and organize testing.
I can help you:
- Identify and implement tools and processes for testing, requirements & defect tracking.
- Provision and configure IT infrastructure for test environments and tools.
- Create a culture of quality and enable testers, developers, and business to work together to achieve this goal.
- Find, interview, and train expert testers for your organization.
- Provide additional testing resources to fill your need for scarce resources.
- Develop valuable, maintainable test automation and train your testers how to do the same.
- Bring the results of manual and automated testing (including developer tests) together for clarity on what business features are actually being tested.
- Build products in a way that makes testing easier.
- Inject testing into every step of your business process from initial concept to customer feedback.
I’m focused on building tools and defining processes that make testing easier and more effective. I’m also learning that testing skills and training are often lacking, and that good testers are often under-utilized, under-appreciated, and hindered by technical roadblocks, management apathy, and lack of organizational clarity about what testing provides and what testers need to accomplish their goals.
I want to improving testing, with these three goals:
1. Finding and developing expert testers.
2. Building better tools for testers.
3. Helping organizations improve quality processes.