Тестирование со сдвигом влево
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Тестирование со сдвигом влево [1] — это подход к тестированию программного обеспечения и системного тестирования , при котором тестирование выполняется на более ранних этапах жизненного цикла (т. е. перемещается влево на временной шкале проекта). Это первая половина принципа «проверяйте рано и часто». [2] Его придумал Ларри Смит в 2001 году. [3] [4]
Вред из-за позднего тестирования [ править ]
Тестирование со сдвигом влево направлено на предотвращение следующих типов вреда из-за позднего тестирования:
- Недостаточно ресурсов, выделенных на тестирование.
- Необнаруженные дефекты в требованиях, архитектуре и дизайне, а также значительные усилия, потраченные впустую при их реализации.
- Сложность отладки (включая выявление, локализацию, исправление и регрессионное тестирование дефектов) по мере того, как создается и интегрируется все больше программного обеспечения.
- Уменьшение покрытия кода во время тестирования. [ нужна ссылка ] в результате инкапсуляции, препятствующей тестированию «белого ящика» .
- «Волна лука» технического долга , которая может привести к провалу проекта.
Типы тестирования со сдвигом влево [ править ]
Существует четыре основных способа перенести тестирование на более ранние этапы жизненного цикла (то есть влево в классической V-модели ). Их можно назвать традиционным тестированием со сдвигом влево. [5] инкрементное тестирование со сдвигом влево, тестирование Agile/DevOps со сдвигом влево, [6] [7] и тестирование сдвига влево на основе моделей. [8]
сдвига Традиционное влево тестирование
Как показано на следующем рисунке, традиционный сдвиг влево перемещает акцент тестирования вниз (и, следовательно, немного влево) с правой стороны классической модели V. Вместо акцента на приемочном тестировании и тестировании на уровне системы (например, тестирование графического интерфейса с помощью инструментов записи и воспроизведения) [9] ), традиционный сдвиг влево концентрируется на модульном тестировании и интеграционном тестировании (например, с использованием тестирования API и современных инструментов тестирования). Переход к традиционному тестированию со сдвигом влево в основном завершен. [ кем? ]
- Традиционное тестирование сдвига влево
Инкрементное тестирование сдвига влево [ править ]
Как показано на следующем рисунке, во многих проектах, разрабатывающих большие и сложные программно-зависимые системы, разработка разбивается на небольшое количество этапов (V), имеющих соответственно более короткую продолжительность. Сдвиг влево, показанный пунктирными красными стрелками, происходит потому, что части типов тестирования одиночной большой водопадной модели V (показаны серым цветом) смещаются влево, чтобы стать приращениями соответствующих типов тестирования в меньших инкрементальных моделях V. Когда каждое приращение также является доставкой заказчику и эксплуатации, тогда инкрементное тестирование со сдвигом влево смещает влево как тестирование разработки, так и эксплуатационное тестирование. Инкрементальное тестирование со сдвигом влево популярно при разработке больших и сложных систем, особенно тех, которые включают значительное количество аппаратного обеспечения. Как и традиционный сдвиг влево, переход к постепенному сдвигу влево также в основном завершен.
- Инкрементное тестирование сдвига влево
Тестирование Agile/DevOps со сдвигом влево [ править ]
Как показано на следующем рисунке, проекты Agile и DevOps имеют множество коротких V (спринтов) вместо одного или небольшого количества V, как в двух предыдущих примерах тестирования со сдвигом влево. Эти маленькие V также будут изменены, если один или несколько ранних спринтов используются для блокировки основных требований и архитектуры или если разработка с упором на тестирование выполняется (TDD). Сдвиг влево происходит потому, что типы тестирования в правой части самого раннего из этих крошечных V находятся слева от соответствующих типов тестирования в правой части более крупных V, которые они заменяют. Хотя следующий рисунок выглядит совершенно одинаковым для Agile и DevOps, Agile-тестирование обычно ограничивается тестированием разработки и не включает эксплуатационное тестирование, которое происходит после ввода системы в эксплуатацию. Переход к тестированию Agile/DevOps со сдвигом влево в настоящее время популярен и продолжается.
- Тестирование Agile/DevOps со сдвигом влево
Тестирование со сдвигом влево на основе модели [ править ]
Все предыдущие формы были сосредоточены на тестировании на ранних этапах цикла разработки. Однако все они проводят тестирование после того, как программное обеспечение уже существует, и стремятся выявить только дефекты реализации. [ нужна ссылка ]
Тестирование на основе моделей перемещает тестирование в левую часть таблицы V за счет тестирования требований, архитектуры и моделей проектирования. Этот сдвиг начинается с тестирования почти сразу, вместо того, чтобы ждать долгое время (традиционное тестирование), среднее время (инкрементальное тестирование) или короткое время (Agile/DevOps), пока программное обеспечение станет доступным для правой стороны V. Эта тенденция только начинается.
- Тестирование со сдвигом влево на основе модели
Ссылки [ править ]
- ^ Дональд Файерсмит (23 марта 2015 г.). «Четыре типа тестирования сдвига влево» . Архивировано из оригинала 5 сентября 2015 г. Проверено 27 марта 2015 г.
- ^ Майкрософт (2012). «Тестируйте рано и часто» . Архивировано из оригинала 2 апреля 2015 года . Проверено 27 марта 2015 г.
- ^ Смит, Ларри (сентябрь 2001 г.). «Тестирование Shift-Left» . Журнал доктора Добба . 26 (9): 56, 62. Архивировано из оригинала 21 июня 2020 г. Проверено 4 июня 2020 г.
- ^ «Сентябрь 01: Тестирование сдвига влево» . 10 августа 2014 г. Архивировано из оригинала 10 августа 2014 г. Проверено 6 сентября 2019 г.
- ^ Velocity Partners (28 января 2014 г.). «Гибкое тестирование — пирамида автоматизации гибкого тестирования» . Архивировано из оригинала 2 апреля 2015 года . Проверено 27 марта 2015 г.
- ^ Пол Барс (6 ноября 2014 г.). «Сдвиг влево: подходы и практики» . Архивировано из оригинала 6 апреля 2015 года . Проверено 27 марта 2015 г.
- ^ Диббе Эдвардс (18 сентября 2014 г.). «Обеспечение успеха DevOps с помощью непрерывного тестирования со сдвигом влево» . ИБМ . Архивировано из оригинала 2 апреля 2015 года . Проверено 27 марта 2015 г.
- ^ Дональд Файерсмит (11 ноября 2013 г.). «Использование V-моделей для тестирования» . Архивировано из оригинала 2 апреля 2015 года . Проверено 27 марта 2015 г.
- ^ Майкрософт (2013). «Ручные тесты записи и воспроизведения» . Архивировано из оригинала 2 апреля 2015 года . Проверено 27 марта 2015 г.