Agile testing: the first quadrant
Unit testing, low-level code
Testing function, classes, and methods following the discipline of test-driven development and other extreme programming practices. We have a lot of unit testing frameworks that can help us to write our tests. The following list is for the most common programming language. You can find a large list of frameworks on Wikipedia.
- Unittest and Unittest2
- BDD: Rspec, Cucumber
Component testing is a method where testing of each component in an application is done separately. Martin Fowler definition: A component test is a test that limits the scope of the exercised software to a portion of the system under test.
- Broad-stack test:
- Test Pyramid: unit on the base, service and UI. Check the ice cream cone: an amazing article about the test pyramid and various testing levels
Other terms we must consider speaking about component testing:
- Test Double is a generic term for any case where you replace a production object for testing purposes - Martin Fowler.
We must consider further steps in the software development life cycle with unit and component testing:
- Continuous integration
- Continuous delivery
- Continuous deployment: on continuous delivery, every change is ready to be deployed. On continuous deployment, the process is automatic. This article is great and it explains the difference.
Q&A must find nothing!
Q&A must find nothing after we have deployed our application.
- Unit tests 100% coverage; all tests must pass
- Test the behavior: UI, forms, links, redirect are testable with BDD and browser automation tools like Selenium or Sahi.
Least but last, I have to remember the most important people around Agile and Agile testing:
- Robert C. "Uncle Bob" Martin.
- Martin Fowler
- Kent Beck
- Lisa Crispin
- Mike Cohn