randy rice smallBefore 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.