This is a skill that you must develop. Your testing should be so thorough that I am confident your program is correct without my doing any testing at all. I run my own set of test cases principally because some students do such a poor job of testing their code. A fair assessment requires that know how well your program works, even if I have to provide the test cases. Design relates to the overall structure and organization of your program.
Good design is impossible to define briefly but fortunately, it is easy to recognize.
Books can and have been written to try to answer the question, what constitutes good design. Any good book on software engineering, such as the one by Sommerville, will present the principles of good design. Good design is simple design . Poor designs are almost always overly complex. When you find your code becoming complex, it's a good time to rethink your entire approach.