Effective Software Testing 50 Specific Ways to Improve Your Testing

by
Edition: 1st
Format: Paperback
Pub. Date: 2002-12-18
Publisher(s): Addison-Wesley Professional
  • Free Shipping Icon

    This Item Qualifies for Free Shipping!*

    *Excludes marketplace orders.

List Price: $62.99

Rent Book

Select for Price
There was a problem. Please try again later.

New Book

We're Sorry
Sold Out

Used Book

We're Sorry
Sold Out

eBook

We're Sorry
Not Available

How Marketplace Works:

  • This item is offered by an independent seller and not shipped from our warehouse
  • Item details like edition and cover design may differ from our description; see seller's comments before ordering.
  • Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
  • Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
  • Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.

Summary

With the advent of agile methodologies, testing is becoming the responsibility of more and more team members. In this new book, noted testing expert Dustin imparts the best of her collected wisdom. She presents 50 specific tips for a better testing program. These fifty tips are divided into ten sections, and presented so as to mirror the chronology of a software project.

Author Biography

Elfriede Dustin is the lead author of Automated Software Testing (Addison-Wesley, 1999), and Quality Web Systems (Addison-Wesley, 2002). An acknowledged expert in software engineering and testing practices, she has assisted numerous companies in the definition and implementation of QA and testing processes. For more information, please see her Web site at www.effectivesoftwaretesting.com.



0201794292AB12052002

Table of Contents

Prefacep. xi
Acknowledgmentsp. xv
Requirements Phasep. 1
Involve Testers from the Beginningp. 3
Verify the Requirementsp. 5
Design Test Procedures As Soon As Requirements Are Availablep. 11
Ensure That Requirement Changes Are Communicatedp. 15
Beware of Developing and Testing Based on an Existing Systemp. 19
Test Planningp. 23
Understand the Task At Hand and the Related Testing Goalp. 25
Consider the Risksp. 31
Base Testing Efforts on a Prioritized Feature Schedulep. 39
Keep Software Issues in Mindp. 41
Acquire Effective Test Datap. 43
Plan the Test Environmentp. 47
Estimate Test Preparation and Execution Timep. 51
The Testing Teamp. 63
Define Roles and Responsibilitiesp. 65
Require a Mixture of Testing Skills, Subject-Matter Expertise, and Experiencep. 75
Evaluate the Tester's Effectivenessp. 79
The System Architecturep. 91
Understand the Architecture and Underlying Componentsp. 93
Verify That the System Supports Testabilityp. 97
Use Logging to Increase System Testabilityp. 99
Verify That the System Supports Debug and Release Execution Modesp. 103
Test Design and Documentationp. 107
Divide and Conquerp. 109
Mandate the Use of a Test-Procedure Template and Other Test-Design Standardsp. 115
Derive Effective Test Cases from Requirementsp. 121
Treat Test Procedures As "Living" Documentsp. 125
Utilize System Design and Prototypesp. 127
Use Proven Testing Techniques when designing Test-Case Scenariosp. 129
Avoid Including Constraints and Detailed Data Elements within Test Proceduresp. 135
Apply Exploratory Testingp. 139
Unit Testingp. 143
Structure the Development Approach to Support Effective Unit Testingp. 145
Develop Unit Tests in Parallel or Before the Implementationp. 151
Make Unit-Test Execution Part of the Build Processp. 155
Automated Testing Toolsp. 159
Know the Different Types of Testing-Support Toolsp. 161
Consider Building a Tool Instead of Buying Onep. 167
Know the Impact of Automated Tools on the Testing Effortp. 171
Focus on the Needs of Your Organizationp. 177
Test the Tools on an Application Prototypep. 183
Automated Testing: Selected Best Practicesp. 185
Do Not Rely Solely on Capture/Playbackp. 187
Develop a Test Harness When Necessaryp. 191
Use Proven Test-Script Development Techniquesp. 197
Automate Regression Tests When Feasiblep. 201
Implement Automated Builds and Smoke Testsp. 207
Nonfunctional Testingp. 211
Do Not Make Nonfunctional Testing an Afterthoughp. 213
Conduct Performance Testing with Production-Sized Databasesp. 217
Tailor Usability Tests to the Intended Audiencep. 221
Consider All Aspects of Security, for Specific Requirements and System-Widep. 225
Investigate the System's Implementation To Plan for Concurrency Testsp. 229
Set Up an Efficient Environment for Compatibility Testingp. 235
Managing Test Executionp. 239
Clearly Define the Beginning and End of the Test-Execution Cyclep. 241
Isolate the Test Environment from the Development Environmentp. 245
Implement a Defect-Tracking Life Cyclep. 247
Track the Execution of the Testing Programp. 255
Indexp. 259
Table of Contents provided by Syndetics. All Rights Reserved.

Excerpts

In most software-development organizations, the testing program functions as the final "quality gate" for an application, allowing or preventing the move from the comfort of the software-engineering environment into the real world. With this role comes a large responsibility: The success of an application, and possibly of the organization, can rest on the quality of the software product. A multitude of small tasks must be performed and managed by the testing team--so many, in fact, that it is tempting to focus purely on the mechanics of testing a software application and pay little attention to the surrounding tasks required of a testing program. Issues such as the acquisition of proper test data, testability of the application's requirements and architecture, appropriate test-procedure standards and documentation, and hardware and facilities are often addressed very late, if at all, in a project's life cycle. For projects of any significant size, test scripts and tools alone will not suffice--a fact to which most experienced software testers will attest. Knowledge of what constitutes a successful end-to-end testing effort is typically gained through experience. The realization that a testing program could have been much more effective had certain tasks been performed earlier in the project life cycle is a valuable lesson. Of course, at that point, it's usually too late for the current project to benefit from the experience. Effective Software Testingprovides experience-based practices and key concepts that can be used by an organization to implement a successful and efficient testing program. The goal is to provide a distilled collection of techniques and discussions that can be directly applied by software personnel to improve their products and avoid costly mistakes and oversights. This book details 50 specific software testing best practices, contained in ten parts that roughly follow the software life cycle. This structure itself illustrates a key concept in software testing: To be most effective, the testing effort must be integrated into the software-development process as a whole. Isolating the testing effort into one box in the "work flow" (at the end of the software life cycle) is a common mistake that must be avoided. The material in the book ranges from process- and management-related topics, such as managing changing requirements and the makeup of the testing team, to technical aspects such as ways to improve the testability of the system and the integration of unit testing into the development process. Although some pseudocode is given where necessary, the content is not tied to any particular technology or application platform. It is important to note that there are factors outside the scope of the testing program that bear heavily on the success or failure of a project. Although a complete software-development process with its attendant testing program will ensure a successful engineering effort, any project must also deal with issues relating to the business case, budgets, schedules, and the culture of the organization. In some cases, these issues will be at odds with the needs of an effective engineering environment. The recommendations in this book assume that the organization is capable of adapting, and providing the support to the testing program necessary for its success. Organization This book is organized into 50 separate items covering ten important areas. The selected best practices are organized in a sequence that parallels the phases of the system development life cycle. The reader can approach the material sequentially, item-by-item and part-by-part, or simply refer to specific items when necessary to gain information about and understanding of a particular problem. For the most part, each chapter stands on its own, although there are references to other chapters, and other books, where helpful to provide the reader with additio

An electronic version of this book is available through VitalSource.

This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.

By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.

Digital License

You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.

More details can be found here.

A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.

Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.

Please view the compatibility matrix prior to purchase.