
- •Введение
- •Классификации тестирования.
- •Черный, белый, серый ящики.
- •По объекту тестирования.
- •Тестирование производительности
- •Нагрузочное тестирование
- •Юзабилити-тестирование
- •Тестирование безопасности
- •По степени автоматизации.
- •Ручное тестирование
- •Смешанное/полуавтоматическое
- •По степени изолированности компонентов
- •Компонентное тестирование
- •Интеграционное тестирование
- •По времени проведения тестирования
- •BUGS - the Bug Genie
- •Bugzilla
- •JIRA
- •Trac
- •Выводы
- •Выводы
Ожидаемый результат: Вход в систему.
Происходит: Win 98 перезагружается.
Комментарий: Воспроизводится только при таком сочетании браузера и ОС.
Как искать такие сочетания? Очень просто – поискать в интернете статистику о пользовании браузеров и ОС.
Далее запустить компьютеры с популярными браузерами и ОС
Тестирование с разными браузерами называеися кросс-браузерным тестированием.
Тестирование с разными ОС называется кросс-платформенным тестированием.
Функуиональноетестирование
Функуиональное тестирование - это тестирование ПО в целях проверки реализуемости функциональных требований, то есть способности ПО в определённых условиях решать задачи, нужные пользователям. Функциональные требования определяют, что именно делает ПО, какие задачи оно решает.
В свою очередь функцональное тестирование бывает двух типов: тестирование нового функционала и регрессионое тестирование. Подробней о нем поговорим ниже.
По степени автоматизации.
По степени автоматизации тестирование делится на 3 вида:
Ручное тестирование
Автоматизированное тестирование
Смешанное/полуавтоматическое
Ручноетестирование
Это исполнение тест-кейсов без помощи каких либо программ, автоматизирующих работу. Например, для того чтобы создать аккаунт нового пользователя на веб-сайте, тестировщик открывает страницу регистрации, заполняет формы и.т.п.
Автоматизированноетестирование.
Автоматизированное тестирование.
Самая первая "автоматизация" появилась в эпоху операционных систем DOS и CP/M. Тогда она заключалась в отдаче приложению команд через командную строку и анализе результатов. Чуть позже добавились удаленные вызовы через API для работы по сети. Впервые об автоматизированном тестировании упоминается в книге Фредерика Брукса "Мифический человеко-месяц", где говорится о перспективах использования модульного тестирования. Но по-настоящему автоматизация тестирования стала развиваться только в 80-х годах.
Существует два основных подхода к автоматизации тестирования: тестирование на уровне кода и GUI-тестирование. К первому типу относится, в частности, модульное тестирование. Ко второму - имитация действий пользователя с помощью специальных тестовых фреймворков.
Наиболее распространенной формой автоматизации является тестирование приложений через графический пользовательский интерфейс. Популярность такого вида тестирования объясняется двумя факторами: вопервых, приложение тестируется тем же способом, которым его будет использовать человек, во-вторых, можно тестировать приложение, не имея при этом доступа к исходному коду.
GUI-автоматизация развивалась в течение 4 поколений инструментов и техник:
Утилиты записи и воспроизведения (capture/playback tools) записывают действия тестировщика во время ручного тестирования. Они позволяют выполнять тесты без прямого участия человека в течение продолжительного времени, значительно увеличивая продуктивность и устраняя «тупое» повторение однообразных действий во время ручного тестирования. В то же время, любое малое изменение тестируемого ПО требует перезаписи ручных тестов. Поэтому это первое поколение инструментов не эффективно и не масштабируемо.
Сценарии (Scripting) — форма программирования на языках, специально разработанных для автоматизации тестирования ПО — смягчает многие проблемы capture/playback tools. Но разработкой занимаются программисты высокого уровня, которые работают отдельно от тестировщиков, непосредственно запускающих тесты. К тому же скрипты более всего подходят для тестирования GUI и не могут быть внедренными, пакетными или вообще каким-либо образом объединены в систему. Наконец, изменения в тестируемом ПО требуют сложных изменений в соответствующих скриптах, и поддержка все возрастающей библиотеки тестирующих скриптов становится в конце концов непреодолимой задачей.
Data-driven testing — методология, которая используется в автоматизации тестирования. Особенностью является то, что тестовые скрипты
выполняются и верифицируются на основе данных, которые хранятся в центральном хранилище данных или БД. Роль БД могут выполнять ODBC-ресурсы, csv или xls файлы и т.д. Data-driven testing — это объединение нескольких взаимодействующих тестовых скриптов и их источников данных в фреймворк, используемый в методологии. В этом фреймворке переменные используются как для входных значений, так и для выходных проверочных значений: в тестовом скрипте обычно закодированы навигация по приложению, чтение источников данных, ведение логов тестирования. Таким образом, логика, которая будет выполнена в скрипте, также зависит от данных.
Keyword-based автоматизация подразумевает разделение процесса создания кейсов на 2 этапа: этап планирования и этап реализации.
Одной из главных проблем автоматизированного тестирования является его трудоемкость: несмотря на то, что оно позволяет устранить часть рутинных операций и ускорить выполнение тестов, большие ресурсы могут тратиться на обновление самих тестов. Это относится к обоим видам автоматизации. При рефакторинге часто бывает необходимо обновить и модульные тесты, и изменение кода тестов может занять столько же времени, сколько и изменение основного кода. С другой стороны, при изменении интерфейса приложения необходимо заново переписать все тесты, которые связаны с обновленными окнами, что при большом количестве тестов может отнять значительные ресурсы.
Для автоматизации тестирования существует большое количество приложений. Наиболее популярные из них:
HP LoadRunner, HP QuickTest Professional, HP Quality Center
Segue SilkPerformer
IBM Rational FunctionalTester, IBM Rational PerformanceTester, IBM Ration al TestStudio
SmartBear Software TestComplete
Использование этих инструментов помогает тестировщикам автоматизировать следующие задачи:
установка продукта
создание тестовых данных
GUI взаимодействие
определение проблемы
Однако автоматические тесты не могут полностью заменить ручное тестирование. Автоматизация всех испытаний — очень дорогой процесс, и потому автоматическое тестирование является лишь дополнением ручного тестирования. Наилучший вариант использования автоматических тестов — регрессионное тестирование.