While selecting test cases the primary objectives is to ensure that if there is an error or fault in the program, it is exercised by one of the test cases. An ideal test case set is one that succeeds (meaning that its execution reveals no errors) only if there are no errors in the program.
One possible ideal set of test cases is one that includes all the possible inputs to the program. This is often called exhaustive testing.