Wednesday, December 02, 2009

Practical Php Testing is here


Practical Php Testing, my ebook on testing php applications, is finally here as promised, in the first days of December.
How many times in the last month have you seen a broken screen in the browser? How many times did you have to debug in the browser, by looking at the output, inserting debug statements and breaking redirects? How many times did you perform manual testing, by loading a staging version of your application and tried out different workflows in the browser?
If the answer to these questions is more than very few, it's likely that
you should give automated testing a chance.
This book is aimed to php developers and features the articles from the Practical php testing series, while the other half of it is composed by new content:
  • bonus chapter on TDD theory;
  • a case study on testing a php function;
  • working code samples, some of whom were originally kept on pastebin.com;
  • sets of TDD exercises at the end of each chapter;
  • glossary that substitutes external links to wiki and other posts, to not interrupt your reading with terms lookup.
The book comes for free and is licensed under Creative Commons. This phrase means you are free to copy it and give it to anyone. If you find my work useful and you want to be supportive, you can make a donation with the link on the right menu or with the one provided in the book.

26 comments:

  1. excellent initiative!!

    already have my copy

    ReplyDelete
  2. Thanks.

    Code samples for the TDD Excercises (answers) would be nice addition.

    ReplyDelete
  3. I have my copy too, I read it over and look too good :-)

    One recommendation, you talk about continuous integration and testing ... would be good to also talk about the following PHP QA tools http://sebastian-bergmann.de/archives/856-Quality-Assurance-Tools-for-PHP.html

    Congrats Giorgio

    ReplyDelete
  4. Looks like some solid info and will sure give it a thorough read.

    Congrats & thanks!

    ReplyDelete
  5. It looks like a piece of good work. Have you think about trying to publish extended version of this book?

    ReplyDelete
  6. About the testing tools: while PHPUnit is a standard, other utilities like phpcpd are promising but not very diffused. The CodeSniffer for example lacked coding standard definitions when I try to use it. Probably these tools need more time to mature.
    An extended version is surely a great amount of work, and I tried to pack a practical approach in this book as much as I could. :)

    ReplyDelete
  7. Congrates! Good work...I have its copy and i have read it half. The TDD examples you have given is nice.Thank you.

    ReplyDelete
  8. Great read... I've been trying to convert it to Kindle format for easier access (and you could post it to amazon too!)
    A few spelling errors, but all that aside: a must read for my dev-team :)

    ReplyDelete
  9. Not experienced with Kindle, if you need the Open Document source file for conversion ask. :)

    ReplyDelete
  10. I wish not acquiesce in on it. I think warm-hearted post. Specially the title-deed attracted me to review the whole story.

    ReplyDelete
  11. Nice fill someone in on and this enter helped me alot in my college assignement. Thanks you as your information.

    ReplyDelete
  12. Examples for the exercises would be a great help for a beginer :)
    Thanks.

    ReplyDelete
  13. Actually someone has solved the whole set of exercises:
    http://giorgiosironi.blogspot.com/2009/12/practical-php-testing-exercises.html
    But don't spy! :) Exercises are useful only if you actually do them by yourself.

    ReplyDelete
  14. Amiable brief and this mail helped me alot in my college assignement. Say thank you you on your information.

    ReplyDelete
  15. i'm new... expectancy to brief round more often!

    ReplyDelete
  16. excelent! Im starting to read it right now

    ReplyDelete
  17. Brilliant!

    I am always procrastinating when it comes to learning about testing. No excuse now!! Thanks very much.

    ReplyDelete
  18. Thank you very much. Very helpful for a beginner... Great work!

    ReplyDelete
  19. Thank you very much! that was really a nice read and very useful stuff!

    ReplyDelete
  20. Thank you for the book!

    Is there a way to use a mock object on a class that does not get the objects as method argument? (For example, make my application use a mocked Zend_Date object everywhere in the code).

    ReplyDelete
  21. Dependency Injection makes this things easier; but in a framework you cannot usually change the architecture to start injecting Zend_Date objects or Factories for them.

    ReplyDelete
  22. This is what many of the developers will be looking for as its quite difficult to test code for its performance and proper working.

    ReplyDelete