This book is an excellent guide to testing Web applications and Web services. I expect it will benefit all readers, from software developers or QA techs just getting started, through to the experienced coders and testers. The book took me past the basic stuff you learn in books on Java development and gives you the practical experience, tips and knowledge I needed to deliver software that scales and is reliable.
Java Testing and Design comes in three parts. The first part describes the things we developers, QA techs and IT folks deal with everyday - tough schedules, user needs, messed up management and test methodologies past and present. All this is shown being applied to building Web applications. The second part takes on the nuts-and-bolts aspect of building networked applications, including different connectivity methods (from http through XML and SOAP, and even Email services), from functional unit tests to testing sequences of messages and session data. It puts a whole new light on testing from the user's perspective using a new method called user archetypes - basically test scripts that mimic a user's behavior. It's a cool technique to make testing a lot more simpler.
The chapters describe the issues and the common areas where things go wrong. Then each chapter provides a detailed description of testing using the TestMaker free open-source test tool.
The third part of the book covers some case studies of tests that Frank Cohen had to devise. These include tests for scalability and throughput of SOAP-based Web Services. He also uncovers a huge scalability problem with Web Services that every Service Oriented Architecture (SOA) developer should know about. RPC-based Web Services do not scale and the book shows why and how anyone can find the results.
Here is the table of contents:
Part I - GUAGING WEB-ENABLED APPLICATION PERFORMANCE
Chapter 1) The Forces at Work Affecting Your Web-enabled Software
Chapter 2) When Performance Becomes a Problem
Chapter 3) Modeling User Behavior For Meaningful Test Results
Chapter 4) Java Development and Test Automation Tools
Chapter 5) Bridging From Methodology To Design
Part II - SYSTEM COMPONENTS AND OPTIMIZATION
Chapter 6) Making Dynamic Web Applications Rock Solid
Chapter 7) Tuning SOAP and XML Web Services
Chapter 8) Addressing Bottlenecks Through Automation
Chapter 9) Building Interoperability with .NET Web Services
Chapter 10) Building And Testing Intranets and Secure Environments
Chapter 11) A Web Service Framework From Construction To Test
Chapter 12) Turning Test Agent Results Into Actionable Knowledge
PART III: CASE STUDIES: BUILDING RELIABLE APPLICATIONS
Chapter 13) Concurrency and Scalability in a High Volume Datacenter
Chapter 14) Making the Right Choices for SOAP Scalability
Chapter 15) Mutliprotocol Testing In An Email Environment
The book is supported by the PushToTest Web site at http://thebook.pushtotest.com where I found a LOT of cool stuff. The site gives you a download of all the code examples, chapter downloads, and the support of a healthy community of users that use TestMaker. The site is Frank Cohen's pulpit for him to express views on problems in software development and what the industry should be doing to solve them.
The book's title is a little weird since the book has little to do with Java itself. You could be a .NET developer and get just as much from the book. I would have liked to see more coverage of other test tools but since TestMaker is free and open source that's no problem for me.
Java Testing and Design provides excellent insights into testing and gives you tools and explanations for performing tests of Web-enabled applications. I recommend this book highly.