Функциональное тестирование — тестирование сайтов и программного обеспечения в целях проверки реализуемости функциональных требований, то есть способности сайтов и программного обеспечения в определённых условиях решать задачи, требуемые пользователям. Функциональные требования определяют, что именно делает программное обеспечения и какие задачи решает.
Функциональное тестирование — процесс проверки соответствия поведения системы первоначально заявленным функциональным требованиям.
Функциональные требования включают в себя:
1. Функциональная пригодность (англ. suitability).
2. Точность (англ. accuracy).
3. Способность к взаимодействию (англ. interoperability).
4. Соответствие стандартам и правилам (англ. compliance).
5. Защищённость (англ. security).
Юзабилити тестирование — исследование, выполняемое с целью определения, удобен ли некоторый объект (веб-страница, пользовательский интерфейс или устройство) для его предполагаемого применения. Таким образом, Юзабилити тестирование измеряет удобство пользования сайта или програмного обеспечения.
Проверка эргономичности — метод оценки удобства продукта в использовании, основанный на привлечении пользователей в качестве тестировщиков, испытателей и суммировании полученных от них выводов.
Тестирование безопасности — оценка уязвимости сайта или программного обеспечения к различным видам атак.
Тестирование безопасности проверяет фактическую реакцию защитных механизмов, встроенных в систему, на проникновение.
Основные цели тестирования безопасности:
1. Обеспечение безопасности онлайн-транзакций.
2. Защита конфиденциальной информации от несанкционированного доступа.
3. Минимизация риска утраты, искажения или хищения данных.
4. Увеличение сопротивления DoS/DDoS-атакам.
Базовый список работ в рамках тестирования безопасности:
1. Общая оценка безопасности.
2. Выявление, анализ и оценку уязвимостей.
3. Тест на проникновение в систему (получение полного/частичного доступа к системе).
При неограниченном времени и ресурсах хорошее тестирование безопасности взломает любую систему.
Задача проектировщика системы — сделать цену проникновения выше, чем цена получаемой в результате информации.
Нагрузочное тестирование — определение или сбор показателей производительности и времени отклика сайта и программного обеспечения в ответ на внешние запросы с целью установления соответствия требованиям, предъявляемым к данной системе.
Для исследования времени отклика системы на высоких или пиковых нагрузках производится стресс-тестирование, при котором создаваемая на систему нагрузка превышает нормальные сценарии её использования. Не существует чёткой границы между нагрузочным и стресс-тестированием, однако эти понятия не стоит смешивать, так как эти виды тестирования отвечают на разные бизнес-вопросы и используют различную методологию.
Термин нагрузочное тестирование может быть использован в различных значениях в профессиональной среде тестирования сайта или программного обеспечения. В общем случае он означает практику моделирования ожидаемого использования приложения с помощью эмуляции работы нескольких пользователей одновременно. Таким образом, подобное тестирование больше всего подходит для многопользовательских систем, чаще — использующих клиент-серверную архитектуру (например, веб-серверов). Наиболее адекватно спроектированный нагрузочный тест даёт более точные результаты.
Основная цель нагрузочного тестирования заключается в том, чтобы, создав определённую ожидаемую в системе нагрузку (например, посредством виртуальных пользователей) и, обычно, использовав идентичное программное и аппаратное обеспечение, наблюдать за показателями производительности сайта или программного обеспечения.
Тестирование документации — проверка проектной документации на целостность и актуальность в рамках текущей версии сайта или программного обеспечения.
Основные аспекты тестирования документации:
1. Верность и полнота информации.
2. Наличие дублирующейся информации.
3. Удобство навигации.
4. Соблюдение политик документации.
5. Структурированность.
6. Расшифровка терминов.
7. Единообразие и непротиворечивость.
8. Копирование текста.
9. Понятность для целевой аудитории.
10. Правильность языка.
11. Разделение ролей.
Анализ кода — анализ сайта или программного обеспечения, производимый без реального выполнения исследуемых программ. В большинстве случаев анализ производится над какой-либо версией исходного кода, хотя иногда анализу подвергается какой-нибудь вид объектного кода. Термин обычно применяют к анализу как производимому специальным программным обеспечением так и ручным анализом.
В зависимости от используемого инструмента глубина анализа может варьироваться от определения поведения отдельных операторов до анализа, включающего весь имеющийся исходный код. Способы использования полученной в ходе анализа информации также различны — от выявления мест, возможно содержащих ошибки, до формальных методов, позволяющих математически доказать какие-либо свойства программы (например, соответствие поведения спецификации).
В последнее время анализ кода всё больше используется в верификации свойств программного обеспечения, используемого в компьютерных системах высокой надёжности, особенно критичных для жизни. Также применяется для поиска кода, потенциально содержащего уязвимости.
Тестирование локализации — это процесс тестирования локализованной версии сайта или программного обеспечения.
Локализация программного обеспечения — процесс адаптации к культурным особенностям той или иной страны: перевод документации, элементов пользовательского интерфейса, вспомогательных материалов с одного языка на другой.
Процесс локализации тестирования включает в себя:
1. Определение и изучение списка поддерживаемых языков.
2. Проверка правильности перевода согласно тематике данного сайта или программы.
3. Проверка правильности перевода элементов интерфейса пользователя.
4. Проверка правильности перевода системных сообщений и ошибок.
5. Проверка перевода раздела «Помощь» и сопроводительной документации.
Тест-кейс — набор условий и/или переменных, с помощью которых тестировщик будет определять насколько полно тестируемый сайт или программное обеспечение удовлетворяют предъявляемому к ним требованию.
Для того, чтобы убедиться, что требование полностью удовлетворяется, может понадобиться несколько тест-кейсов. Для полного тестирования всех требований, предъявляемых к сайту или программному обеспечению, должен быть создан/выполнен по меньшей мере один тест-кейс в рамках каждого требования.
Некоторые методологии (например, RUP) рекомендуют создавать по меньшей мере два тест-кейса для каждого требования. Один из них должен выполнять позитивное тестирование, другой — негативное.