Web infrastructure is everywhere. And yet until this book there was no guide to show how your choices in design, coding, and testing impact the scalability, performance, and functionality of your Web-enabled applications.
Java Testing and Design: From Unit Testing to Automated Web Tests teaches you a fast and efficient method to build production-worthy, scalable, and well performing Web-enabled applications. The techniques, methodology, and tools presented in this book will enable developers, QA technicians, and IT managers to work together to achieve unprecedented productivity in development and test automation.
With Java Testing and Design, you will be prepared for a laundry list of new APIs, protocols, and tools being packed into the next generation of J2EE, .NET, and open-source systems. While these new software libraries, tools, and techniques are a big move forward for all of us, they push us to learn even more technology to turn out complex, highly functional, and interoperable software applications.
Author Frank Cohen shares proven best practices based on his extensive experience at leading enterprises (General Motors, BEA, AMP, 2Wire, Elsevier, U.S. Navy, Sun) and delivers an immediately useful set of open-source tools, techniques, and code that will automate the testing of your Web-enabled applications.
Review By: Jessica McLaughlin 07/09/2010
"Java Testing and Design" by Frank Cohen is a reference book I intend to keep on my desk. As a test professional, it has been difficult to properly test integrated, multi-protocol Web-enabled applications. Now I am equipped with the proper tools, protocols, and API's--thanks to this book. Cohen's book also clearly discusses different technologies like HTML, SOAP, and WSDL and how to test them using an open source test tool named Test Maker. Test Maker utilizes an easy to understand scripting language named Jython. It's always exciting to find a test tool with a scripting language that is easy to use and understand.
The first section includes chapters on application performance, test modeling, and test automation tools. The second section presents practical examples using Test Maker agents. These chapters also include plenty of code examples to allow for hands-on practice with Test Maker. Finally, the third section is a collection of case studies. Each case study illustrates the individuality of projects, and how the techniques and tools presented in this book can assist in any type of project.
The writing style of the book is straightforward and easy to follow, even for those with little Java testing experience. Each chapter includes a personal story, an anecdote, and a good summary. Acronyms and other vocabulary are clearly defined in tables within each chapter.
Several of the ideas mentioned in the book can assist a test professional in creating more subjective test criteria like:
Implementing a daily health check based on functions, performance, and failures. The assessment in each of these is quite simple. For example, one point is awarded for each error in functionality. All points are totaled and compared to a scale, which ranges from a 1 to 10 (being excellent) to more than 101 (being horrid).
Create a rubric based on basic features, speed of operation, and correct operation. Oftentimes testing is seen as too subjective. The rubric the book describes helps to assess performance criteria more objectively. A rubric also provides a clear benchmark for measurement.
Create archetypes based on the prototype of different application users. Too often we create a "typical" user when in fact there are many types of users with different needs using our applications.
This book is well organized and helps the readers produce and test Web-enabled applications. It is difficult to keep up with all of the interoperable components that fashion today's Web applications, especially when these components require testing. Cohen's method begins with properly building and testing Java applications.
Overall, I would recommend this book to test professionals currently working with Java applications or for those who would like to learn some valuable techniques when working with them.
Review By: Jack Bruner 07/09/2010
"Java Testing and Design" is a well-organized resource that presents problems and solutions for testing Web applications. The leading sections provide a solid foundation based on Web application architectures and the difficulties of testing in these environments. This gets the reader on the same page as the author before he delves into his own industry-proven methodologies for testing Web applications.
Author Frank Cohen explains in great detail his method of using real world modeling and using Test Agents to test current and future versions of an application. To make implementing these methodologies even easier, the author provides a free test automation tool called TestMaker. His free open source tool makes employing Test Agent ideas easy.
The topics on TestMaker deal not only with how to use the tool, but also how it was built, and delves into some of the nitty-gritty of the syntax using Jython. After introducing the tools, the author explains some of the problems and technologies surrounding Web applications. Then he shows how TestMaker can be used to test the Web applications.
The writing style of this book is casual. The author explains the subject matter in a clear manner, neither getting muddled in too much detail nor straying off on tangents. He has a great understanding of Web application architecture and technology. When the subject matter seems heavy, the author throws in a joke to lighten the topic.
In my opinion, "Java Testing and Design" is a well-written resource for anyone who wants to use TestMaker and implement the Test Agents methodology. The book contains plenty of detailed information on TestMaker to get you up and running. The dissection of the example code can be tedious, but anyone learning the application should appreciate the depth of coverage.
"Java Testing and Design" is a good resource for anyone who wants to use the TestMaker automation tool and implement the Test Agents methodology. The book provides background information on Web applications and discusses their shortcomings and testing difficulties. The author effectively demonstrates how TestMaker and Test Agents can help test web applications.