A much broader concept than you may think...
What do you really know about your software?
How do you know it?
If you don't design and develop for validation,
there is no way to really know!
If you don't design and develop for maintainability,
there's no way to have it track your changing needs!
Changes require validation of what it does NOW!
If we don't have the right foundation for knowing what to test,
Only then can testing deliver truly useful knowledge.
Therefore, testing-specific disciplines are at the end
of this list.
Lean Software Development
- Disciplines for making a business effective
and aligning software requirements with the business.
Scrum and Kanban
- Disciplines for rapidly discovering and
'building the right thing'.
- Focusing cross-functional teams on delivering and
validating the true value.
- Making and keeping commitments to the business.
- Measuring and rewarding teams as a unit.
- Making management highly responsive to team needs.
Extreme Programming (XP)
- Disciplines for 'building things right'.
- Discovering and building effective software architecture.
- Continuously validating correctness.
- Supporting team-ownership of the code - shared knowledge.
Object Oriented Design (OOD)
- Disciplines for effective modularization and interfacing
Object Oriented Programming (OOP)
Design By Contract (DBC)
- Essential disciplines for maintainability and validation.
Test Driven Design (TDD)
- Disciplines for creating executable requirements
and automated validation at all levels of integration
from unit tests to acceptance tests.
Test Driven Development (TDD)
Acceptance Test Driven Development (ATDD)
Test-First Development (TFD)
- Test-First to constrain development effort to
just what the project sponsors want to pay for
(both business and technical).
Framework for Integrated Tests (Fit)
- Fit is an open-source tool for automated customer tests.
- Fit automatically compares customers' expectations to
- Customers' examples are formatted in tables and
saved as HTML using tools such as Microsoft Excel.
- Fit colors the tables green, red, and yellow
according to whether the software behaved as expected.
- FitNesse is a self-contained, fully integrated,
wiki and acceptance testing framework based upon Fit.