Automated tests should be:
Concise: As simple as possible and no simpler.
Self Checking: Test reports its own results; needs no human interpretation.
Repeatable: Test can be run many times in a row without human intervention.
Robust: Test produces same result now and forever. Tests are not affected by changes in the external environment.
Sufficient: Tests verify all the requirements of the software being tested.
Necessary: Everything in each test contributes to the specification of desired behavior.
Clear: Every statement is easy to understand
Efficient: Tests run in a reasonable amount of time.
Specific: Each test failure points to a specific piece of broken functionality; unit test failures provide “defect triangulation”
Independent: Each test can be run by itself or in a suite with an arbitrary set of other tests in any order.
Maintainable: Tests should be easy to understand and modify and extend.
Traceable: To and from the code it tests and to and from the requirements.
All these are described in the Test Automation Manifesto that you can read on this link.
Now, look again at your tests.
How many of these qualities do they have?
How many do they miss?