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).