Home

  About Us

  Products

  Process Models

  SE Resources

  Commentary

  Contact us

Breaking News!

A new blog ... visit OnCenter, Roger Pressman's running commentary on the world at large

A new edition ... the 6th edition of Software Engineering is available now

A first novel ... Roger Pressman's first novel is a technothriller -- The Aymara Bridge

A new training curriculum! RSP&A has partnered with QAI to develop a comprehensive Internet-based software engineering curriculum.

A redesigned Web site ... we've done a major redesign and added many new features

 
Reference Library
Testing Strategies

This page provides access to a variety of downloadable papers that address software testing strategies. The following topics are considered:

Debugging General
Patterns
Strategies



Debugging

A Critique of Software Defect Prediction Models [PDF]
Norman E. Fenton and Martin Neil

This paper reviews the literature on software metrics and statistical models used to predict the number of defects in software systems. The reviews showed that the conjecture lacks support and some models are misleading. The paper also recommends models for software defect prediction.

Analyzing Models for Software Debugging [PDF]
Markus Stumptner, Dominik Wieland and Franz Wotawa

This paper extends the authors previous work on the representation and analysis of Java programs for diagnosis in a new direction by providing a description and analysis of the issues arising from handling object references in dependency-based models of Java programs. They empirically compare dependency based models with a value-based model using a set of example programs in terms of required user interaction (questions put to the user) and examine and incorporate specific interesting error categories.

A Survey of Intelligent Debugging [PDF]
Markus Stumptner and Franz Wotawa

This paper resents an overview of AI approaches to the development of intelligent debugging systems which includes tutoring systems as well as Bayesian Net formalisms to traditional debugging approaches like Algorithmic (or Declarative) Debugging. The recent use of model-based diagnosis principles as a basis for software debugging research is also examined.

Automated Debugging: Are We Close? [PDF]
Andreas Zeller

This article discusses a new algorithm called Delta Debugging that uses the results of automated testing to determine a set of relevant failure-inducing circumstances. Topics include: how delta debugging works, simplifying program input, simplifying user interactions, isolating differences, and finding failure-inducing code changes.

Debugging Temporal Specifications with Concept Analysis [PDF]
Glenn Ammons, David Mandelin, Rastislav Bodik and James R. Larus

This paper discusses a method for debugging specifications. The model uses concept analysis to automatically group the traces into highly similar clusters. These clusters are examined instead of individual traces leading to less work.

End-User Debugging for E-Commerce [PDF]
Henry Lieberman and Earl Wagner

This paper discusses the need for end-user debugging tools. These debugging tools would solve many simple problems like mistyped numbers or lost orders. These tools would benefit both the users and the businesses.

Faults of Omission [PDF]
Brian Marick

This paper discusses faults of omission of which studies have shown to be a common fault in code. This article discusses how to prevent faults of omissions.

Software Debugging, Testing, and Verification [PDF]
B. Hailpern and P. Santhanam

In commercial software development organizations, increased complexity of products, shortened development cycles, and higher customer expectations of quality have placed a major responsibility on the areas of software debugging, testing, and verification. As this issue of the IBM Systems Journal illustrates, there are exciting improvements in the underlying technology on all three fronts. However, we observe that due to the informal nature of software development as a whole, the prevalent practices in the industry are still immature, even in areas where improved technology exists. In addition, tools that incorporate the more advanced aspects of this technology are not ready for large-scale commercial use. Hence there is reason to hope for significant improvements in this area over the next several years.

The Debugging Scandal and What to Do About It [HTML]
Henry Lieberman

This article discusses the debugging problem and how it has been ignored by the computer science community. Debugging tools can be used to help the process and are also necessary for the incremental evolution of software. This article also mentions many ideas that have potential for improving debugging process.

Back to the top

Language-System Specific

Compile - Time Debugging of C Programs Working on Trees [PDF]
Jacob Elgaard, Anders Møller and Michael I. Schwartzbach

This paper discussed a technique for automatically verifying the safety of simple C programs working on tree-shaped data structures. This paper does not consider the complete behavior of programs, but only attempts to verify that they respect the shape and integrity of the store. A verified program is guaranteed to preserve the tree-shapes of data structures, to avoid pointer errors such as NULL dereferences, leaking memory, and dangling references, and furthermore to satisfy assertions specified in a specialized store logic.

Debugging 101 [PDF]
Peter Knapp

The aim of this paper is to show a beginning user of SAS how to debug SAS programs. New users often review their logs only for syntax errors that appear in red. They neglect to look for other types of coding errors. In addition, once all coding errors are cleaned up, new users can find that their programs do not produce the desired results. To produce the desired results they need to uncover logic errors that are often more difficult to find than coding errors. By demonstrating various debugging techniques, the author plans to show that with a little practice, one can master the art of debugging SAS programs.

Debugging Tools [PDF]
Author Unknown

This section describes at an introductory level the use of debugging tools that are available on most UNIX systems. Additional information on these tools for advanced use should be obtained from the man pages as well as hard copy manuals.

Debugging with the Integrated Development Environment
Version 5.0 [PDF]

IBM

This book on debugging VisualAge C++ Professional for AIX includes the following chapters: debugging with VisualAge C++, prepare a program for debugging, start or stop debugging a program, debug logic and program flow, and debug variable contents and memory.

IDebug: An Advanced Debugging Framework for Java [PDF]
Joseph R. Kiniry

The IDebug debugging framework is an advanced debugging framework for Java. This framework provides the standard core debugging and specification constructs such as assertions, debug levels and categories, stack traces, and specialized exceptions. Planned improvements include support for debugging distributed object systems via currying call stacks across virtual machine contexts and debug information logging with a variety of networking media including unicast, multicast, RMI, distributed events, and JavaSpaces.

Intro to MS Visual C++ Debugging [PDF]
Barnette ND and McQuain WD

This slide presentation outlines how to use the MS Visual C++ GUI Debugger. Topics include: debugger access, begin debug trace, trace controls, variable examination, breakpoints, and conditional breakpoints.

Linux Debugging Techniques [PDF]
Ross Mikosh

This slide presentation covers Linux debugging techniques in the following topics: types of problems, tools, error and debug messages, handling failures, kernel investigation, handling a system crash, oops analysis example, LKCD/Lcrash, and more information.

Notes to Accompany Debugging Lecture [PDF]
Jamie Blustein

This lecture gives some general advice to debugging code. Examples of real situations are used.

Back to the top

General

A Practical Approach to Validating and Testing Software Systems Using Scenarios [PDF]
Johannes Ryser and Martin Glinz

Scenarios (use cases) are used in most modern object oriented software development methods to help elicit and document user requirements. Yet they are seldom used to derive concrete system test cases. This paper presents a procedure to use scenarios in a defined way to systematically derive test cases for system test. This is done by formalization of natural language scenarios into statecharts, annotation of statecharts with helpful information for test case creation/generation and by path traversal in the statecharts to determine concrete test cases.

It's Testing Time!
Patterns for Testing Software [PDF]

Manfred Lange

This paper contains a collection of test techniques that are focused on object-oriented programming languages. This paper also describes some patterns of scenarios that occur repeatedly in testing software.

Software Testing Best Practices [PDF]
Ram Chillarege

This report contains 28 best practices that contribute to improve software testing and which several organizations have gained from them.

Validation and Testing [PDF]
Dieter Hogrefe, Beat Koch and Helmut Neukirchen

Use of formal specifications provides the basis for allowing validation of the specification towards expected behavior, and it allows testing of an implementation according to the formal specification. This paper introduces and provides an overview of techniques for validation and testing.

What is Software Testing? And Why is it so Hard? [PDF]
James A. Whittaker

This article discusses software testing using four phases. This article investigates problems testers face and also identifies technical issues that a solution must address.

Back to the top

Patterns

A New Technique to Ensure Quality of Test Patterns [PDF] *FEE*
Peng-Cheng Koo and San-Liek Pang

As the complexity of VLSI devices increases so do the number and size of test patterns which makes it more difficult to perform exhaustive checks. This paper presents a technique called PinCheck that detects all active pins in a test pattern electrically using an ATE.

Architecture Achilles Heel Analysis [PDF]
Elisabeth Hendrickson and Grant Larsen

This objective of this report is to identify areas for bug hunting- relative to the architecture. Understanding the big picture of the system under test can help testers focus their energy appropriately. Without this understanding it's very easy to spend large amounts of time investigating relatively minor bugs or risks.

Automating Test Oracles and Decomposability [PDF]
Keith Stobie

This paper uses the concept of patterns to describe the details of why a particular test result handling method is chosen to automate a test design.

Failing Embedded COM Objects [PDF]
Author Unknown

This report outlines tests to do to show that windows based programs fail when inserting embedded OLE/COM objects.

Pair Testing
Version 0.3 - draft [PDF]

Brian Marick

This paper discusses team testing. Topics include: working alone is working without a safety net, and begin by having people work in pairs on high-creativity, high-discipline, or high-concentration tasks where two people can focus on the same object of work.

Pair Testing (aka Extreme Testing) [PDF]
James Bach and Sam Guckenheimer

This paper discusses pair testing A description is given, six context/problem/solution scenarios relating to pair testing are mentioned, and the solution and forces are also discussed.

Patterns for Java Program Testing [PDF]
Marco Torchiano

There are several basic Java testing techniques, which are in common use among the programmers. This paper proposes to use patterns to describe such techniques and to arrange the patterns in a pattern language. This paper is concerned with class-level and package-level tests. The paper focuses on idioms and basic design patterns.

Back to the top

Strategies

A Manager's Guide to Evaluating Test Suites [PDF]
Brian Marick, James Bach and Cern Kaner

This paper discusses how to know how good a suite of tests are. Steps are given to evaluate a test suite one time. Evaluation should take place several times throughout the project.

An Evaluation Scheme of Software Testing Techniques [PDF]
Huey-Der Chu

This paper briefly surveys the software testing techniques based on the works of classification and evaluation. In addressing the two major software testing issues, this paper presents a scheme by a data flow diagram (DFD) for evaluating software testing techniques. Following this diagram step by step, all the activities involved and the relative techniques were described. A strategy proposal for software testing in the development of applications is advocated later.

Principles and Methods of Testing Finite State Machines
- A Survey [PDF]

David Lee and Mihalis Yannakakis

Because of its practical importance and theoretical interest, the problem of testing finite state machines has been studied in different areas and at various times. The area seemed to have mostly died down until a few years ago when the testing problem was resurrected and is now being studied anew due to its applications to conformance testing of communication protocols. While some old problems which had been open for decades were resolved recently, new concepts and more intriguing problems from new applications emerge. This paper reviews the fundamental problems in testing finite state machines and techniques for solving these problems, tracing progress in the area from its inception to the present and the state of the art.

Software Test Technologies Report
Test and Reengineering Tool Evaluation Project [PDF]

Gregory T. Daich, Gordon Price, Bryce Ragland and Mark Dawood

This report discusses software testing technologies, test preparation, test execution, test evaluation, and source code static analysis tools. The report also explains how features of current testing technologies can improve software development and maintenance.

Testing Evolving Software [PDF]
Mary Jean Harrold

Because regression testing is important and expensive, many researchers have focused on ways to make it more efficient and effective. Research o regression testing spans a wide variety of topics, including test environments and automation, capture-playback mechanisms, regression-test selection, coverage identification, test suite maintenance, regression testability, and regression-testing process. This paper discusses the state of the art in several importation aspects of regression testing and presents some promising areas for future research.

The Tester's Triad: Bug, Product, User [PDF]
Brian Marick

This paper discusses that good testers pay attention to three things: using bugs (bug reports), using product structure (build a mental model of product internals), and using the user (understand how users spend their days).

Back to the top