Оглавление
Введение………………………………………………………………………………………………………………………. 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. ВВЕДЕНИЕ Понятие информатики. Составные части информатики. История развития информатики как дисциплины. Место информатики в ряду других…