The document discusses the benefits of automated testing over manual testing for software development. It notes that manual testing is boring, inefficient, and error-prone, while automated testing makes development more effective and fun by finding errors early, allowing code to be refactored with confidence, and proving that code meets specifications. The document then provides examples of different types of automated tests, such as unit tests, integration tests, and acceptance tests, that can improve the development process.
2. Are you still testing manually?
● Are you testing the applications you write?
● You are already testing, but in an inefficient
way!
● Manual testing is boring and inefficient!
● Automated testing makes development more
effective and more fun!
10. What sucks about this process?
● You have to create/start/install/test your product
over and over again
● You have to write the entire code before you
can test it
● You end up with a lot of errors and you don't
really know what is causing it
● Manual testing is slow and error-prone!
● Repetitive tasks are boring!
11. Development Process Improvement
● Automate the entire process
● Write tests that can tell you what exactly went
wrong
● Fixing lots of small pieces of code mean lots of
small successes
● Prove that your code does what it is supposed
to do
● Make development more fun!
12. What Do We Want To Test?
● Schema
● Factory Type Information
● Factory
● Adding
● View
● ...
22. Why Testing Matters
● Testing reduces defects as measured by
reported bugs
● Finding bugs early makes them cheaper to fix
● Tests passing is proof that you delivered what
you were contracted to produce
● Refactor with confidence
● Lot of small steps means lot of small successes
25. XP/Scrum and Functional Testing
● Testing started as part of XP
● Acceptance tests can map directly to your software
requirements
● XP/Scrum:
● Write testable specifications
● Write code that complies with the specification and
tests
● Use the testable specification to prove that your
application is doing what it is supposed to do
26. Telling User Stories with Doctests
As a logged-in user, I can add a new Task to the
website.
33. Test Driven Development
● Write a testable specification
● Write integration tests
● Write Unit Tests
● Write code that complies with the specification
and tests
● Use the testable specification and unit tests to
help debug/refactor
34. More Testing Topics
● Code Coverage
● Twill
● Selenium
● zope.testrecorder
● Continuous Integration
● IDE Integration