Про то, как мы один тест запускали…

Проект, над которым я сейчас работаю, небольшой. Экспериментальная железка, драйвер, вспомогательный сервис, скрипты всякие. Пишут это все два с половиной человека: я, да полтора землекопа контрактника. Дописали мы все это до состояния, когда уже можно запускать стресс тесты – отлавливать гонки, редкие баги, глюки железа и прочие нехитрые радости разработчика. Само собой, первые несколько ошибок поймали, пока ещё отлаживали скрипты для автоматического запуска тестов.

Далее идет хронология с момента первого официального запуска стресс теста. (К этому моменту ручной прогон тестов в течение нескольких минут ничего не находит).

30 ноября: FAILED. Ну никто и не ожидал, что все заработает с первого раза. Продолжаем отлаживать инфраструктуру: больше логов, настраивается сбор дампов со всех машин и т.д.

4 декабря: FAILED. Тест запустился на 7 часов позднее положенного, так как машина решила поспать. После чего, тест отвалился по одному из таймаутов.

5 декабря: FAILED. Останавливается передача данных в адаптере безо всяких на то причин. Ну что поделаешь, - железо новое, не до конца отлаженное. Добавляем watchdog в драйвер, который дергает reset на адаптере.

6 декабря: FAILED. Драйвер не смог выделить память для DMA буферов. Начинаем выделять память несколькими кусками поменьше, а не одним большим.

12 декабря: FAILED. Тест завалился из-за недавних правок тестового скрипта.

13 декабря: FAILED. Нашли ошибку в одном из конечных автоматов. К этому времени завершалась работа над кардинальной переделкой этого куска кода, так что ошибку решили не исправлять.

15 декабря: FAILED. В основную ветку вливаются изменения, которые, по идее, исправляют предыдущую проблему. Однако тест падает из-за другого, только что добавленного бага.

15 декабря (вечер): SUCCEEDED. Ура!

16 декабря: FAILED. Поломали билд.

19 декабря: SUCCEEDED. Что, опять? Даже как-то странно.

20 декабря: FAILED. Нашлась проблема в shutdown коде.

Вот так и живем…

comments powered by Disqus