Welcome to Community Server Sign in | Join | Help

Testing Object-Oriented Systems - Part 1: Preliminaries

Binder's book is large and so I think as I work through it I'll post my thoughts as I finish each part.  Here is the post for part 1.

Binder starts the book with the classic testing problem of testing a program that produces a triangle.  Since his book is about testing object-oriented systems, he works through an object-oriented program that implement the solution.  In doing so, he talks about how an object-oriented implementation poses different testing challenges than procedural programs.  He says that most of the tests for those earlier implementations are still valid but, by themselves, inadequate in the object-oriented (OO) world.

In the second chapter, Binder acknowleges the largeness of the book and gives the reader his guidance on how to approach the book.  He also talks about conventions used and ends with a rather large FAQ on various aspects of object-oriented testing.  As I read the FAQ, it occurred to me that I didn't yet have enough context for it to make sense and made a mental note to go back and re-read it after I finish the book.

Chapter 3 is the author's brief introduction to software testing.  Binder attempts a definition, provides a nomenclature, and talks about testing's limitations and what it can accomplish.  Chapter 3 is where he really lays out his view of software testing.  This is valuable since testing is such a new and immature profession.  There is little agreement, at least among most people I know, even on what common terms like test case mean.  Clearly defining these terms up front sets the context for the rest of the book.

Part 1 concludes with a longer chapter that talks about how object-oriented software "changes the game" of software testing.  The chapter starts with a disclaimer that although the author talks about how object-oriented software makes testing more challenging, it shouldn't be taken as a criticism of the object-oriented paradigm.  He then discusses the necessity of having a fault model and describes some fault models for object-oriented software.  Problems that come from encapsulation, inheritance, and polymorphism are described.  General and language-specific issues from the testing literature are listed.  Coverage models are also mentioned.  The last chapter of part 1 ends with what Binder titles "An OO Testing Manifesto."  The three parts of this manifesto talk about bug hazards that are unique to OO testing, OO test automation, and effective process.

For me, part 1 did an effective job at setting the stage for the rest of the book.  It helped me understand where Binder was coming from, gave me some idea of why the book was so large, and left me eager to move on to the rest of the book.

Published Sunday, March 04, 2007 10:23 AM by ronpih
Filed under: ,

Comments

No Comments
Anonymous comments are disabled