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.
excellent initiative!!
ReplyDeletealready have my copy
Thanks for your nice ebook !
ReplyDeleteThanks.
ReplyDeleteCode samples for the TDD Excercises (answers) would be nice addition.
I have my copy too, I read it over and look too good :-)
ReplyDeleteOne 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
Looks like some solid info and will sure give it a thorough read.
ReplyDeleteCongrats & thanks!
It looks like a piece of good work. Have you think about trying to publish extended version of this book?
ReplyDeleteAbout 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.
ReplyDeleteAn 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. :)
Congrates! Good work...I have its copy and i have read it half. The TDD examples you have given is nice.Thank you.
ReplyDeleteGreat read... I've been trying to convert it to Kindle format for easier access (and you could post it to amazon too!)
ReplyDeleteA few spelling errors, but all that aside: a must read for my dev-team :)
Not experienced with Kindle, if you need the Open Document source file for conversion ask. :)
ReplyDeleteI wish not acquiesce in on it. I think warm-hearted post. Specially the title-deed attracted me to review the whole story.
ReplyDeleteNice fill someone in on and this enter helped me alot in my college assignement. Thanks you as your information.
ReplyDeleteThanks a lot!!!!
ReplyDeleteExamples for the exercises would be a great help for a beginer :)
ReplyDeleteThanks.
Actually someone has solved the whole set of exercises:
ReplyDeletehttp://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.
Oh! Thanks again :)
ReplyDeleteAmiable brief and this mail helped me alot in my college assignement. Say thank you you on your information.
ReplyDeletei'm new... expectancy to brief round more often!
ReplyDeleteexcelent! Im starting to read it right now
ReplyDeleteBrilliant!
ReplyDeleteI am always procrastinating when it comes to learning about testing. No excuse now!! Thanks very much.
Thank You :)
ReplyDeleteThank you very much. Very helpful for a beginner... Great work!
ReplyDeleteThank you very much! that was really a nice read and very useful stuff!
ReplyDeleteThank you for the book!
ReplyDeleteIs 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).
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.
ReplyDeleteThis is what many of the developers will be looking for as its quite difficult to test code for its performance and proper working.
ReplyDelete