Skip to content
This repository

Q.E.D. is a test framework supporting Literate Driven Development (LDD).

Literate Driven Development is often referred to as Documentation Driven Development (DDD). But we have chose to use the term “Literate” in place of “Documentation” to help differentiate it from Domain Driven Design (DDD), and furthermore to drive home that it is a form of Literate Programming.

Literate Driven Development is essentially the same as Test Driven Development (TDD) and Behavior Driven Development (BDD). But, unlike TDD which begins with executable tests to verify behavior, and BDD which goes a step further by providing a domain specific language suitable to organizing and specifying behaviors, LDD takes the final step of having the developer write actual documentation describing systems behavior.

While this means the developer must take time to write effective descriptions, it in turn frees the developer of strict nomenclatures and specification patterns. This reduction in syntax barriers, on how one describes behaviors, leads to a proverbial gold mine in systems documentation.

Advantages of LDD

LDD has several big advantages over other programming strategies, especially:

  • Keeps you from over-designing/complicating things (If you can’t explain them, don’t use them)
  • Gives you the chance to get your ideas peer-reviewed since it helps people to understand what you are trying to do.
  • Good Documentation – If you use LDD your project will always be very well documented.
  • Helps Planning – If Users know how things are going to work in future they can fine tune their projects to be future-safe.
  • Creates user-friendly software – If the developer writes the documentation for the user he’ll think more like him and make software that is user-oriented.
  • Keeps up motivation – Believe it or not, writing the documentation for things you did and that you will do can be a motivational and rewarding experience.

Helpful Tips

Installation

It is possible to use code coverage tools with QED. For instance to use rcov see Using rcov with QED.

Additional Resources

For more a detailed code-oriented understanding of Q.E.D., the API documention is also available.

Something went wrong with that request. Please try again.