Это не подойдет. Есть сложные правила интерпретации тестов. Что-то вроде:
-если набрано от 20 до 30 баллов и на вопрос №2 дан ответ А, то сделать то-то
Да, я уже нашел, что такое DSL. Честно сказать не вижу смысла создавать отдельный язык программирования для этой задачи. Чем это может помочь? Этот код (для каждого теста) нужно будет тоже где-то хранить. И я опять вернусь к вопросу хранения кода в БД (или в файлах), только это уже будет не PHP, а DSL.