- •Введение
- •Классификации тестирования.
- •Черный, белый, серый ящики.
- •По объекту тестирования.
- •Тестирование производительности
- •Нагрузочное тестирование
- •Юзабилити-тестирование
- •Тестирование безопасности
- •По степени автоматизации.
- •Ручное тестирование
- •Смешанное/полуавтоматическое
- •По степени изолированности компонентов
- •Компонентное тестирование
- •Интеграционное тестирование
- •По времени проведения тестирования
- •BUGS - the Bug Genie
- •Bugzilla
- •JIRA
- •Trac
- •Выводы
- •Выводы
МосковскийЭнергетическийИнститут
СангаджиевЮрий Олегович
11.12.2011
Оглавление |
|
Введение...................................................................................................................................................... |
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 направляет развитие информационных технологий в соответствии с целями бизнеса. Основной подход заключается в оценке и максимизации значимости всех этапов жизненного цикла разработки ПО для достижения необходимого уровня качества, производительности, доступности.