Print this Page

Testing Information Systems

Overview
(2-3 Days)

This course presents topics, tools and techniques on how to plan, structure and execute testing efficiently and effectively in the real world.  Effective testing is planned and budgeted at the beginning of your project.  Test plans are based on a test strategy that you have established to manage business risks.  Efficient testing is engineered for optimal performance throughout the system life cycle.  A minimum number of test cases ensures that the system works in accordance with expectations.

Approach

All of the tools and techniques of this 2-3 day seminar are based on 2 simple philosophies:

  • An information system should be tested at the appropriate level of detail to reduce the risk of exposure caused by a potential failure.

  • Testing doesn’t follow development, it is an integral part of the creative process.

The seminar takes a pragmatic “tell me, show me, let me” approach to testing.  Based on the concept that techniques are best understood if they are experienced by the participants, the seminar is built and sequenced around practical exercises.

Audience

The target audience includes project leaders, analysts, designers, programmers, testing professionals, test process managers and end-users who are interested in reducing the time required to deliver usable information technology.

Tailoring

The modular structure of this class allows you to mix and match the subjects that matter most to your organization.  Selected sections can be presented as a conventional seminar to a single group or each module can be attended by a different mix of participants.  You can optimize your time investment by targeting specific techniques and maximize your company’s return on its training dollars.

Outline

I.  General Introduction (.5-2 hours)

The major challenge of testing is to find a balance between the necessity for quality and the cost of delivering the information technology that the business community needs.  To meet this challenge, you need to clearly understand both the risk of system failure and the mechanisms by which you can reduce that risk.

  • What is the true goal of information system testing?

  • How do you define the major testing activities and deliverables?

  • What relationship does testing have to your system development methodology?

  • What do you understand under unit, integration, system and acceptance testing?

II.  Developing Behavioral Tests (2-4 hours)

Behavioral testing (a.k.a. “black box” testing) is the major tool for testing information systems.  It does not require knowledge of the inner workings.  You need to know how to activate the system and how to interpret the reaction.  Behavioral tests can be and are performed by professional testers, analysts, designers and end-users throughout the lifetime of the system.  The challenge, then, is not how to do black box testing, but how to do it well.

  • What can you use to identify behavioral tests?

  • What do behavioral tests prove?

  • What level of documentation do you need for test cases?

  • Which tests are most likely to find errors?

III.  Testing Code Structures (.5-3 hours)

Structural (a.k.a. “white” or “clear” box) testing is a viable technique, assuming you can interpret the source code of the object being tested.  This testing approach gives us mathematical models to calculate the number of tests needed to meet desired coverage levels.  If all you really need to prove is that your code can’t explode, structural testing is for you.

  • How much testing is enough?

  • What do coverage levels prove and what do they neglect?

  • How can you calculate the number of test cases needed for path coverage?

  • What techniques can be used to identify specific structural tests?

IV.  Engineering Test Data (1-3 hours)

Careful selection of the value of each field that you can manipulate will drastically reduce the number of test cases that you need to thoroughly test a system.  Engineered data can give you a much higher confidence in the reliability of the system without identifying every unique situation that the system might eventually face.

  • Where do you find out which data you can manipulate?

  • How can you identify the optimal content of each data element?

  • What are realistic expectations for reducing the number of tests needed?

  • What is the overall pay-back for engineering the data?

V.  Creating Test Plans (1-3 hours)

The test plan is where all of the pieces have to fit together.  Your defined and documented test cases have to be sequenced, resourced, scheduled and managed.  A good test plan lets you identify problems before they occur and allows for proactive adjustments.

  • When can testing start and how long should it take?

  • What does a good test plan encompass?

  • What criteria can be used for selecting appropriate test cases?

  • How do you know when you’ve tested enough?

VI.  Establishing a Test Strategy (1-3 hours)

Your test strategy establishes boundaries within which individual project leaders can base decisions suitable to their specific needs.  This strategy supports a consistent suite of automated tools approved for use within your organization.  Suitable testing methods allow sufficient flexibility while ensuring continuity within your testing environment.

  • What does your testing environment encompass?

  • What categories of automated testing tools are available?

  • Which manual techniques are the most effective?

  • Which criteria do you apply to select a testing approach for an application?

VII.  Testing Without Code (1-3 hours)

The information systems industry has only recently accepted the idea that quality must be delivered throughout the systems development life cycle.  Experiences gathered in other creative processes can enable you to drastically decrease the cost of errors via early detection. There is a difference between building the right system and building the system right.

  • How do you test an evolving information system?

  • How can customer requirements be effectively "tested"?

  • What proves a good design?

  • What other techniques are available?

VIII.  Making a Difference (.5-1 hour)

Developing or changing the testing process within an existing organization is a daunting task.  It requires a defined project with all the implied controls, decisions, support, etc.  There may, however, be some things that you can accomplish without redesigning the known universe.

  • Which aspects are of the highest priority for you and your organization?

  • What are you going to do about it?

Appendix

  • Case Study

  • Bibliography

Objectives

I.  General Introduction

  • Evaluate how your organization tests information systems

  • Determine the impact of testing on a system development life cycle

  • Define common testing terms consistently

  • Organize testing into unit, integration and system test phases

II.  Developing Behavioral Tests

  • Recognize test cases on data flow and/or event/response diagrams

  • Define business test cases based on business requirements

  • Identify event based test cases using catastrophe analysis techniques

III.  Testing Code Structures

  • Develop unit tests from diagrams, decision trees and/or pseudo-code

  • List 3 measurable coverage types and select whichever is appropriate

  • Use coverage levels as a tool for determining system reliability

  • Calculate the number of test cases required for specific coverage levels

IV.  Engineering Test Data

  • Document test actions and expected results in test scripts

  • Engineer test data using equivalence groups and boundary values

  • Determine data dependencies from Entity/Relationship Diagrams

  • Optimize test cases to achieve defined testing goals

V.  Creating Test Plans

  • Create test plans based on risk analysis and cost/benefit perspectives

  • Assemble test cases into test plans

  • Establish measurable criteria that define when testing is complete

  • Calculate the probable effort required for testing based on metrics

VI.  Establishing a Test Strategy

  • List 5 generic types of automated testing tools and describe their use

  • Categorize software errors into 10 groups

  • Recognize personal and organizational impacts on testing

  • Define a regression test environment suitable for your organization

VII.  Testing Without Code

  • Evaluate business requirements for testability

  • Prepare and conduct quality assurance walk-throughs

  • Validate the completeness of a defined set of test cases

  • Test the scope of the requirements against business problems

VIII.  Making a Difference

  • Identify ways to implement a testing strategy in your environment

  • Adapt a testing approach to your organization’s needs