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:

mauro said...

excellent initiative!!

already have my copy

Unknown said...

Thanks for your nice ebook !

admirau said...

Thanks.

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

epplestun said...

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

TBeijen said...

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

Congrats & thanks!

Unknown said...

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

Giorgio said...

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. :)

myrtille said...

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

Gekkie said...

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 :)

Giorgio said...

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

Anonymous said...

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

Anonymous said...

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

yuga said...

Thanks a lot!!!!

yuga said...

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

Giorgio said...

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.

yuga said...

Oh! Thanks again :)

Anonymous said...

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

Anonymous said...

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

Anonymous said...

excelent! Im starting to read it right now

MAJWeb said...

Brilliant!

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

Hari KT said...

Thank You :)

Julien said...

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

Ma'moon Al-Akash said...

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

rami said...

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).

Giorgio said...

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.

.net obfuscation said...

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

ShareThis