The Art of Software Testing Myers, Glenford J; Badgett, Tom; Sandler, Corey
2011, 2012, 2011-09-20, 2011-09-23
eBook
The classic, landmark work on software testingThe hardware and software of computing have changed markedly in the three decades since the first edition of The Art of Software Testing,but this book's ...powerful underlying analysis has stood the test of time. Whereas most books on software testing target particular development techniques, languages, or testing methods, The Art of Software Testing, Third Editionprovides a brief but powerful and comprehensive presentation of time-proven software testing approaches. If your software development project is mission critical, this book is an investment that will pay for itself with the first bug you find.The new Third Editionexplains how to apply the book's classic principles to today's hot topics including:Testing apps for iPhones, iPads, BlackBerrys, Androids, and other mobile devicesCollaborative (user) programming and testingTesting for Internet applications, e-commerce, and agile programming environmentsWhether you're a student looking for a testing guide you'll use for the rest of your career, or an IT manager overseeing a software development team, The Art of Software Testing, Third Editionis an expensive book that will pay for itself many times over.
The classic, landmark work on software testingThe hardware and software of computing have changed markedly in the three decades since the first edition of The Art of Software Testing, but this book's ...powerful underlying analysis has stood the test of time. Whereas most books on software testing target particular development techniques, languages, or testing methods, The Art of Software Testing, Third Edition provides a brief but powerful and comprehensive presentation of time-proven software testing approaches. If your software development project is mission critical, this book is an investment that will pay for itself with the first bug you find.The new Third Edition explains how to apply the book's classic principles to today's hot topics including:Testing apps for iPhones, iPads, BlackBerrys, Androids, and other mobile devicesCollaborative (user) programming and testingTesting for Internet applications, e-commerce, and agile programming environmentsWhether you're a student looking for a testing guide you'll use for the rest of your career, or an IT manager overseeing a software development team, The Art of Software Testing, Third Edition is an expensive book that will pay for itself many times over.
A Self-Assessment Test Myers, Glenford J; Badgett, Tom; Sandler, Corey
Art of Software Testing,
2012, 2011, 2012-01-02
Book Chapter
Software testing is a process, or a series of processes, designed to make sure computer code does what it was designed to do and, conversely, that it does not do anything unintended. Software should ...be predictable and consistent, presenting no surprises to users. Despite the plethora of software testing tomes available on the market today, many developers seem to have an attitude that is counter to extensive testing. Better development tools, pretested GUIs, and the pressure of tight deadlines in an ever more complex development environment can lead to avoidance of all but the most obvious testing protocols. Whereas low‐level impacts of bugs may only inconvenience the end user, the worst impacts can result in large financial loses, or even cause harm to people. This chapter introduces the specific procedures that can help designers, developers, and project managers better understand the value of comprehensive testing, and provide guidelines to help them achieve required testing goals. This chapter presents a short self‐assessment exam where readers are required to write a set of test cases — specific sets of data — to test properly a relatively simple program.
Software testing is a technical task, but it also involves some important considerations of economics and human psychology. The most important considerations in software testing are issues of ...psychology. One of the primary causes of poor application testing is the fact that most programmers begin with a false definition of the term; these definitions are upside down. Understanding the true definition of software testing can make a profound difference in the success of your efforts. Human beings tend to be highly goal‐oriented, and establishing the proper goal has an important psychological effect on them. The myriad implications related to the varied distorted definitions of software testing give rise to psychology problems. It is often impractical, often impossible, to find all the errors in a program. This fundamental problem causes implications for the economics of testing. To combat the challenges associated with testing economics, there are particular strategies: black‐box testing and white‐box testing. Apart from discussing the psychology problems of testing, this chapter explores the testing economics strategies. It also introduces a set of vital testing principles or guidelines. Most of these principles may seem obvious, yet they are all too often overlooked.
Today, not all testers of software applications read code, but the concept of studying program code as part of a testing effort certainly is widely accepted. Several factors may affect the likelihood ...that a given testing and debugging effort will include people actually reading program code: the size or complexity of the application, the size of the development team, the timeline for application development, and the background and culture of the programming team. This chapter discusses the process of non‐computer‐based testing (“human testing”). The three primary human testing methods are code inspections, walkthroughs and user (or usability) testing. Inspections and walkthroughs involve a team of people reading or visually inspecting a program. These methods have a lot in common, so, the chapter also discusses their similarities together.
Test-Case Design Myers, Glenford J; Badgett, Tom; Sandler, Corey
Art of Software Testing,
2012, 2011, 2012-01-02
Book Chapter
The most important consideration in program testing is the design and creation of effective test cases. Testing, however creative and seemingly complete, cannot guarantee the absence of all errors. ...Test‐case design is so important because complete testing is impossible. In other way round, a test of any program must be necessarily incomplete. The obvious strategy, then, is to try to make tests as complete as possible. Given constraints on time and cost, there is a variety of key issues of testing. This chapter introduces the concept of test‐case design and discusses the various test‐case design techniques such as: Logic coverage, Equivalence partitioning, Boundary value analysis and Cause‐effect graphing. Once one has agreed that aggressive software testing is a worthy addition to the development efforts, the next step is to design test cases that will exercise the application sufficiently to produce satisfactory test results. In most cases, one should consider a combination of black‐box and white‐box methodologies to ensure that one has designed rigorous program testing.