Наша кодовая база растет уже 20 лет. У нас около 10 разработчиков + sqa, работающих с 500kloc. Некоторое время назад небольшая команда из нас (2 разработчика, один из sqa) начала работать над автоматизированной тестовой программой. В настоящее время один прогон занимает 11 часов и является интеграционным тестом. Мы работаем над этим, чтобы уменьшить это и уменьшить количество ложных срабатываний, и добиваемся в этом хорошего прогресса. Но детали не должны иметь значения.
Это работает хорошо, и мы продолжаем улучшать его. Нам (небольшой команде) это очень нравится. Если мы что-то нарушаем, мы замечаем день спустя, а не 2 месяца спустя, когда sqa смотрит. Также нашим менеджерам (dev + sqa) идея нравится. Но другие люди в команде просто игнорируют результаты теста. По их мнению, если тесты не проходят после проверки, это проблема теста, а не изменения кода, а просто наш игрушечный проект. Мы несколько раз обсуждали, является ли неудачный тест настоящей ошибкой. В большинстве случаев это так.
Мы не можем и не хотим что-то навязывать. Как мы можем показать, что автоматизированное тестирование - это вещь?
источник
Ответы:
отказ
Хотя я могу звучать как менеджер, я написал это как разработчик, которого также нужно было убедить, что автоматизированные тесты хороши.
Вы должны понимать основную психологию разработчиков. Это укоренившаяся необходимость разработчиков для принятия кода. Все, что мешает им сделать это, очень, очень плохо. Неудачный тест - определенно то, что мешает им сделать это, потому что это плохо. Отсюда и сопротивление.
Следует отметить, что хотя автоматизированные тесты и замедляют их в краткосрочной перспективе, в долгосрочной перспективе это избавит их от многих неприятностей и фактически ускорит их, поскольку они смогут уделять больше внимания разработке новые вещи, и они будут терять меньше времени, занимаясь тем, что разработчики ненавидят: исправлением ошибок.
И да, вы должны обеспечить его соблюдение. Вы должны получить безусловную поддержку от руководства и сделать написание автоматических тестов обязательным и не подлежащим обсуждению. Со временем разработчики привыкнут к ним. Поможет, если вы сможете разработать некоторые метрики, которые будут показывать, сколько было сделано новых разработок и насколько уменьшилось количество ошибок с тех пор, как вы внедрили автоматические тесты. Слова изменчивы. Числа сплошные. А цифры - это то, что средний разработчик понимает лучше, чем слова. Если вы можете доказать с помощью сплошных чисел, что автоматические тесты хороши, вы почти не будете сопротивляться им.
источник
Там твоя проблема. Если ваши тесты ненадежны (даже если они надежны «большую часть времени»), тогда люди будут склонны игнорировать результаты. Ваша команда автоматизации должна сосредоточиться на устранении этих ложных негативов. Только тогда остальная часть команды обретет достаточную уверенность в результатах, чтобы действительно доверять им.
источник
Вы определенно должны соблюдать это! Если кто-то вводит новый код и тесты не пройдены, код следует отклонить! Это единственный способ надежно поддерживать большой программный проект.
источник