Software Testing Books: Load Testing, Unit Testing, Functional Testing
Object orientation (OO) is not a trendy concept anymore, but it hasn’t certainly lost it values. The purpose of the book “Growing Object-Oriented Software, Guided by Tests” is to integrate the development of object-oriented software with the Agile testing Test-Driven Development (TDD) approach, more specifically in Java. It starts with an introduction to TDD and the open source testing tools (Junit, jMock2) that will be used in the examples.
As a software developer, you know that one of the critical period in a project is when you try to make integrate your code in the overall application and push it towards the final user. It is sometimes a long process that you would like to accelerate so that you could obtain a quicker feedback on the quality of your code.
The Fuzzing Book is a website / online book that presents tools and techniques for generating software tests. Fuzzing is defined by Wikipedia as “automated software testing technique that involves providing invalid, unexpected, or random data as inputs to a computer program. The program is then monitored for exceptions such as crashes, failing built-in code assertions, or potential memory leaks.”
This book “Implementing Automated Software Testing”, Elfriede Dustin, Thom Garrett and Bernie Gauf presents a comprehensive treatment of the domain of software testing automation. The first part defines and describes test automation, proposing a business case for automation and discussing the pitfalls that should be avoided.
“Tools and machines are great, but in the end, it is the people who matter. Putting together an effective automated test team requires lots of planning and skills.” This might the emblematic quote of this great book about software testing automation. The book groups case studies written each by a different author. Each case study is presented in the preface, so you can pick the story that you prefer, based on many criteria like application domain, tool type… or if the project was successful or not.
There are many books about software testing, but Quality Code is among the best that I have read. It presents a philosophy about software testing that has been mine in my previous life as a software developer: the programmer is the main person responsible for the quality of its code.
Acceptance tests are defined in this book as the test created by the customer in collaboration with the developer and the tester prior to implementation. They are not the traditional user acceptance tests performed after implementation. Although acceptance tests can be used at different development stages, Ken Pugh proposes mainly in this book an approach where all project stakeholders will collaborate to create tests that validate business requirements.