It is missing one basic logic:
It should pick random questions from defined categories.
i.e. we should be able to to create categories and questions will be assigned to categories. And in any test there should be option to select the mulyiple category from where questions should be picked.