Unit Testing

  • View

  • Download

Embed Size (px)


There's no shortage of cowboy code-slingers out there in the PHP range. Heck, I used to be one...! You know the types: buckin' bronco projects and spaghetti western logic, firing their guns as many times as they've got bullets... There's a better way, my friends, and it's not just for the yeller-bellied and quail-hearted. Sit by the fire a spell and learn a little about Unit Testing with PHPUnit (or any of them xUnits): what it is, how to do it, and how to sell it to your boss...! 'Cause we all know every cowpoke answers to the man in the big house, after all.

Text of Unit Testing

  • 1. Unit Testing is forWeenies. Important lessons learned from being a bullheaded developer...

2. Unit Testing 101 What are these units and why do they need testing? 3. What is UnitTesting? In computer programming, unit testing is a soft ware verication and validation method where the programmer gains condence that individual units of source code are t for use. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual program, function, procedure, etc., while in object-oriented programming, the smallest unit is a method, which may belong to a base/super class, abstract class or derived/child class. http://en.wikipedia.org/wiki/Unit_testing 4. No, really. What isUnit Testing...? 5. Assertion Testing IF the assertion fails, THEN display an error message... 6. Why should we test? To ensure repeatability of desired behaviors To identify and remove undesired behaviors To provide specications for expected behavior 7. Why should I spend time testing my code? How do you know that it works, particularly if its part of a big system? How do you know which part is broken when it breaks? How do you know that you know which part is broken? 8. There just isnt enough time for testing!How much time do we spend... Debugging a script or application? Finding the actual bug?How many billable hours do we lose?!?!Dont we make our own schedules? 9. I always test my code... $newThing = new Thing(); $newThing->doSomething(); $newThing->doSomething($else); if ( $newThing->something == $else ) { echo All done! } 10. I always test my code... How can anyone ever repeat that test? What did it test, anyway? What do you have to show for the effort? 11. How should we test?With the least amount of required human inter vention In a manner that is reliably repeatable, AKA precise In a manner that demonstrates desirable behavior, AKA accurate 12. No, really. HOW? 13. How to Perform Unit Tests on Objects 14. 1. Pick a test xture...2. Start writing tests...3. Run your tests...4. Repeat until done... 15. Gee, Thanks.How about an example? 16. Doesnt that seemrepetitive? Im glad you asked... 17. Testing is so repetitive... 18. Testing is so repetitive... Unit Tests test Objects. Objects have Inheritance. Unit Tests are themselves Objects. Dont Repeat Yourself. 19. How to Sell Your Boss on Unit TestingIts not me, its the psycho I work for... 20. The Essence of Quality Control is Testing Testing adds value to work and products Lessons from other industries...Toyota makes Good Automobiles.Sam Adams makes Good Beer. Unit Testing is Quality Control. 21. Quality Control TestingMUST BE Rigorous, by testing everything, Repeatable, via automated tests, Producible upon demand, Rigorous, repeatable, producible tests generate a more stable code base and a more accountable project. 22. Testing actually saves time and moneySpend less time on tail-end debugging and ndingthose bugs,Expose logical aws and assumptions that we allunintentionally build on,Build dependencies that work since theyre basedon proven assumptions. 23. Topics to ask Google andWikipedia about... JUnit - The granddaddy of em all. phpUnit - My torture chamber of choice. RSpec - Unit Testing for Ruby. Selenium - Graphical Unit Testing. Test-Driven Development - Way of Life. 24. Who is this guy?linkedin.com/in/althext witter.com/al_the_xethos-development.comDavid Rogers orlandophp.org