A test case is a set of conditions or variables under which a tester will determine whether a software system is working correctly. Test cases are often written as test scripts and collected into test suites. Characteristics of good test cases include being simple, clear, concise, complete, non-redundant, and having a reasonable probability of catching errors. Test cases should be developed to verify specific requirements or designs and include both positive and negative cases.