Во-первых, у нас есть тесты регистрации (дыма), которые должны быть запущены до того, как код может быть возвращен. Это выполняется автоматически, выполняя задание, которое запускает тесты, а затем делает проверку в системе контроля версий после успешного завершения теста. Во-вторых, круиз-контроль запускает тесты сборки и регрессии. Продукт создается, затем запускается несколько наборов интеграционных тестов. Количество тестов зависит от того, где мы находимся в цикле выпуска. Дополнительные тесты добавляются в конце цикла во время замедления. Круиз-контроль принимает все заявки в течение определенного промежутка времени (12 минут), поэтому ваши изменения могут быть собраны и протестированы с небольшим количеством других. В-третьих, есть автоматическая ночная сборка и довольно обширные тесты. У нас есть точки нагрузки или вехи каждые 2 или 3 недели. В точке загрузки все автоматизированные тесты выполняются плюс ручное тестирование. Тестирование производительности также проводится для каждого этапа. Тесты производительности могут быть начаты по запросу, но доступное оборудование ограничено, поэтому людям приходится стоять в очереди на тесты производительности. Обычно люди полагаются на нагрузочные тесты производительности, если они не вносят изменения специально для повышения производительности. Наконец, стресс-тесты также проводятся для каждой нагрузки. Эти тесты направлены на то, чтобы убедиться, что продукт не имеет утечек памяти или чего-либо еще, что мешает круглосуточной работе продукта, а не производительности. Все это делается с помощью муравья, круиз-контроля и скриптов Python.