Есть такой акроним F.I.R.S.T. — fast, independence, repeatable, self-validating, timely. Его придумал некий Боб Мартин, описывая основные характеристики модульных тестов. Но подтверждение этого я пока не нашел. И тем не менее, если перефразировать, то получится:
- Скорость — тесты должны выполняться быстро;
- Независимость — результаты выполнения одного теста не должны быть входными данными для другого. Все тесты должны иметь возможность выполняться в произвольном порядке;
- Очевидность — тест либо прошел, либо не прошел;
- Повторяемость — тесты должны давать одинаковые результаты независимо от среды выполнения;
- Своевременность — тесты должны создаваться своевременно.
Основную информацию нашел на страничке first-principles.