Основные принципы модульных тестов

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

  1. Скорость — тесты должны выполняться быстро;
  2. Независимость — результаты выполнения одного теста не должны быть входными данными для другого. Все тесты должны иметь возможность выполняться в произвольном порядке;
  3. Очевидность — тест либо прошел, либо не прошел;
  4. Повторяемость — тесты должны давать одинаковые результаты независимо от среды выполнения;
  5. Своевременность — тесты должны создаваться своевременно.

Основную информацию нашел на страничке first-principles.