Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Два с лишним десятилетия назад в разработке ПО не было отдельной фазы тестирования, а роли тестировщиков вообще не существовало. Программисты занимались разработкой программного обеспечения, тестировали его и отправляли в продакшен.
Концепция тестирования появилась постепенно, когда дефекты в продакшене начали бить по бюджету.
ИТ-индустрия начала следовать такой модели разработки ПО, в которой жизненный цикл разработки проходит последовательно в следующем порядке:
требования => проектирование => написание кода => тестирование
Таким образом, если читать слева направо, то фаза тестирования находится в правой части жизненного цикла разработки.
В этой статье мы рассмотрим такой подход в тестировании, как Shift Left, расскажем о его преимуществах и о том, как этот подход влияет на разработку ПО.
Содержание
- Введение в концепцию Shift Left
- Как Shift Left влияет на разработку программного обеспечения?
- Что тестировщики должны делать иначе при Shift Left?
- Преимущества Shift Left тестирования
- Заключение
Введение в концепцию Shift Left
Со временем люди поняли, что тестирование имеет большое значение и начинать его нужно как можно раньше. К осознанию этих фактов подтолкнуло то, что стоимость ошибок, выявленных на последних этапах разработки, была очень высокой. Для их исправления требовались огромные усилия и слишком много времени.
Бывали случаи, когда после длительного и трудоемкого процесса разработки приложение не могло быть выпущено в продакшен из-за серьезной ошибки, обнаруженной на завершающем этапе. Это приводило к огромным потерям, так как выпуск продукта либо откладывался, либо вообще отменялся из-за слишком высокой стоимости правок.
![](https://qarocks.ru/wp-content/uploads/2023/09/software-development-phase.jpg)
Дефекты обходятся дешевле, если их выявить на ранней стадии разработки.
Осознание этого привело к революции в индустрии ПО и породило новую концепцию – “Shift Left” (русск. “сдвиг влево”). Суть концепции в смещении фазы тестирования влево и проведение тестирования на каждом этапе разработки. Этот подход подразумевает участие тестировщиков на всех этапах процесса разработки.
Тестирование со сдвигом влево также означает, что тестировать нужно не в конце, а постоянно и в течение всего процесса разработки ПО.
![Этапы SDLC](https://qarocks.ru/wp-content/uploads/2023/03/sdlc-phases.jpg)
![Подход "сдвиг влево"](https://qarocks.ru/wp-content/uploads/2023/03/shift-left-approach.jpg)
Подход “сдвиг влево” помогает тестировщикам сотрудничать со всей командой, участвующей в создании приложения. Благодаря этому они четче понимают требования, дизайн, архитектуру и функциональность приложения. Они могут задать вопросы клиентам, бизнес-аналитикам и разработчикам, уточнить детали и предоставить обратную связь.
Все это позволяет тестировщикам разрабатывать тест-кейсы, позволяющие быстро обнаруживать баги. А разработчики, в свою очередь, получают возможность устранить все сбои на самых ранних этапах.
Как 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 Lift](https://qarocks.ru/wp-content/uploads/2023/03/shift-left.jpg)
Что тестировщики должны делать иначе при Shift Left?
Ниже приведены несколько ключевых факторов, на которые следует обратить внимание в стратегии Shift Left:
1. Команда тестировщиков должна быть вовлечена в процесс разработки с самого начала проекта. QA-специалисты должны эффективно сотрудничать с остальными членами команды для создания более надежного продукта.
2. Тестировщики должны сотрудничать с разработчиками, чтобы понять продукт, разработать единый план тестирования, подготовить тестовую среду, разработать надежную стратегию автоматизации, а также создать эффективный план управления тестовыми данными.
3. Требования – основа успеха продукта. На этапе планирования требований тестировщики анализируют и проверяют их на ясность, полноту, тестируемость и критерии приемки.
Четкие требования помогают быстрее обнаружить и исправить ошибки в программном обеспечении.
4. Тестировщики должны заранее провести статическое тестирование, проанализировать его и дать свои комментарии по ключевым документам проекта. Это помогает предотвратить появление ошибок в ПО.
5. Команда тестирования должна сотрудничать с командой проектирования и разработки. Она должна предоставить тестовые сценарии и план тестирования, чтобы разработчики понимали, каким образом будет протестировано приложение. Такое сотрудничество позволяет учесть различные ситуации, с которыми может столкнуться программа в реальных условиях работы.
Таким образом, тестирование становится более эффективным, а шансы на обнаружение и исправление возможных проблем и ошибок до выпуска программы в продакшен значительно увеличиваются.
6. Команда тестирования должна разрабатывать эффективные и надежные тестовые сценарии, чтобы во время тестирования выявлялись лишь некоторые ошибки, а основные дефекты предотвращались на более ранних стадиях.
7. Тестировщики должны проводить тестирование как можно раньше, чтобы дефекты не перешли на более поздние этапы разработки ПО.
![](https://qarocks.ru/wp-content/uploads/2023/09/finding-defects-using-shift-left1.jpg)
Преимущества 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