More On Testing Why, Where, How, When
This Lecture NOT a lecture on testing in general Rather, what you need in Comp 314
Functional Testing Also called System Testing An important part of your spec NOT unit tests Provides a level of assurance of correctness and reliability We WONT check this
Unit Testing Basically, tests API Can be written before the code Especially useful in regression testing
Regression Testing Tests if changes introduce bugs Daily builds are ideal Useful even if the build is currently broken Useful with pair programming, version control, etc.
TDD Test Driven Development Write tests first Useful for clarifying the API Metric for how much is done Doesn’t work well with prototypes “throw one away”
What We Require A functional test plan Extensive unit tests
What We Suggest USE your functional test plan; write the tests first After you prototype, use TDD Run daily builds
How to Write Tests Can’t write all possible test vectors Equivalence classification Edge testing Error “honey pots” Rigor Principle of “Maximum Drek”