|
| Ron Patton |
| November 2000, Sams, Paperback, 389 pages, ISBN 0672319837
|
|
|
|
 |
|
| Software Testing is the book for new or aspiring software testers
interested in learning about this crucial part of the software development
process. The complexity and size of today's software makes writing bug-free
code extremely difficult, even for highly experienced programmers. Couple
that with our increasing reliance on software for performing everyday
tasks and its pervasiveness in the medical, telecommunications, manufacturing,
and financial industries, and a software bug can spell disaster. Quality
software can't be created with an ad- hoc, part-time, bug hunt. It requires
a methodical and disciplined approach to preventing, finding, and reporting
bugs. Software Testing will show you what it takes to be a successful
software tester, assuring that you discover those nasty bugs before your
customers do.
Ideal for programmers and project managers who want to better understand
what their software test teams do and how they operate
Most large software companies are so committed to quality that they
have one or more testers for each programmer
According to ZDNet, "despite increased competition, the overall [software]
testing and monitoring market is growing exponentially"
|
 |
|
| Introduction
Part I - The Big Picture
Chapter 1 - Software Testing Background
- Infamous Software Error Case Studies
- Disney's Lion King, 19941995
- Intel Pentium Floating-Point Division Bug, 1994
- NASA Mars Polar Lander, 1999
- Patriot Missile Defense System, 1991
- The Y2K (Year 2000) Bug, circa 1974
- What Is a Bug?
- Terms for Software Failures
- Software Bug: A Formal Definition
- Why Do Bugs Occur?
- The Cost of Bugs
- What Exactly Does a Software Tester Do?
- What Makes a Good Software Tester?
- Summary
- Quiz
Chapter 2 - The Software Development Process
- Product Components
- What Effort Goes Into a Software Product?
- What Parts Make Up a Software Product?
- Software Project Staff
- Software Development Lifecycle Models
- Big-Bang Model
- Code-and-Fix Model
- Waterfall Model
- Spiral Model
- Summary
- Quiz
Chapter 3 - The Realities of Software Testing
- Testing Axioms
- It's Impossible to Test a Program Completely
- Software Testing Is a Risk-Based Exercise
- Testing Can't Show That Bugs Don't Exist
- The More Bugs You Find, the More Bugs There Are
- The Pesticide Paradox
- Not All the Bugs You Find Will Be Fixed
- When a Bug's a Bug Is Difficult to Say
- Product Specifications Are Never Final
- Software Testers Aren't the Most Popular Members
of a Project Team
- Software Testing Is a Disciplined Technical Profession
- Software Testing Terms and Definitions
- Precision and Accuracy
- Verification and Validation
- Quality and Reliability
- Testing and Quality Assurance (QA)
- Summary
- Quiz
Part II - Testing Fundamentals
Chapter 4 - Examining the Specification
- Getting Started
- Black-Box and White-Box Testing
- Static and Dynamic Testing
- Static Black-Box Testing: Testing the Specification
- Performing a High-Level Review of the Specification
- Pretend to Be the Customer
- Research Existing Standards and Guidelines
- Review and Test Similar Software
- Low-Level Specification Test Techniques
- Specification Attributes Checklist
- Specification Terminology Checklist
- Summary
- Quiz
Chapter 5 - Testing the Software with Blinders On
- Dynamic Black-Box Testing: Testing the Software While Blindfolded
- Test-to-Pass and Test-to-Fail
- Equivalence Partitioning
- Data Testing
- Boundary Conditions
- Sub-Boundary Conditions
- Default, Empty, Blank, Null, Zero, and None
- Invalid, Wrong, Incorrect, and Garbage Data
- State Testing
- Testing the Software's Logic Flow
- Testing States to Fail
- Other Black-Box Test Techniques
- Behave Like a Dumb User
- Look for Bugs Where You've Already Found Them
- Follow Experience, Intuition, and Hunches
- Summary
- Quiz
Chapter 6 - Examining the Code
- Static White-Box Testing: Examining the Design and Code
- Formal Reviews
- Peer Reviews
- Walkthroughs
- Inspections
- Coding Standards and Guidelines
- Examples of Programming Standards and Guidelines
- Obtaining Standards
- Generic Code Review Checklist
- Data Reference Errors
- Data Declaration Errors
- Computation Errors
- Comparison Errors
- Control Flow Errors
- Subroutine Parameter Errors
- Input/Output Errors
- Other Checks
- Summary
- Quiz
Chapter 7 - Testing the Software with X-Ray Glasses
- Dynamic White-Box Testing
- Dynamic White-Box Testing versus Debugging
- Testing the Pieces
- Unit and Integration Testing
- An Example of Module Testing
- Data Coverage
- Data Flow
- Sub-Boundaries
- Formulas and Equations
- Error Forcing
- Code Coverage
- Program Statement and Line Coverage
- Branch Coverage
- Condition Coverage
- Summary
- Quiz
Part III - Applying Your Testing Skills
Chapter 8 - Configuration Testing
- An Overview of Configuration Testing
- Isolating Configuration Bugs
- Sizing Up the Job
- Approaching the Task
- Decide the Types of Hardware You'll Need
- Decide What Hardware Brands, Models, and Device Drivers
Are Available
- Decide Which Hardware Features, Modes, and Options Are
Possible
- Pare Down the Identified Hardware Configurations to a
Manageable Set
- Identify Your Software's Unique Features That Work
with the Hardware Configurations
- Design the Test Cases to Run on Each Configuration
- Execute the Tests on Each Configuration
- Rerun the Tests Until the Results Satisfy Your Team
- Obtaining the Hardware
- Identifying Hardware Standards
- Configuration Testing Other Hardware
- Summary
- Quiz
Chapter 9 - Compatibility Testing
- Compatibility Testing Overview
- Platform and Application Versions
- Backward and Forward Compatibility
- The Impact of Testing Multiple Versions
- Standards and Guidelines
- High-Level Standards and Guidelines
- Low-Level Standards and Guidelines
- Data Sharing Compatibility
- Summary
- Quiz
Chapter 10 - Foreign-Language Testing
- Making the Words and Pictures Make Sense
- Translation Issues
- Text Expansion
- ASCII, DBCS, and Unicode
- Hot Keys and Shortcuts
- Extended Characters
- Computations on Characters
- Reading Left to Right and Right to Left
- Text in Graphics
- Keep the Text out of the Code
- Localization Issues
- Configuration and Compatibility Issues
- Foreign Platform Configurations
- Data Compatibility
- How Much Should You Test?
- Summary
- Quiz
Chapter 11 - Usability Testing
- User Interface Testing
- What Makes a Good UI?
- Follows Standards or Guidelines
- Intuitive
- Consistent
- Flexible
- Comfortable
- Correct
- Useful
- Testing for the Disabled: Accessibility Testing
- It's the Law
- Accessibility Features in Software
- Summary
- Quiz
Chapter 12 - Testing the Documentation
- Types of Software Documentation
- The Importance of Documentation Testing
- What to Look for When Reviewing Documentation
- The Realities of Documentation Testing
- Summary
- Quiz
Chapter 13 - Web Site Testing
- Web Page Fundamentals
- Black-Box Testing
- Text
- Hyperlinks
- Graphics
- Forms
- Objects and Other Simple Miscellaneous Functionality
- Gray-Box Testing
- White-Box Testing
- Configuration and Compatibility Testing
- Usability Testing
- Introducing Automation
- Summary
- Quiz
Part IV - Supplementing Your Testing
Chapter 14 - Automated Testing and Test Tools
- The Benefits of Automation and Tools
- Test Tools
- Viewers and Monitors
- Drivers
- Stubs
- Stress and Load Tools
- Interference Injectors and Noise Generators
- Analysis Tools
- Software Test Automation
- Macro Recording and Playback
- Programmed Macros
- Fully Programmable Automated Testing Tools
- Random Testing: Monkeys and Gorillas
- Dumb Monkeys
- Semi-Smart Monkeys
- Smart Monkeys
- Realities of Using Test Tools and Automation
- Summary
- Quiz
Chapter 15 - Bug Bashes and Beta Testing
- Only As Far As the Eye Can See
- Test Sharing
- Beta Testing
- Outsourcing Your Testing
- Summary
- Quiz
Part V - Working with Test Documentation
Chapter 16 - Planning Your Test Effort
- The Goal of Test Planning
- Test Planning Topics
- High-Level Expectations
- People, Places, and Things
- Definitions
- Inter-Group Responsibilities
- What Will and Won't Be Tested
- Test Phases
- Test Strategy
- Resource Requirements
- Tester Assignments
- Test Schedule
- Test Cases
- Bug Reporting
- Metrics and Statistics
- Risks and Issues
- Summary
- Quiz
Chapter 17 - Writing and Tracking Test Cases
- The Goals of Test Case Planning
- Test Case Planning Overview
- Test Design
- Test Cases
- Test Procedures
- Test Case Organization and Tracking
- Summary
- Quiz
Chapter 18 - Reporting What You Find
- Getting Your Bugs Fixed
- Isolating and Reproducing Bugs
- Not All Bugs Are Created Equal
- A Bug's Life Cycle
- Bug-Tracking Systems
- The Standard: The Test Incident Report
- Manual Bug Reporting and Tracking
- Automated Bug Reporting and Tracking
- Summary
- Quiz
Chapter 19 - Measuring Your Success
- Using the Information in the Bug Tracking Database
- Metrics That You'll Use in Your Daily Testing
- Common Project-Level Metrics
- Summary
- Quiz
Part VI - The Future
Chapter 20 - Software Quality Assurance
- Quality Is Free
- Testing and Quality Assurance in the Workplace
- Software Testing
- Quality Assurance
- Other Names for Software Testing Groups
- Test Management and Organizational Structures
- Capability Maturity Model (CMM)
- ISO 9000
- Summary
- Quiz
Chapter 21 - Your Career as a Software Tester
- Your Job as a Software Tester
- Finding a Software Testing Position
- Gaining Hands-On Experience
- Formal Training Opportunities
- Internet Links
- Professional Organizations
- Further Reading
- Summary
- Quiz
Apendix A - Answers to Quiz Questions
Index
|
|
 |
|
| Ron Patton lives and works in Washington state as a software consultant.
His software testing experience is wide and varied from mission- critical
systems to children's painting programs. He began his career at Texas Instruments
as a quality assurance engineer testing embedded systems and user interface
software for industrial automation equipment. In 1992 he joined Microsoft
as a software test lead in the Systems Group. His test projects included
Multimedia Viewer, the authoring tool used to develop Encarta(r), Cinemania(r),
and Bookshelf(r),. and He eventually moved on to become responsible for
the software that shipsped with the mouse, keyboard, gaming, telephony,
and ActiMates(r) product lines. |
 |
|
Review-Date: 1/27/2010 Rating: 3 Summary: Provides a general overview of the field
This book offers a decent introduction into the field of software testing. Despite it‘s limited size the book covers a wide range of topics. These include a description of the software development process, the responsibilities of a tester and several kinds of testing. The latter include functional, security, usability and localization testing. Each kind of testing is illustrated by example which can be especially useful for the aspiring tester. However no subject is elaborated to the point where it can serve as a practical guide to a novice tester.
Review-Date: 8/25/2009 Rating: 5 Summary: Interesting and light wording
This book is very interesting and its wording is really easy for reading. I broadly suggest it for beginners, intermediate and senior people. I keep it handy.
Review-Date: 6/15/2009 Rating: 4 Summary: Software Test
This is a good book for anybody who is new to the subject of software test; but, if a more technical discussion on the subject is sought then this book may not be that useful. I strongly recommend the book to anyobody who‘s trying to learn the fundamentals and basic concepts on how software is tested as well as a basic understanding of how software is developed.
Review-Date: 9/29/2008 Rating: 4 Summary: Software Testing – by Ron Patton
Great book for those just trying to learn what a software tester must do with no prior experience.
Review-Date: 5/14/2008 Rating: 4 Summary: Good introduction to software testing
I thought the book was quite good. I read it before I attended my first introductory software testing course and it allowed me to get a lot more out of the course and ask questions that were more relevant. In fact, my instructor borrowed the book and thought it was quite good as well. If you have experience in this field, then this book is not for you. (Why anyone would buy it if they did have "expertise" in the field is beyond me.) I have read a couple of the reviews for this book and to be honest, these people probably whine about anything and everything, yet they are incapable of publishing their own book. I have noticed that is quite the "American thing". Criticizing without the ability to create and waxing poetic about anything and everything without the benefit of expertise. This is an odd "habit" and one that apparently is addictive and hypnotic to some. Can you imagine the amount of time some people spend on those inane blogs? Who has that bloody amount of time to be that self–indulgent? I digress...
Overall, a very good text and I would recommend it highly based on its readability; I index books for a living so I CAN wax poetic about this type of thing, and its conversational style. I encourage the author to continue his work in this area.
Review-Date: 3/19/2008 Rating: 3 Summary: Only if you are new to testing
If you are already in software testing business this book is not for you. If you are looking for something to guide you for your safety critical V&V activities again this is not your book. But if you are new in testing and if you want to make a good start this book will help you. So only for newbies...
Review-Date: 12/21/2007 Rating: 3 Summary: Blah Blah Blah and more Blah.
This is an example of a book that I was forced into purchasing and using as a text book. I was shocked that this is considered required reading for a Master‘s level course. While it is a good overview of quality, especially as it applies to the web, I found it mostly trite and a little boring. I gave it a three because I think it has its place in the world. If you are a beginner and need a general overview it‘s a good place to start. It is not however a "textbook" that will find its way to my keeper shelf, I will be selling it back.
Review-Date: 10/25/2007 Rating: 5 Summary: excellent book for beginners
This book is excellent for beginners who are looking to learn more about software testing. It details the concepts of manual testing and what to look for and what not to do while testing software.
It is also good for programmers who want to transition into testing or Q/A or just want to gain an insight into the world of testers!
Review-Date: 10/7/2007 Rating: 1 Summary: Ron Patton, improve your book instead of commenting on every review!
I would NOT recommend this book to anyone who really want to know about testing/ want to get into testing. There is not one iota of information about how to test. It‘s like a "cookbook" without a single recipe. It maybe good for managers to learn what testing is, but it‘s not practical at all.
And Mr. Author, take these hints and improve your next book instead of getting defensive about every comment.
Review-Date: 6/1/2007 Rating: 3 Summary: OK book, but focused on a very low intelligence audience.
I think that this book covers a lot of good material, but it is not geared toward an avid tester. Great book for those just trying to learn what a software tester must do with no prior experience, but avoid this one if you are experienced at any level with software testing.
|
|