Ветки могут создаваться для различных целей.
1. Разработка новой функциональности. Когда нужно добавить новую функциональность в приложение, команда может создать отдельную ветку, чтобы не влиять на основной код и тестировать новый функционал отдельно.
2. Исправление ошибок. Когда возникает ошибка в коде, команда может создать отдельную ветку, чтобы исправить ошибку и протестировать исправление, не затрагивая основной код.
3. Стабилизация результата. Когда стабильно работающий билд продукта отправляется заказчику или просто сохраняется как резервная копия для возможности возврата к ней в будущем. При этом работа над продуктом продолжается в основной ветке.
4. Тестирование и эксперименты. Когда нужно протестировать какую-то идею или провести эксперимент, команда может создать отдельную ветку, чтобы проверить идею и не повлиять на основной код.
После того как изменения в ветке были протестированы и одобрены, они могут быть слиты в основную ветку. Это может происходить постоянно или периодически в зависимости от выбранной командой методологии разработки.
Разработка в разных ветках – стандартная практика в большинстве команд разработки, особенно с большим количеством разработчиков. Это позволяет ускорить процесс разработки, улучшить качество кода и снизить вероятность конфликтов в коде.
Пример ветвления при разработке
Ниже приведены некоторые преимущества и недостатки ветвления в разработке программного обеспечения.
Преимущества
• Изоляция изменений. Каждая ветка – это изолированная линия разработки, что позволяет разработчикам работать над изменениями без влияния на другие части кода. Это позволяет снизить количество конфликтов при слиянии изменений в основную ветку.
• Параллельная разработка. Можно работать над разными частями приложения одновременно, что ускоряет процесс разработки.
• Управление версиями. Каждая ветка может быть отдельно версионирована, что упрощает управление версиями приложения.
• Исправление ошибок. Исправления могут быть быстро внесены в отдельную ветку, чтобы избежать проблем с нестабильностью основной.
Недостатки
• Увеличивает сложность управления кодом, поскольку каждая ветка может иметь свои особенности и уникальные изменения.
• Увеличивает необходимость в тестировании и интеграции каждой ветки перед ее объединением с основной веткой.
• Может привести к проблемам слияния веток, если различные члены команды вносят изменения в одни и те же файлы.
Для управления процессом ветвления важно иметь хорошо определенные правила и процессы для управления ветками, а также использовать инструменты для контроля версий, такие как Git, чтобы управлять и сливать ветки.
2.4.3. Взаимодействие тестировщика с заинтересованными лицами
В своей работе тестировщик вступает в общение с большим количеством людей. Все, кто имеет интерес к тестированию и его результатам, а также качеству разрабатываемой системы, называются заинтересованными лицами тестирования. Поскольку они изменяются в зависимости от проекта, продукта, организации и других особенностей, это могут быть следующие роли.
• Разработчики обеспечивают реализацию тестируемого программного обеспечения, получают результаты тестирования и должны принимать меры на основе этих результатов, например исправлять найденные дефекты.
• Системные архитекторы и дизайнеры проектируют программное обеспечение, получают результаты тестирования и принимают меры на их основе.
Менеджеры проекта несут ответственность за управление проектами, соблюдая баланс между показателями качества, сроками, ресурсами и бюджетом. Они часто сотрудничают с руководителем тестирования при планировании и управлении.
• Маркетолог- и бизнес-аналитики определяют функции и уровень качества реализуемой функциональности. Они также часто участвуют в определении необходимого тестового покрытия, анализе результатов тестирования и принятии основанных на них решений.
• Сотрудники технической поддержки, поддержки клиентов поддерживают пользователей и клиентов, которые получают пользу от функций и качества поставляемого игрового ПО.
• Прямые и косвенные пользователи напрямую используют игру (то есть они конечные пользователи).