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

      Комментарии к записи История развития тестирования программного обеспечения отключены

Оглавление

Введение………………………………………………………………………………………………………………………. 2

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

Классификации тестирования……………………………………………………………………………………….. 7

Черный, белый, серый ящики………………………………………………………………………………………… 8

По объекту тестирования………………………………………………………………………………………………. 9

Тестирование интерфейса пользователя………………………………………………………………………… 9

Тестирование локализации……………………………………………………………………………………………. 9

Тестирование производительности……………………………………………………………………………….. 9

Нагрузочное тестирование………………………………………………………………………………………….. 10

Юзабилити-тестирование……………………………………………………………………………………………. 18

По степени автоматизации………………………………………………………………………………………….. 21

По степени изолированности компонентов…………………………………………………………………. 24

По времени проведения тестирования…………………………………………………………………………. 27

Обзор сред автоматизации тестирования……………………………………………………………………… 30

BUGS — the Bug Genie………………………………………………………………………………………………….. 33

Bugzilla………………………………………………………………………………………………………………………… 33

JIRA……………………………………………………………………………………………………………………………. 34

Trac……………………………………………………………………………………………………………………………… 35

HP LoadRunner, HP QuickTest Professional, HP Quality Center……………………………………….. 36

Выводы……………………………………………………………………………………………………………………….. 38

Выводы……………………………………………………………………………………………………………………….. 39

Введение

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

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

Существует множество подходов к решению задачи тестирования и верификации ПО, но эффективное тестирование сложных программных продуктов — это процесс в высшей степени творческий, не сводящийся к следованию строгим и чётким процедурам или созданию таковых.

С точки зрения ISO 9126, Качество (программных средств) можно определить как совокупную характеристику исследуемого ПО с учётом следующих составляющих:

¦ Функциональность — Набор атрибутов характеризующий, соответствие функциональных возможностей ПО набору требуемой пользователем функциональности. Детализируется следующими подхарактеристиками (субхарактеристиками):

¦ Пригодностью для применения

¦ Корректностью (правильностью, точностью)

¦ Способностью к взаимодействию (в частности сетевому)

¦ Защищенностью

¦ Надёжность — Набор атрибутов, относящихся к способности ПО сохранять свой уровень качества функционирования в установленных условиях за определенный период времени. Детализируется следующими подхарактеристиками (субхарактеристиками):

¦ Уровнем завершенности (отсутствия ошибок)

¦ Устойчивостью к дефектам

¦ Восстанавливаемостью

¦ Доступностью

¦ Готовностью

¦ Практичность (применимость) — Набор атрибутов, относящихся к объему работ, требуемых для исполнения и индивидуальной оценки такого исполнения определенным или предполагаемым кругом пользователей. Детализируется следующими подхарактеристиками (субхарактеристиками):

¦ Понятностью

¦ Простотой использования

¦ Изучаемостью

¦ Привлекательностью

¦ Эффективность — Набор атрибутов, относящихся к соотношению между уровнем качества функционирования ПО и объемом используемых ресурсов при установленных условиях. Детализируется следующими подхарактеристиками (субхарактеристиками):

¦ Временной эффективностью

¦ Используемостью ресурсов

¦ Сопровождаемое^ — Набор атрибутов, относящихся к объему работ, требуемых для проведения конкретных изменений (модификаций). Детализируется следующими подхарактеристиками (субхарактеристиками):

¦ Удобством для анализа;

¦ Изменяемостью

¦ Стабильностью

¦ Тестируемостью

¦ Мобильность — Набор атрибутов, относящихся к способности ПО быть перенесенным из одного окружения в другое. Детализируется следующими подхарактеристиками (субхарактеристиками):

¦ Адаптируемостью

¦ Простотой установки (инсталляции)

¦ Сосуществованием (соответствием)

¦ Замещаемостью

Более полный список атрибутов и критериев можно найти в стандарте ISO 9126 Международной организации по стандартизации. Состав и содержание документации, сопутствующей процессу тестирования, определяется стандартом IEEE 829-1998 Standard for Software Test Documentation.

Для того чтобы обеспечить надлежащее качество программным продуктам сегодня применяются некоторые виды тестирования:

1) Модульное тестирование

2) Системное тестирование

3) Регрессионное тестирование

4) Интеграционное тестирование

5) Юзабилити тестирование

6) Атестационное тестирование

7) Альфа и Бета — тестирование

8) Еще какое то

Но прежде чем рассмотреть классификацию тестирование обратимся к истории развития тестирования ПО.

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

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

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

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

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

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

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

Статьи к прочтению:

Процесс и классификация видов тестирования [GeekBrains]


Похожие статьи:

  • История развития микропроцессоров

    В 1959 г. инженеры фирмы «Texas Instruments» разработали способ, как разместить внутри одного полупроводникового кристалла несколько транзисторов и…

  • История развития информатики как дисциплины

    Лекция 1. ВВЕДЕНИЕ Понятие информатики. Составные части информатики. История развития информатики как дисциплины. Место информатики в ряду других…