Тестирование со сдвигом влево [1] — это подход к тестированию программного обеспечения и системному тестированию , при котором тестирование выполняется на более ранних этапах жизненного цикла (т.е. смещается влево на временной шкале проекта). Это первая половина максимы «тестируйте рано и часто». [2] Она была придумана Ларри Смитом в 2001 году. [3] [4]
Тестирование со сдвигом влево направлено на предотвращение следующих видов вреда, вызванного поздним тестированием:
Существует четыре основных способа сместить тестирование на более ранние этапы жизненного цикла (то есть влево по классической V-модели ). Их можно назвать традиционным сдвигом влево, [5] инкрементальным сдвигом влево, сдвигом влево Agile/DevOps, [6] [7] и сдвигом влево на основе модели. [8]
Как показано на следующем рисунке, традиционный сдвиг влево смещает акцент тестирования ниже (и, следовательно, немного влево) на правой стороне классической модели V. Вместо акцента на приемке и тестировании на уровне системы (например, тестирование GUI с помощью инструментов записи и воспроизведения [9] ), традиционный сдвиг влево концентрируется на модульном тестировании и тестировании интеграции (например, с помощью тестирования API и современных инструментов тестирования). Переход к традиционному тестированию сдвигом влево в основном завершен. [ кем? ]
Как показано на следующем рисунке, многие проекты по разработке больших и сложных систем, зависящих от программного обеспечения, разлагают разработку на небольшое количество инкрементов (V), имеющих соответственно меньшую продолжительность. Сдвиг влево, проиллюстрированный пунктирными красными стрелками, происходит из-за того, что части типов тестирования единой большой каскадной модели V (показаны серым цветом) смещаются влево, чтобы стать инкрементами соответствующих типов тестирования в меньших инкрементных моделях V. Когда каждый инкремент также является поставкой заказчику и операциям, то инкрементное тестирование со сдвигом влево сдвигает как тестирование разработки, так и эксплуатационное тестирование влево. Инкрементное тестирование со сдвигом влево популярно при разработке больших сложных систем, особенно тех, которые включают в себя значительное количество оборудования. Как и традиционный сдвиг влево, переход к инкрементному сдвигу влево также в значительной степени завершен.
Как показано на следующем рисунке, проекты Agile и DevOps имеют многочисленные короткие V (спринты) вместо одного или небольшого количества V, как в предыдущих двух примерах тестирования со сдвигом влево. Эти небольшие V также будут изменены, если один или несколько ранних спринтов используются для блокирования основных требований и архитектуры или если выполняется разработка с первым тестированием и через тестирование (TDD). Сдвиг влево происходит, потому что типы тестирования с правой стороны самых ранних из этих маленьких V находятся слева от соответствующих типов тестирования с правой стороны более крупных V, которые они заменяют. Хотя следующий рисунок выглядит удивительно одинаковым для Agile и DevOps, тестирование Agile обычно ограничивается тестированием разработки и не включает эксплуатационное тестирование, которое происходит после ввода системы в эксплуатацию. Переход к тестированию Agile/DevOps со сдвигом влево в настоящее время популярен и продолжается.
Все предыдущие формы были сосредоточены на тестировании на ранних этапах цикла разработки. Однако все они тестируют ПО после его создания и стремятся обнаружить только дефекты реализации. [ необходима цитата ]
Тестирование на основе моделей перемещает тестирование на левую сторону Vs, тестируя требования, архитектуру и модели проектирования. Этот сдвиг начинает тестирование практически немедленно, вместо того, чтобы ждать долгое время (традиционное тестирование), среднее время (инкрементальное тестирование) или короткое время (Agile/DevOps) для того, чтобы программное обеспечение стало доступно на правой стороне Vs. Эта тенденция только начинается.