1. Should be accurate and tests what it is intended to test.
2. No unnecessary steps should be included in it.
3. It should be reusable.
4. It should be traceable to requirements.
5. It should be compliant to regulations.
6. It should be independent i.e. You should be able to execute it in any order without any dependency on other test cases.
7. It should be simple and clear, any tester should be able to understand it by reading once.
8. Now keeping in mind these characteristics you can write good and effective test cases.