Про то, как мы один тест запускали…
Проект, над которым я сейчас работаю, небольшой. Экспериментальная железка, драйвер, вспомогательный сервис, скрипты всякие. Пишут это все два с половиной человека: я, да полтора землекопа контрактника. Дописали мы все это до состояния, когда уже можно запускать стресс тесты – отлавливать гонки, редкие баги, глюки железа и прочие нехитрые радости разработчика. Само собой, первые несколько ошибок поймали, пока ещё отлаживали скрипты для автоматического запуска тестов.
Далее идет хронология с момента первого официального запуска стресс теста. (К этому моменту ручной прогон тестов в течение нескольких минут ничего не находит).
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 коде.
Вот так и живем…
Тесты ганяете под DTM или что-то кастомное?
Мне часто помогает одно простое правило на стадии отладки и разработки – на виртуальных машинах для отладки всегда стоит Driver Verifier со всеми опциями ON и Application Verifier практически со всеми опциями (для хелпер приложений).
Это, конечно, не решит проблем с отладкой железа …
Относительно контрактников – (я так полагаю, удаленная работа?) – у нас пока только негативный опыт, хотя, наверное, в каждом случае по разному
Как-то так получается, что если чел не в одной с тобой лодке (в команде), его отношение к работе совсем другое
Что-то кастомное.
Это само собой.
Нет, они сидят в одном с нами офисе – через коридор. Нормальные ребята, умеющие работать самостоятельно.