Automated testing is a paramount activity in agile development. Tests act as a guard to catch and localize software defects early. Production code relies on automated tests, however tests do not often have the luxury to be automatically checked by someone or something else. Therefore, high quality tests should be at place to ensure tests are doing a good job. There are many aspects to test quality, such as test effectiveness, test maintainability, etc. Usually, deviations from practices considered as good may lead to code smells, which in test code we call test-smells. Much empirical work has already been channelled through measuring the effectiveness of tests, however there is a lack of empirical evidence for the impact of test-smells on test quality. In this talk I will be focused on giving a brief introduction to software testing, and its importance. I will then explain the practices for writing good tests, and discuss the implications when these good practices are not met.