Positive test cases (correct data, correct output),

negative test cases (broken or missing data, proper handling),

exception test cases (exceptions are thrown and caught properly).