printer-friendly
Consulting Approach
Before
engaging any testing consultant you need to understand and be
comfortable with their philosophy and approach. The consultant should
be able to show you their defined process for testing. This page is
intended to convey my consulting approach and what you can expect from
my services.
A
traditional approach to testing systems and software is to perform
testing at the end of a project, just before the system is delivered to
the customer. This is sometimes called "The Big Bang" approach to
testing.
A
problem with the big bang approach is that the end of a project is one
of the most costly times to find and correct defects. I promote the
concept of full life cycle testing to find defects throughout the
development project. This includes inspections, walkthroughs, unit and
integration testing.
Optimizing
the Testing Process
It is
not unusual for an organization to spend 50% or more of the cost of
developing a system on testing-related tasks. By making testing a
process instead of an art or a craft, waste and redundancy can be
reduced. It is possible to reduce the cost of testing while increasing
the effectiveness of testing.
Who
Should Perform Testing?
A point
of debate is, "Which is more effective - independent testing or testing
by developers?" I believe that the answer depends on the organizational
readiness to perform testing. In some organizations, the developers do
not have the processes, training, skills, or tools to effectively
perform testing. In these cases, testing might be performed by an
independent group until the developers increase their testing readiness.
Ideally,
Quality Control (i.e., testing and inspections) should be the
responsibility of the people producing a product and should be
performed throughout the construction process. A drawback of
independent testing is that it sometimes fosters a mindset where
developers assume that someone else will find their defects.
Since
the end-users of a system are the people who will be using the
information system in the real world, their involvement is critical to
the project's success. I believe the end-users should be involved in
verifying user requirements, reviewing system design, prototyping,
system testing and user acceptance testing.
User
acceptance testing is a specialty of Rice Consulting, with training
courses available and a methodology for user acceptance testing.
A
Process for Testing
I
understand that testing has many challenges. In fact, I co-wrote a book
about the top ten challenges in testing. One of the
challenges is testing all possible conditions. Except in very simple
cases, it is impossible to test every possible combination of
conditions.
The best
approach is to use a defined process for testing that provides a high
degree of assurance that the system will meet its intended purpose. I
use testing processes that have been tried and proven in a cross
section of organizations worldwide.
The
Role of Automated Test Tools
Automated
testing tools have provided a way for testers to repeat mundane testing
tasks. However, it is important to understand that an environment for
automated testing must exist for automated testing tools to be
effective.
I can
help lead you through the maze of activities that should be performed
before, during and after an automated test tool is installed.
I know
test tools! My test tool database contains recent information on most
test tools. I can help you find the right tool and make the the most of
it. Perhaps you already have a test tool, but are not using it
effectively. I can work with you to isolate the problems and get on
track with automated testing!
How
Much Testing Is Enough?
Since
there are so many conceivable test conditions, it is possible to test
forever and still not completely test a software module or system. I
believe that testing should be based on risk. That is, the higher risk
system components are tested at a higher priority than lower risk
components. A risk assessment is performed to determine where the high
risk areas are in a system.
Another
measure of when testing is complete is to observe defect trends. The
defect rate should level off as testing nears completion.
Many
times, the problem is not one of enough testing - it is a matter of not
testing effectively with the resources and time at hand!
Putting
It All Together
You
can't test quality into software. Testing can help find the defects
that might exist, but much can be done to prevent defects from ever
occurring. In addition, the results of testing can be used to refine
the development and testing process.
Most
testing problems are not technical in nature - they are human problems,
such as:
- Little
or no management support,
- Lack
of acceptance of a testing process,
- Not
enough time scheduled for testing,
- Lack
of training in testing techniques,
- Not
enough people available for testing or the development of business test
cases.
The
human problems often require cultural change in an organization, and
cultural change takes time. I can be an independent agent of change in
your organization by working with management, developers and users to
actually put the principles of information quality into practice.
My
approach to software quality and testing enables organizations to build
and deploy quality information systems, even in times of rapid
technological change.
All materials on this site
copyright 1996 - 2008, Rice Consulting Services, Inc.
Rice
Consulting Services, Inc.
P.O. Box 892003
Oklahoma City, OK 73189
405-691-8075
"Leaders
are made, they are not born. They are made by hard effort,
which is the price which
all of us must pay to achieve any goal that is
worthwhile." -- Vince Lombardi

This site best
viewed with the Mozilla Firefox
browser!
|