Documentation

Technical documentation of the Quasar project

Тестирование

Как устроена защита проекта: сторожа кода, сборка, тесты и тринадцать экзаменов с рубежом.

Защита вместо обещаний

Ни одна правка не входит в проект, пока не пройдёт защиту. Подогнать под неё ответ нельзя, а
обойти — нечем.

Сторожа кода

  • Гейт имён: чужие контракты не потеряны.
  • Гейт шаблонов: знание — в данные, не в код; ядро не знает слов языка.
  • Гейт шпагетти: сложность ветвлений и длина домов под порогом.
  • Гейт заглушек: не решать за орган и не судить по краю разбора.
  • Гейт свежести кубов: тронул узел — знания протухли, пересобирай.
  • Гейт чтения: замер зрения не мог измениться — шаг пропускается вслух.

Сборка и тесты

  • Сборка всего дерева.
  • Модульные тесты (ctest) — контракты домов.
  • Проба руки: движок собирает и запускает написанное.

Экзамены

  • Контракт беседы: 13 из 13.
  • Батарея живой речи: 9 из 16.
  • Выбор функции C++: 11 из 16.
  • Поведение по просьбе: 5 из 5.
  • Сторож выбора C++: индивидуальная защита.
  • Выбор функции PHP: 11 из 17.
  • Письмо на C++: 7 из 7.
  • Различение соседей: 11 из 18.
  • Своё против чужого: 3 из 5.
  • Жёсткая языковая область: 6 из 6.
  • Цепочка решения: след виден целиком.
  • Поведение письма: 11 из 11.
  • Расследование: 7 из 7.
  • Вывод: 0 из 6.
  • Отложенный экзамен: 28 из 30.

Правило рубежа

У каждого экзамена объявлено, сколько билетов уже взято. Это рубеж: меньше брать нельзя. Экзамен,
не сданный целиком, всё равно сторожит — от отката.

Отложенный экзамен

Его билетов нет в проекте. Они берутся из самого справочника и сменяются по дню года: их не видел
ни строитель, ни движок, и подогнать под них нечего.

Проверка делом

Мало собрать написанное — надо запустить. Движок строит ряд чисел, считает ожидание прямым циклом
и сравнивает с тем, что вернула его функция. Разошлось — говорит вслух и называет свою ошибку.