FROM THIS TEXT BOOK: http://cs.gmu.edu/~offutt/softwaretest/ Derive input space
ID: 649853 • Letter: F
Question
FROM THIS TEXT BOOK: http://cs.gmu.edu/~offutt/softwaretest/
Derive input space partitioning tests for the GenericStack class with the following method signatures:
public GenericStack ();
public void Push (Object X);
public Object Pop ();
public boolean IsEmt ();
Assume the usual semantics for the stack. Try to keep your partitioning simple, choose a small number of partitions and blocks.
a) Define characteristics of inputs
b) Partition the characteristics into blocks
c) Define values for the blocks
Explanation / Answer
Input Space Partitioning In a very fundamental way, all testing is about choosing elements from the input space of the software being tested. The criteria presented previously can be viewed as defining ways to divide the input space according to the test requirements. The assumption is that any collection of values that satisfies the same test requirement will be "just as good." Input space partitioning takes that view in a much more di- rect way. The input domain is defined in terms of the possible values that the input parameters can have. The input parameters can be method parameters and global variables, objects representing current state, or user-level inputs to a program, de- pending on what kind of software artifact is being analyzed. The input domain is then partitioned into regions that are assumed to contain equally useful values from a testing perspective, and values are selected from each region. This way of testing has several advantages. It is fairly easy to get started be- cause it can be applied with no automation and very little training. The tester does not need to understand the implementation; everything is based on a descrip- tion of the inputs. It is also simple to "tune" the technique to get more or fewer tests. Consider an abstract partition q over some domain D. The partition q defines a set of equivalence classes, which we simply call blocks, B q } The blocks are pairwise disjoint, that is bi n bj = 0, / ^ /; bi, bj e B q and together the blocks cover the domain D, that is Jb = D beB q This is illustrated in Figure 4.1. The input domain D is partitioned into three blocks, bi,
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.