Supplemental files and examples for this book can be found at http://examples.oreilly.com/9780596520670/. Please use a standard desktop web browser to access these files, as they may not be accessible from all ereader devices.
All code files or examples referenced in the book will be available online. For physical books that ship with an accompanying disc, whenever possible, weve posted all CD/DVD content. Note that while we provide as much of the media content as we are able via free download, we are sometimes limited by licensing restrictions. Please direct any questions or concerns to .
Preface
This book is written by an experienced application performance specialist for the benefit of those who would like to become specialists or have started working at application performance testing.
Businesses in todays world live and die by the performance of mission-critical software applications. Sadly, many applications are deployed without being adequately tested for scalability and performance. Effective performance testing identifies performance bottlenecks in a timely fashion and tells you where they are located in the application landscape.
The Art of Application Performance Testing addresses an urgent need in the marketplace for reference material on this subject. However, this is not a book on how to tune technology X or optimize technology Y. Ive intentionally stayed well away from specific technologies except where they actually affect how you go about performance testing. My intention is to provide a commonsense guide that focuses on planning, execution, and interpretation of results and is based on a decade of experience in performance testing projects.
In the same vein, I wont touch on any particular industry performance testing methodology becausetruth be toldthey dont exist. Application performance testing is a unique discipline and is crying out for its own set of industry standards. Im hopeful that this book may in some small way act as a catalyst for the appearance of formal processes.
Although I work for a company thats passionate about performance, this book is tool- and vendor-neutral. The processes and strategies described here can be used with any professional automated testing solution.
Hope you like it!
Ian Molyneaux, December 2008
Audience
Although this book is for anyone interested in learning about application performance testing, it especially targets seasoned software testers and project managers looking for guidance in implementing an effective application performance testing strategy.
The book assumes that readers have some familiarity with software testing techniques, though not necessarily performance-related ones.
As a further prerequisite, effective performance testing is really possible only with the use of automation. Therefore, to get the most from the book you should have some experience of automated testing tools.
About This Book
Based on a number of my jottings (that never made it to the white paper stage) and ten years of hard experience, this book is designed to explain why it is so important to performance test any application before deploying it. The book leads you through the steps required to implement an effective application performance testing strategy.
Here are brief summaries of the books chapters and appendixes.
, discusses the rationale behind application performance testing and looks at performance testing in the IT industry from a historical perspective.
, introduces the building blocks of effective performance testing and explains their importance.
, suggests a best-practice approach. It builds on Chapter 2, applying its requirements to a model for application performance testing.
, teaches effective root-cause analysis. It discusses the typical output of a performance test and how to perform effective analysis.
, discusses the effects of particular software environments on testing. The approach is generic, so many details regarding your applications will depend on the characteristics of the technologies you use.
, provides examples of how to prepare application transactions for inclusion in a performance test.
, reiterates the practical steps presented in the book.
, lists sources for the technologies required by performance testing. It is not an endorsement and is not intended to be complete.
, provides some examples of the sort of Key Performance Indicators you would use to monitor server and network performance as part of a typical performance test configuration.
, provides an example of a typical performance test plan based on Microsoft Project.
Conventions Used in This Book
The following typographical conventions will be used.
Italic
Indicates new terms, URLs, email addresses, filenames, and file extensions.
Constant width
Used for program listings and also within paragraphs to refer to program elements such as variable or function names, databases, data types, environment variables, statements, and keywords.
Constant width bold
Shows commands or other text that should be typed literally by the user.
Constant width italic
Shows text that should be replaced with user-supplied values or by values determined by context.
Tip
This icon signifies a tip, suggestion, or general note.
Caution
This icon indicates a warning or caution.
Glossary
The following terms are used in this book.
Application landscapeA generic term describing the server and network infrastructure required to deploy a software application.
ICACitrix proprietary protocol, Independent Computing Architecture.
ITILInformation Technology Infrastructure Library.
ITPMInformation Technology Portfolio Management.
ITSMInformation Technology Service Management.
JMSJava Message Service (formerly Java Message Queue).
Load injectorA PC or server used as part of an automated performance testing solution to simulate real end-user activity.