How to Break Software: A Practical Guide to Testing
James A. Whittaker
- 出版商: Addison Wesley
- 出版日期: 2002-05-09
- 售價: $1,530
- 貴賓價: 9.5 折 $1,454
- 語言: 英文
- 頁數: 208
- 裝訂: Paperback
- ISBN: 0201796198
- ISBN-13: 9780201796193
立即出貨(限量) (庫存=2)
買這商品的人也買了...
-
$680$578 -
$580$493 -
$880$695 -
$1,100$1,045 -
$1,050$998 -
$1,630$1,549 -
$650CMMI: Guidelines for Process Integration and Product Improvement (Harcover)
-
$590$466 -
$690$538 -
$820$779 -
$750$638 -
$560$476 -
$450$383 -
$420$328 -
$850$723 -
$1,760$1,672 -
$480$379 -
$750$638 -
$780$616 -
$1,490$1,416 -
$490$382 -
$650$507 -
$650$507 -
$700$630 -
$580$493
商品描述
How to Break Software takes a very applied and non-rigid approach to teaching how to test software for common bugs. It is a departure from conventional testing in which testers prepare a written test plan and then use it as a script when testing the software. Instead of relying on a rigid plan, it should be intelligence, insight, experience and a “nose for where the bugs are hiding” that guide testers. This book helps testers develop this insight.
The techniques presented in this book not only allow testers to go off-script, they encourage them to do so. Don't blindly follow a document that may be out of date and that was written before the product was even testable. Instead, use your head! Open your eyes! Think a little, test a little and then think a little more.
Table of Contents
Preface.
Dedication.
Chapter Summaries.
I. INTRODUCTION.
1. A Fault Model to Guide Software Testing.
Understanding Software Behavior.
Understanding Software's Environment.
File System User.
The Operating System User.
The Software User.
Understanding Software's Capabilities.
Testing Output.
Testing Data.
Testing Competition.
Summary and Conclusion.
Exercises.
References.
II. USER INTERFACE ATTACKS.
2. Testing from the User Interface: Inputs and Outputs.
Exploring the Input Domain.
Second Attack: Apply inputs that force the software to establish default values.
Third Attack: Explore allowable character sets and data types.
Fourth Attack: Overflow input buffers.
Fifth Attack: Find inputs that may interact and test various combinations of their values.
Sixth Attack: Repeat the same input or series of inputs numerous times.
Exploring Outputs.
Eighth Attack: Force invalid outputs to be generated.
Ninth Attack: Force properties of an output to change.
Tenth Attack: Force the screen to refresh.
Conclusion.
Exercises.
References.
3. Testing from the User Interface: Data and Computation.
Exploring Stored Data.
Twelfth Attack: Force a data structure to store too many/too few values.
Thirteenth Attack: Investigate alternate ways to modify internal data constraints.
Exploring Computation and Feature Interaction.
Sixteenth Attack: Force computation results to be too large or too small.
Seventeenth Attack: Find features that share data or interact poorly.
Conclusion.
Exercises.
III. SYSTEM INTERFACE ATTACKS.
4. Testing from the File System Interface.
Media-based Attacks.
Second Attack: Inject faults that simulate network problems.
Third Attack: Damage the media.
File-based Attacks.
Fifth Attack: Vary file access permissions.
Sixth Attack: Vary/corrupt file contents.
Exercises.
5. Testing from the Software/OS Interface.
Record-and-Simulate Attacks.
Observe-and-Fail Attacks.
Conclusion.
Exercises.
IV. CONCLUSION.
6. Some Parting Advice.
Bug Hunts.
Friday Afternoon Bug Fests.
Conclusion.
References.
APPENDICES.
Annotated Glossary of Programming Terms.
Appendix A. Testing Exception and Error Cases Using Runtime Fault Injection.
A Mechanism for Runtime Fault Injection.
Fault Selection.
Conclusions.
Acknowledgments.
References.
Appendix B. Using HEAT: The Hostile Environment Application Tester.
The Application Band.
The Monitor Band.
Fault Injection Bands and Their Functionality.
The Network Band.
Disk Storage.
Memory.
Appendix C. What is Software Testing? And Why is it so Hard?
The Software Testing Process.
Phase One: Modeling the Software's Environment.
Phase Two: Selecting Test Scenarios.
Phase Three: Running and Evaluating Test Scenarios.
Phase Four: Measuring Testing Progress.
Conclusion.
References.
The Software Testing Problem.