On October 23rd, 2014, we updated our
By continuing to use LinkedIn’s SlideShare service, you agree to the revised terms, so please take a few minutes to review them.
Testing Overview and Black-Box Testing TechniquesSoftware testing is an important technique for assessing the quality of a software product.In this chapter, we will explain the following: • the basics of software testing, a verification and validation practice, throughout the entire software development lifecycle • the two basic techniques of software testing, black-box testing and white-box testing • six types of testing that involve both black- and white-box techniques. • strategies for writing fewer test cases and still finding as many faults as possible • using a template for writing repeatable, defined test cases1 Introduction to TestingSoftware testing is the process of analyzing a software item to detect the differencesbetween existing and required conditions (that is, bugs) and to evaluate the features ofthe software item [9, 12]. Software testing is an activity that should be done throughoutthe whole development process .Software testing is one of the “verification and validation,” or V&V, software practices.Some other V&V practices, such as inspections and pair programming, will be discussedthroughout this book. Verification (the first V) is the process of evaluating a system orcomponent to determine whether the products of a given development phase satisfy theconditions imposed at the start of that phase . Verification activities include testingand reviews. For example, in the software for the Monopoly game, we can verify thattwo players cannot own the same house. Validation is the process of evaluating a systemor component during or at the end of the development process to determine whether itsatisfies specified requirements . At the end of development validation (the second V)activities are used to evaluate whether the features that have been built into the softwaresatisfy the customer requirements and are traceable to customer requirements. Forexample, we validate that when a player lands on “Free Parking,” they get all the moneythat was collected. Boehm  has informally defined verification and validation asfollows:Verification: Are we building the product right?Through verification, we make sure the product behaves the way we want it to. Forexample, on the left in Figure 1, there was a problem because the specification said thatplayers should collect $200 if they land on or pass Go. Apparently a programmerimplemented this requirement as if the player had to pass Go to collect. A test case inwhich the player landed on Go revealed this error.Validation: Are we building the right product?Through validation, we check to make sure that somewhere in the process a mistakehasn’t been made such that the product build is not what the customer asked for;validation always involves comparison against requirements. For example, on the rightin Figure 1, the customer specified requirements for the Monopoly game – but theprogrammer delivered the game of Life. Maybe the programmer thought he or she