You should definitely start using a naming convention where test classes stand out by looking at the name, but there are legitimate use cases for being able to programmatically query all test classes.
If you look at the developer console, they have their own _ui endpoint for performing such a query that you could use yourself, although it isn't officially supported:
$ curl -b 'sid=<session-id>' https://<instance>.salesforce.com/_ui/common/apex/test/ApexTestQueueServlet -d 'action=GET_TESTS' -X 'POST' -H 'Content-Type:application/x-www-form-urlencoded; charset=UTF-8'
This will return normal classes that contain test methods.
If you want to use a standard api feature, another option would be to query the tooling api for code coverage, and all of the classes not present would be test classes:
$ curl -H 'X-PrettyPrint: 1' -H 'Authorization: Bearer <authorzation-token>' https://<instance>.salesforce.com/services/data/v39.0/tooling/query?q=SELECT+Coverage,ApexClassorTriggerId+FROM+ApexCodeCoverage
Normal classes with test methods will not be excluded.
TEST_myClass1
andTEST_myVFController1
. Like this all your TC will be next to each other@IsTest
annotation. Problem would arise when you have the annotation in comments, so you would need to build a smart filter which ignore comments.