Команды QA могут быть ответственны за различные автоматизированные типы тестов, включая пользовательские, API, производительность и тесты безопасности. Много раз я вижу эти автоматизированные тесты в репозитории кода, который отдельно от репозитория кода приложения.
Почему это плохое представление?
1. Поощряет водопад поведения В этой модели разработчики объединяют свои изменения до того, как QA объединяет их. Даже если код разработчика идеален, QA может потребоваться дополнительная поддержка таких вещей, как идентификаторы элементов или локаторы. К тому времени, когда QA понимает, что разработчик переместился на их следующее задание и иногда не возбужден к контекстному переключанию и обрабатывает задачу, которую они чувствуют, уже завершены.
Еще хуже, неожиданные изменения DOM могут привести к неудаче существующих тестов. Что происходит, когда наши автоматизированные тесты еще не «догнали» и бегите против этих последних событий? Тесты проваливаются, и тесты маркируются как «хрупкие».
2. Уменьшает сотрудничество между Dev и Qa Разделение REPOS также может привести к разработке Dev и Qa независимо в отдельных силосах. В идеале ручное и автоматическое тестирование произойдут параллельно. При совместной работе, QA может быстро определить проблемы и сообщать эту информацию для разработчика, сдвигая тестирование влево.
Кроме того, Devs может предоставить технические рекомендации, связанные с тестами на создание автоматизации. Это сотрудничество приведет к лучшему охвату кода, при этом тесты выталкивают тестовую пирамиду.
3. Трубопровод CI должен согласовать между 2 REPOS. Но как? Надеюсь, автоматизированные тесты работают в трубопроводе CI для проверки изменений разработчика — это хорошо. Когда разработчики объединяют свои изменения, конвейер пройдет эти автоматизированные тесты.
Но REPO QA не был обновлен, когда разработчик объединяет их изменения. Как нам удавать это отключение? Если 2 REPOS не в синхронизации, то мы не можем.
Так что же нам делать?
Альтернатива
Вместо разделения кода и тестирует на два репо, нам нужно консолидировать в одном репо.
С этой стратегией придет сотрудничество между Dev и Qa. Работа не считается полной, пока и код и тесты не будут сделаны.
Кроме того, Devs знает, что они тестируют с модульными тестами, и это понимание может помочь уменьшить количество дублирующихся тестов на более высоких уровнях.
Благодаря автоматизированным тестам синхронизации с кодом автоматизированные тесты могут быть выполнены локально перед объединением репо, значительно снижая шансы на разрыв сборки.
Как только слияние происходит, процесс CI не должен беспокоиться о двух репо, которые не синхронизируются. Теперь у нас есть один репо с кодом и тестами. Мы проводим тесты на местном уровне и можем чувствовать себя уверенно, объединение не нарушит сборку.
Завернуть В заключение, даже если я много говорил «Dev» и «QA» в этом посте, эти условия немного повернуты. В идеале Agile Team не является DEV или QA, а одна команда. Участник команды может иметь разные специальности, но все они работают вместе, чтобы создать качественное программное обеспечение. Однократное репо для кода и автоматизированных тестов может помочь поощрять это мышление.
Оригинал: «https://dev.to/leading-edje/stop-creating-a-git-repo-for-automated-tests-1p60»