Test-Driven Development is design based on a rapid ability to iterate by designing partial implementations of a final product to test various assumptions and working principles. This appears to be synonymous with Concurrent Engineering.
Test driven design refers to a design process that performs tests, validation so, proofs, verifications, assessments and rapid prototypes on an early and ongoing basis - prior to an actual build. The purpose is to speed up development by avoiding unworkable paths that have already been demonstrated by others; to discover various insights that inform further design; and to reduce costs by doing as much analysis and calculation as possible to find out those things that a physical prototype would show -prior to using more expensive materials and build processes to build an actual prototype.
Another effective way to engage test driven design is to build partial prototypes of smaller subsections of a build to validate various details, prior to the whole build.
This can be done in various ways:
- Subject Matter Expert review
- Review via a social network
- Partial Prototypes - Building out small components at a time instead of a whole machine at a time.
- Module Based Design - Breaking artifict into smaller modules and prototyping individual modules
- Scale models - this may be done by wood, paper, or other models - such as 3D printing, laser cutting for folded (LifeTrac tubing) or stacked (architecture) paper pieces, or many other models
- Doing extra calculations or simulations in software or in Hardware-in-Loop systems
- Visualizations, 3D renderings, motion analysis
See analogue in software - http://en.wikipedia.org/wiki/Test-driven_development
Test-Driven Development is design based on a rapid ability to iterate by designing partial implementations of a final product to test various assumptions and working principles.
Test Driven Iterations
Concept: Rapid prototyping involves testing various components of a system throughout the design-build process. At any time, the following test driven steps can be defined and iterated: