|
|
|
|

|
Rex Black is founder and
principal consultant of Rex Black
consulting services. He has written two books
Managing
the Testing Process and Critical
Testing Processes. He has provided many templates for
download on his site www.rexblackconsulting.com.
WhatIsTesting interviewed him
recently. We hope that this interview will be useful for
you. |
| Q1.
Rex, please tell something about your background, your experience, and
non-testing interests. |
I have spent over 20 years in the software,
hardware, and systems engineering business now. Most of that time has been as a tester
and test manager, though I have also worked as a programmer and system administrator.
I’ve worked with shrink-wrapped software for start-ups and big Information Technologies
projects for banks. I’ve worked with the Department of Defense and with university research
facilities. I’ve worked on PCs (starting back in the CP/M days), Linux, SGI, HP/UX and
Solaris workstations, Unix, VMS, and AS/400 minicomputers, and even big mainframes.
In my varied experience, I’ve learned that, in testing, common themes run through
projects that involve different technologies, different business problems, and different
teams. The specific context matters, of course, but the commonality of problems—and
solutions—is what strikes me.
When I’m not working, I try to spend time around the Texas Hill Country with my wife and daughters,
out hunting with my dog, or fixing up our house. |
| Q2.
What are your comments on the state of software testing in industry today? |
Software testing—like programming—is in a state of intense change. We are seeing new
technologies in both; testing tools and programming languages are evolving rapidly.
We are seeing new project methodologies in both; quality risk analyses and solid unit
testing are gaining ground. We are seeing new approaches to organizing projects in both;
outsourcing is big for testing and development. As is the case in all industries
throughout history, times of intense change are times of what the economist Schumpeter
called “creative destruction.” These changes will destroy many existing organizations,
approaches, and accepted ideas, but those changes will also create amazing opportunities
and growth for the educated, the clever, the disciplined, and the industrious. |
| Q3.
Even after decades of practice software testing still remains a much misunderstood
process in industry. Everybody agrees that it is important but nobody agrees on exactly
how or what to be done. Your comments? |
Indeed, there is a large gap between known
best practices and typical practices in software testing. I believe this is true for software
engineering in general. Think of how many projects are managed without even a cursory
work-breakdown-structure. Read Brook’s The Mythical Man-Month: You’d think he was describing
software engineering projects being done today, but he wrote that book based on experiences in
the 1960s and early 1970s!
Education is part of the answer. People who want to prosper in this time of change will
need to master the known best practices. There are plenty of books, articles, and courses
available for those committed to doing so, in software testing in particular and in software
engineering in general.
Just knowing the ideas is not enough. You must be clever enough to adapt these ideas to
your circumstances. As I wrote in Critical Testing Processes, there is no such thing as the
One Right Way to do anything. However, there are general ideas that clever people can fine-tune
to fit their circumstances.
Discipline and hard work are also part of the answer. The lazy and the undisciplined
cannot expect to survive in tough economic periods, particularly when major changes are
occurring. Many of these best practices require patiently gathering data, incrementally
improving, sticking with hard work, over long periods of time. |
| Q4.
Do you think that software testing profession is maturing as an engineering discipline? |
Yes. We are clearly seeing more people
understanding the need for specialization in testing. We are seeing more books, educational
offerings, and consulting services that specialize in testing. That said, we still have a
long way to go, especially in terms of the gap between known best practices
and typical practices that we spoke of earlier. |
| Q5.
What is the future of software testing in your opinion? |
It’s hard to say right now. I see software
as in a position very similar to the automotive industry in the 1970s and 1980s.
Up to that point, the US carmakers dominated the global market for automobiles,
but, frankly, they built and sold low-quality cars. By applying ideas from people
like Juran and Deming, the Japanese carmakers showed the world that it was possible
to have high quality cars without high price tags. The Japanese helped people understand
that quality does not mean luxury and ostentation, bells and whistles;
quality means satisfying reasonable customer and user expectations again and again and again.
In the Japanese automotive revolution, quality control and quality assurance lead the
way. They were key. There could be parallels now in software, if users and
customers are ready to demand affordable software that simply works and works simply.
Certainly the economic situation and the rise of outsourcing is driving another
possible parallel: The off-shore software houses, if they seize the moment, could lead
the way, just as the Japanese took over the leadership of the auto industry in the 1980s.
|
| Q6.
How should a tester prepare oneself for the upward movement in management ladder as a test team lead, test manager and beyond? What are the essential qualities that they must develop?
|
There are many essential qualities and skills.
A tester who aspires to management must understand the underlying business considerations.
Technology by itself is not by the point. Technology makes business innovations and
improvements possible. Technology solves problems. And technology involves costs
and benefits, risks and opportunities. Management decisions revolve around such
considerations.
So, a tester must grow the skills needed to effectively consider and manage
these factors. Estimation and budgeting. Risk analysis. The pertinent business
domains. The effective tester knows testing and technology, but transcends those
areas to understand management.
|
| Q7.
Given that consumers are increasingly becoming conscious of quality, how do you see
that impacting the software testing process? Or maybe consumers are not as
demanding of quality as they should be?
|
Consumers are still not as demanding of
software quality as they should be. Many users of software and systems assume that,
if their computer screws up, they must be stupid. They say things like, “Well, I wouldn’t
have this problem if I knew how computers work.” Hogwash.
First, this statement is not true. I know how computers work, and I have plenty of
problems with them. I call those problems “bugs” rather than calling myself “stupid.”
Second, no one would ever make such an assumption about any other work-a-day implement
or tool. Can you imagine someone saying, “Stupid me, my car wouldn’t be stalling if I
just understood internal combustion engines and could adjust my own timing belt”?
Third, it is the job of those who build tools to make those tools fit for use.
If the users find them clumsy or cumbersome, they should reject the tools, not insult
themselves.
Sooner or later, as with cars, refrigerators, and washing-machines, computers will
become common place. Then, as consumers did with other common-place appliances, tools,
and conveniences, consumers will start to take them for granted. I think that day might
be sooner than we think. At that point, consumer tolerance for lousy software will end.
I think we’re already seeing that in terms of IT software. Business customers—the CIOs,
the IT managers, the project sponsors—are unwilling to tolerate big-budget projects
that deliver poor quality, often late and sometimes not even at all. I think this
intolerance of poor quality, along with a desire to save money, is part of what drives
the outsource and off-shore boom. Perhaps consumers are not fair behind.
Companies—and professionals—who position themselves to thrive in a new environment
of higher expectations for software will, I think, do well in the future, quite possibly
the very near future.
|
| Q8.
Rex, you have written two books on software testing process management. What prompted
you to write these books? |
There have been books written on test
design and testing itself, but not on test management. There have been books on software
project management, but those books did not address test managers. So, my books
are addressed to those previously-underserved professionals who are managing
testing projects. Based on the fact that my first book has,
in the last four years, sold over 15,000 copies around the world,
I think the need is clearly there. |
| Q9.
Why did you need to write two books? Why did you think one was not enough?
How are the two books related? How should one read these books- Independently or one
after the other? What is the overlap between two books? |
Managing the Testing Process is about
tools and techniques for test managers. Critical Testing Processes is about fitting
those tools and techniques together into a successful test project, and fitting that
test project into the larger project. They are distinct but related topics.
They overlap slightly, in that I can’t assume that everyone who reads Critical
Testing Processes has already read Managing the Testing Process. So, I have to describe
some of the tools covered in Managing the Testing Process, such as the test tracking
spreadsheet when I’m talking about the test execution process.
If you’re planning on reading both, then you should read Managing the
Testing Process first, then Critical Testing Processes.
|
| Q10.
What are the future trends in software testing that we are going to witness? |
Clearly, international outsourcing is
one key trend. The diverse set of tools for programmer testing will, I think, consolidate
into tools for early testing in general, including static testing.
Focusing test resources via risk mitigation is another trend. |
| Q11.
Do you think outsourcing of testing is a good idea? What are the factors that prompt consideration of outsourcing?
|
Outsourcing is a good idea under many
circumstances.
Certainly cost can be a factor. Geographical convenience can be a factor when
the outsource test facility is close to the development facility.
Specialized skills—including test expertise—in the outsource test facility can be a factor.
Short-term spikes in work that can’t be handled in-house can also be a factor.
|
| Q12.
What are the main pain points of outsourcing? |
It’s important to be very careful in
planning and organizing distributed and outsource test efforts. Poorly planned and
disorganized test efforts, run in-house, can sometimes succeed through brilliant and
inspirational management and leadership. However, under such circumstances,
an outsource project will fail. |
| Q13.
What are the advantages of outsourcing? |
Cost-saving, the access to specialized test
professionals, and the ability to leverage strengths possessed by the outsource test
facility.
|
|