Test::Tutorial
chromatic and Michael G SchwernTesting? Why do I care?l
l
l
l
What Is Testing?
Check that your code does what it's supposed to do.
At varying levels of granularity.
In varying environments.
At various points in its development.u
l
l
l
u
u
u
u
l
l
What Is Automated Testing?
Programs to check other programs.
As with any rote task, you let the computer do it.
Humans will forget rote tests, computers will not
Press a button and walk away.
No human required (very important)
Manually running tests is a waste of your time.
Tests should run as close to instantaneous as possible
so you won't have an excuse not to run them
so you'll run them as often as possible
Instant feedbackl
l
Testing Promotes Automation
Testable code is decoupled
Testable code is scriptablel
l
l
Why Test?
no missing functionality
no accidental functionality
when your tests pass, you're doneu
l
l
l
u
More informative bug reports
Better to get the diagnostic output of your tests than "It doesn't
work"
Easily generated by end users
"Run the tests and send me the output"
Helps IMMENSELY with porting (this is why my code works on
VMS)
You can often port code without ever using the machine you're
porting tou
l
u
l
u
u
u
More More Reasons
Most of the time spent on a project is debugging and bug fixing.
Worse, it often comes at the end (hidden cost)
"Oh, I'm 99% done, I just need to do some testing"
Testing ...
Voir