what is the test case
A good test case should be:
- small, isolated and atomic
- easy to understand
- executed as fast as possible
- independent with each other
- describe its expected result
- avoided from repetition
- written with end user's perspective