Over the last 10 years I have developed 4 separate versions of this kind of technology, 3 for corporations and one for my own commercial use.
Out of this distilled experience I can say: 1. pay attention to making it easy for test authors to create and edit test questions. 2. keep your data format flexible (XML is my choice) 3. keep your display / user input tech as separate from the rest of the app as possible. Yesterday HTML was ok, today AJAX rules, tomorrow ??