История развития тестирования программного обеспечения



Первые программные системы разрабатывались в рамках программ научных исследований или программ длянужд министерств обороны. Тестирование таких продуктов проводилось строго формализовано с записьювсех тестовых процедур, тестовых данных, полученных результатов. Тестирование выделялось в отдельныйпроцесс, который начинался после завершения кодирования, но при этом, как правило, выполнялось тем жеперсоналом.

В 1960-х много внимания уделялось «исчерпывающему» тестированию, которое должно проводиться с использованием всех путей в коде или всех возможных входных данных. Было отмечено, что в этих условиях полное тестирование ПО невозможно, потому что, во-первых, количество возможных входных данных оченьвелико, во-вторых, существует множество путей, в-третьих, сложно найти проблемы в архитектуре и спецификациях. По этим причинам «исчерпывающее» тестирование было отклонено и признано теоретически невозможным.

В начале 1970-х тестирование ПО обозначалось как «процесс, направленный на демонстрацию корректностипродукта» или как «деятельность по подтверждению правильности работы ПО». В зарождавшейся программной инженерии верификация ПО значилась как «доказательство правильности». Хотя концепция была теоретически перспективной, на практике она требовала много времени и была недостаточновсеобъемлющей. Было решено, что доказательство правильности — неэффективный метод тестирования ПО. Однако, в некоторых случаях демонстрация правильной работы используется и в наши дни, например, приемо-сдаточные испытания. Во второй половине 1970-х тестирование представлялось как выполнение программы с намерением найти ошибки, а не доказать, что она работает. Успешный тест — это тест, который обнаруживает ранее неизвестные проблемы. Данный подход прямо противоположен предыдущему. Указанные два определения представляют собой «парадокс тестирования», в основе которого лежат двапротивоположных утверждения: с одной стороны, тестирование позволяет убедиться, что продукт работаетхорошо, а с другой — выявляет ошибки в ПО, показывая, что продукт не работает. Вторая цель тестирования является более продуктивной с точки зрения улучшения качества, так как не позволяет игнорировать недостатки ПО.

В 1980-х тестирование расширилось таким понятием, как предупреждение дефектов. Проектированиетестов — наиболее эффективный из известных методов предупреждения ошибок. В это же время стали высказываться мысли, что необходима методология тестирования, в частности, что тестирование должно включать проверки на всем протяжении цикла разработки, и это должен быть управляемый процесс. В ходетестирования надо проверить не только собранную программу, но и требования, код, архитектуру, сами тесты. «Традиционное» тестирование, существовавшее до начала 1980-х, относилось только к скомпилированной, готовой системе (сейчас это обычно называется системное тестирование), но в дальнейшем тестировщикистали вовлекаться во все аспекты жизненного цикла разработки. Это позволяло раньше находить проблемы втребованиях и архитектуре и тем самым сокращать сроки и бюджет разработки. В середине 1980-х появились первые инструменты для автоматизированного тестирования. Предполагалось, что компьютер сможет выполнить больше тестов, чем человек, и сделает это более надежно. Поначалу эти инструменты быликрайне простыми и не имели возможности написания сценариев на скриптовых языках.

В начале 1990-х в понятие «тестирование» стали включать планирование, проектирование, создание, поддержку и выполнение тестов и тестовых окружений, и это означало переход от тестирования кобеспечению качества, охватывающего весь цикл разработки ПО. В это время начинают появлятьсяразличные программные инструменты для поддержки процесса тестирования: более продвинутые среды дляавтоматизации с возможностью создания скриптов и генерации отчетов, системы управления тестами, ПО дляпроведения нагрузочного тестирования. В середине 1990-х с развитием Интернета и разработкой большогоколичества веб-приложений особую популярность стало получать «гибкое тестирование» (по аналогии с гибкими методологиями программирования).

В 2000-х появилось еще более широкое определение тестирования, когда в него было добавлено понятие «оптимизация бизнес-технологий» (en:business technology optimization, BTO). BTO направляет развитиеинформационных технологий в соответствии с целями бизнеса. Основной подход заключается в оценке имаксимизации значимости всех этапов жизненного цикла разработки ПО для достижения необходимого уровнякачества, производительности, доступности.


Дата добавления: 2021-02-10; просмотров: 136; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!