Program Development in Java: Abstraction, Specification, and Object-Oriented Design by John Guttag & Barbara Liskov

Program Development in Java: Abstraction, Specification, and Object-Oriented Design by John Guttag & Barbara Liskov

Author:John Guttag & Barbara Liskov [John Guttag]
Language: eng
Format: epub
Tags: Certification, Java
Publisher: Addison-Wesley Professional
Published: 2000-06-05T21:00:00+00:00


Aliasing Errors

Another kind of boundary condition occurs when two different formals both refer to the same mutable object. For example, suppose procedure

static void appendVector (Vector v1, Vector v2)

throws NullPointerException

// MODIFIES: v1 and v2

// EFFECTS: If v1 or v2 is null throws NullPointerException else

// removes all elements of v2 and appends them in reverse order

// to the end of v1.

were implemented by

static void appendVector (Vector v1, Vector v2) {

if (v1 == null) throws new NullPointerException

("Vectors.appendVector");

while (v2.size( ) > 0) {

v1.addElement(v2.lastElement( ));

v2.removeElementAt(v2.size( ) - 1); }

}

Any test data that did not include an input in which v1 and v2 refer to the same nonempty array would fail to turn up a very serious error in appendVector.

Sidebar 10.2 summarizes black-box testing.



Download



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.