Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Два с лишним десятилетия назад в разработке ПО не было отдельной фазы тестирования, а роли тестировщиков вообще не существовало. Программисты занимались разработкой программного обеспечения, тестировали его и отправляли в продакшен.
Концепция тестирования появилась постепенно, когда дефекты в продакшене начали бить по бюджету.
ИТ-индустрия начала следовать такой модели разработки ПО, в которой жизненный цикл разработки проходит последовательно в следующем порядке:
требования => проектирование => написание кода => тестирование
Таким образом, если читать слева направо, то фаза тестирования находится в правой части жизненного цикла разработки.
В этой статье мы рассмотрим такой подход в тестировании, как Shift Left, расскажем о его преимуществах и о том, как этот подход влияет на разработку ПО.
Содержание
- Введение в концепцию Shift Left
- Как Shift Left влияет на разработку программного обеспечения?
- Что тестировщики должны делать иначе при Shift Left?
- Преимущества Shift Left тестирования
- Заключение
Введение в концепцию Shift Left
Со временем люди поняли, что тестирование имеет большое значение и начинать его нужно как можно раньше. К осознанию этих фактов подтолкнуло то, что стоимость ошибок, выявленных на последних этапах разработки, была очень высокой. Для их исправления требовались огромные усилия и слишком много времени.
Бывали случаи, когда после длительного и трудоемкого процесса разработки приложение не могло быть выпущено в продакшен из-за серьезной ошибки, обнаруженной на завершающем этапе. Это приводило к огромным потерям, так как выпуск продукта либо откладывался, либо вообще отменялся из-за слишком высокой стоимости правок.
Дефекты обходятся дешевле, если их выявить на ранней стадии разработки.
Осознание этого привело к революции в индустрии ПО и породило новую концепцию – “Shift Left” (русск. “сдвиг влево”). Суть концепции в смещении фазы тестирования влево и проведение тестирования на каждом этапе разработки. Этот подход подразумевает участие тестировщиков на всех этапах процесса разработки.
Тестирование со сдвигом влево также означает, что тестировать нужно не в конце, а постоянно и в течение всего процесса разработки ПО.
Подход “сдвиг влево” помогает тестировщикам сотрудничать со всей командой, участвующей в создании приложения. Благодаря этому они четче понимают требования, дизайн, архитектуру и функциональность приложения. Они могут задать вопросы клиентам, бизнес-аналитикам и разработчикам, уточнить детали и предоставить обратную связь.
Все это позволяет тестировщикам разрабатывать тест-кейсы, позволяющие быстро обнаруживать баги. А разработчики, в свою очередь, получают возможность устранить все сбои на самых ранних этапах.
Как Shift Left влияет на разработку ПО?
Подход Shift Lift влияет на разработку программного обеспечения следующими способами:
- Подход Shift Left означает полное вовлечение тестировщиков в процесс разработки продукта. Это позволяет им сосредоточиться не на обнаружении дефектов, а на их предотвращении и на достижении бизнес-целей продукта.
- Тестирование приобретает большее значение, а влияние и ответственность тестировщиков значительно возрастают.
- QA-специалисты активно сотрудничают с командой разработки с самых ранних этапов, чтобы создать надежную и эффективную стратегию тестирования.
- При подходе Shift Left тестировщики могут сначала разработать тесты, которые полностью сосредоточены на user experience. Это, в свою очередь, позволяет разработчикам создавать ПО на основе этих тестов и, следовательно, удовлетворять потребности клиента.
- Подход Shift Left не ограничивается одними лишь тестировщиками. Разработчики также берут на себя больше ответственности за свой код и тестирование.
- Shift Left отлично сочетается с такими подходами к разработке, как BDD (Behavior-driven development) и TDD (Test-driven development). В связке они помогают предотвращать возникновение дефектов в приложениях.
- В Agile-методологии “сдвиг влево” предусматривает формирование Scrum-команд с активным участием тестировщиков. Последние должны присутствовать на встречах, созвонах и различных мероприятиях.
В целом, Shift Left подразумевает участие тестировщиков во всем процессе разработки, включая обсуждение идей и анализ требований.
Что тестировщики должны делать иначе при Shift Left?
Ниже приведены несколько ключевых факторов, на которые следует обратить внимание в стратегии Shift Left:
1. Команда тестировщиков должна быть вовлечена в процесс разработки с самого начала проекта. QA-специалисты должны эффективно сотрудничать с остальными членами команды для создания более надежного продукта.
2. Тестировщики должны сотрудничать с разработчиками, чтобы понять продукт, разработать единый план тестирования, подготовить тестовую среду, разработать надежную стратегию автоматизации, а также создать эффективный план управления тестовыми данными.
3. Требования – основа успеха продукта. На этапе планирования требований тестировщики анализируют и проверяют их на ясность, полноту, тестируемость и критерии приемки.
Четкие требования помогают быстрее обнаружить и исправить ошибки в программном обеспечении.
4. Тестировщики должны заранее провести статическое тестирование, проанализировать его и дать свои комментарии по ключевым документам проекта. Это помогает предотвратить появление ошибок в ПО.
5. Команда тестирования должна сотрудничать с командой проектирования и разработки. Она должна предоставить тестовые сценарии и план тестирования, чтобы разработчики понимали, каким образом будет протестировано приложение. Такое сотрудничество позволяет учесть различные ситуации, с которыми может столкнуться программа в реальных условиях работы.
Таким образом, тестирование становится более эффективным, а шансы на обнаружение и исправление возможных проблем и ошибок до выпуска программы в продакшен значительно увеличиваются.
6. Команда тестирования должна разрабатывать эффективные и надежные тестовые сценарии, чтобы во время тестирования выявлялись лишь некоторые ошибки, а основные дефекты предотвращались на более ранних стадиях.
7. Тестировщики должны проводить тестирование как можно раньше, чтобы дефекты не перешли на более поздние этапы разработки ПО.
Преимущества Shift Left Testing
Подход Shift Left имеет ряд преимуществ:
- Люди и их взаимодействие важнее любых инструментов.
- Работающее программное обеспечение важнее всякой документации.
- Прямое сотрудничество с заказчиком, а не переговоры по контракту.
- Адаптация к изменениям вместо следования разработанному плану.
Shift Left – это идея о проведении тестирования на более ранних этапах процесса разработки. Это приводит к более качественному и эффективному тестированию и улучшению качества программного обеспечения.
Подход Shift Left – это:
- Обнаружение дефектов на ранней стадии разработки ПО, что позволяет снизить стоимость проекта.
- Непрерывное тестирование для уменьшения количества дефектов на конечном этапе разработки.
- Автоматизация тестирования.
- Сосредоточенность на требованиях заказчика.
Заключение
Концепция “сдвига влево” – это новый подход в тестировании программного обеспечения. Раньше тестировщики фокусировались на поиске ошибок уже после написания кода. Теперь же они стараются обнаружить возможные проблемы еще до того, как код будет готов.
Поделитесь с нами своим мнением на данную тему в комментариях!
Перевод статьи «Shift Left Testing: A Secret Mantra for Software Success».
Пингбэк: Types, tools and best practices of security testing - Prog.World