Описание типов тестирования
- Функциональное и регрессионное тестирование (functional and regression testing)
- Тестирование прототипа (prototype testing)
- Тестирование графического интерфейса пользователя (GUI testing)
- Тестирование безопасности (security testing)
- Тестирование доступности (accessibility testing)
- Тестирование удобства пользования (usability testing)
- Тестирование совместимости с различными Интернет-браузерами (cross browser testing)
- Тестирование баз данных (database testing)
- Техническое тестирование (technical testing)
- Тестирование процедур установки и механизмов лицензирования (installation and licensing testing)
- Тестирование VoIP-приложений (VoIP testing)
- Тестирование приложений для мобильных устройств (mobile applications testing)
- Тестирование документации (documentation testing)
Функциональное и регрессионное тестирование (functional and regression testing)
Функциональное тестирование – это тестирование функций приложения на соответствие требованиям. Оценка производится в соответствии с ожидаемыми и полученными результатами (на основании функциональной спецификации), при условии, что функции отрабатывали на различных значениях.
Регрессионное тестирование проводится с целью проверить, не влияют ли новые функции, улучшения и исправленные дефекты на существующую функциональность продукта.
Функциональное и регрессионное тестирование проводится на протяжении всего жизненного цикла приложения и может иметь различную степень покрытия.
Тестирование прототипа (prototype testing)
Тестирование прототипа – метод выявления структурных, логических ошибок и ошибок проектирования на ранней стадии развития продукта до начала фактической разработки.
Основная цель тестирования прототипа – выявить потенциальные проблемы в приложении, проверить, насколько приложение соответствует потребностям и ожиданиям пользователя и обнаружить расхождения с требованиями к графическому интерфейсу пользователя.
Тестирование прототипа охватывает следующие аспекты:
- Структура приложения;
- Формы;
- Прототип бизнес-логики;
- Логические связи между модулями;
- Навигация;
- Графический интерфейс пользователя.
Тестирование графического интерфейса пользователя (GUI testing)
Тестирование графического интерфейса пользователя предполагает проверку соответствия приложения требованиям к графическому интерфейсу, профессионально ли оно выглядит, выполнено ли оно в едином стиле.
В большинстве случаев, функциональное тестирование приложения осуществляется вместе со следующими видами тестирования графического интерфейса пользователя:
- Тестирование на соответствие стандартам графических интерфейсов;
- Тестирование с различными разрешениями экрана;
- Тестирование в ограниченных условиях, например, в условиях нехватки памяти;
- Совместимость с различными Интернет-браузерами;
- Тестирование локализованных версий: точность перевода, проверка длины названий элементов интерфейса и т.д.;
- Тестирование графического интерфейса пользователя на целевых устройствах (для КПК-совместимых приложений).
Тестирование безопасности (security testing)
Тестирование безопасности представляет собой ряд услуг, от разработки политики безопасности до тестирования безопасности на уровне приложения, операционной системы и сетевой безопасности.
Тестирование безопасности может иметь различную степень покрытия:
- Первичное тестирование безопасности;
- Полное тестирование приложения;
- Полное тестирование приложения и сервера.
В зависимости от степени покрытия тестирование безопасности может включать в себя следующие аспекты:
- Тестирование контроля доступа — помогает обнаружить дефекты, в результате которых пользователи могут получать несанкционированный доступ к объектам и функциям приложения.
- Тестирование авторизации пользователей — выявляет дефекты, связанные с авторизацией отдельных пользователей и групп пользователей и с проверкой их подлинности.
- Тестирование валидации ввода — используется для проверки валидации данных сервером до того, как они попадают в приложение.
- Тестирование надежности шифрования данных — используется для выявления дефектов, связанных с шифрованием и расшифровкой данных, использованием цифровых подписей и проверкой их подлинности.
- Тестирование правильности обработки ошибок — включает в себя проверку таких аспектов, как вывод на экран фрагментов кода при ошибке, влияние ошибок на работу всего приложения и раскрытие излишней информации о сбое в работе.
- Тестирование на переполнение буфера — выявляет ненадлежащее раскрытие данных.
- Тестирование конфигурации сервера — помогает обнаружить ошибки в многопоточных средах, в результате которых данные могут быть повреждены или использованы совместно (например, переменные, совместно используемые разными потоками и приводящие к дефектам типа «time-of-check-time-of-use», некорректные шаблоны проектирования «Одиночка» (Singleton) и плохое построение кэша).
Для интернет-приложений при тестировании безопасности используются такие инструменты, как SQL-, html-, script-injection, перехват POST и редактирование GET данных.
Тестирование доступности (accessibility testing)
Практически все современные приложения, рассчитанные на широкую целевую аудиторию, должны быть доступны для использования людьми с ограниченными возможностями.
Тестирование доступности позволяет определить уровень соответствия приложения accessibility-стандартам. Компания проводит тестирование на соответствие следующим стандартам:
ВверхТестирование удобства пользования (usability testing)
Тестирование удобства пользования приложением определяет, соответствует ли приложение потребностям целевой аудитории и отвечает ли оно требованиям пользователя.
Мы тестируем приложение на соответствие основным принципам удобства пользования (например, время, затраченное на достижение цели, полученный результат, легкость доступа к нужной информации и т.д.).
При тестировании удобства пользования приложением во внимание принимаются следующие его аспекты:
Чтобы охватить все аспекты удобства пользования приложением, наряду со специалистами по обеспечению качества в этом виде тестирования принимают участие специалисты по маркетингу и психологи.
Тестирование совместимости с различными Интернет-браузерами (cross browser testing)
Основной целью тестирования совместимости с различными браузерами является обеспечение качественной работы конечного продукта не только с Internet Explorer, но и с другими Интернет-браузерами, доля которых растет год от года.
Список поддерживаемых браузеров можно найти на странице Инструментарий тестирования. Для разных версий перечисленных браузеров предоставляются следующие виды поддержки:
- Без поддержки;
- Поддержка работы основных гиперссылок;
- Максимально возможная поддержка;
- Полная поддержка.
Тестирование баз данных (database testing)
Тестирование базы данных помогает обнаружить узкие места в производительности разрабатываемого приложения и проверить все механизмы, обеспечивающие целостность и конфиденциальность данных.
Тестирование базы данных разделяется на следующие типы:
- Тестирование логической модели:
- Проверка модели на логическую согласованность и отсутствие повторяющейся информации;
- Поиск возможностей для упрощения логической модели. - Тестирование логической схемы базы данных:
- Тестирование на соответствие нормальным формам (обычно третьей);
- Тестирование на согласованность базы данных (внешние ключи, ограничивающие условия, триггеры);
- Тестирование на избыточность данных. - Тестирование физической структуры базы данных (для различных РСУБД):
- Анализ и настройка покрытия индекса;
- Анализ системы хранения данных (табличные области (Oracle, DB2), массивы данных и группы файлов (MS SQL)), настройка для увеличения производительности и надежности;
- Анализ политики безопасности и разработка предложений по ее улучшению (пользователи, роли, роли приложения, логины, интегрированные с операционной системой, хранимые процедуры);
- Анализ денормализации (при необходимости может быть проведена проверка потенциального прироста производительности и модификаций схемы базы данных);
- Анализ и реализация распределения базы данных;
- Анализ и реализация стратегии репликации;
- Анализ и реализация стратегии резервного копирования. - Тестирование программируемости базы данных:
- Анализ эффективности хранимых процедур и триггеров;
- Оптимизация запросов, настройка индекса для охвата определенных запросов;
- Анализ эффективности клиентского приложения.
Техническое тестирование (technical testing)
Техническое тестирование показывает способность приложения работать безопасно, эффективно и надежно в нормальных и пиковых условиях использования. Это тестирование больше затрагивает внутреннюю работу решения и требования, которые предъявляет к нему пользователь, чем соответствие функциональным требованиям.
Самыми распространенными типами таких тестов являются:
- Тесты производительности (performance tests), которые заключаются в измерении характеристик различных бизнес-процессов и транзакций, критичных по времени, в условиях низкой нагрузки, но с реальным размером базы данных;
- Нагрузочные тесты (load tests), которые представляют собой полные тесты производительности в условиях ожидаемой реальной нагрузки и служат для измерения характеристик различных бизнес-процессов и транзакций, критичных по времени;
- Стресс-тесты (stress tests), которые помогают определить нагрузку, при которой происходит сбой в системе, и отследить, как это происходит;
- Ресурсные тесты, которые подвергают систему повышенным нагрузкам в течение длительного времени.
Для разработки и проведения технических тестов используются различные инструменты. Их выбор зависит от архитектуры и среды разработки приложения, покрытия и содержания тестов.
Тестирование процедур установки и механизмов лицензирования (installation and licensing testing)
Тестирование процедуры установки продукта разделяется на несколько частей:
- Формальное тестирование программы установки (графический интерфейс пользователя, общее удобство пользования, соответствие стандартам);
- Функциональное тестирование программы установки;
- Тестирование механизма лицензирования и способности противостоять взлому;
- Проверка стабильности работы приложения после установки.
Формальное тестирование программы установки
- Формальное тестирование графического интерфейса пользователя;
- Тестирование навигации;
- Тестирование удобства пользования приложением;
- Тестирование региональных и языковых настроек;
- Выявление любых ошибочных ситуаций;
- Проверка доступности контактной информации.
Функциональное тестирование программы установки
- Тестирование различных опций установки:
- Типы установки (типичная, компактная, пользовательская, пр.);
- Установка с CD-ROM;
- Установка патчей и специальных функций;
- Тестирование разных режимов (исправить, изменить, удалить). - Проверка правильности возврата к началу программы при отмене установки или деинсталляции:
- Объекты файловой системы;
- Ключи регистрации и значения ключей;
- Регистрация компонентов COM и .NET;
- Файлы инициализации, ODBC DSN, общие папки и т.д. - Общая функциональность:
- Проверка прав локального администратора;
- Правильная обработка исключительных ситуаций (недостаток места на диске, памяти, прав пользователей);
- Приемлемый уровень производительности и использования ресурсов.
Тестирование механизма лицензирования и функций защиты от пиратства
- Тестирование на уровне пользователя:
- Функциональное тестирование механизма лицензирования;
- Атаки на уровне пользователя. - Тестирование на повышенном уровне:
- Разбор форматов файлов лицензии и мест в реестре или файлах, где хранится важная информация о лицензировании;
- Разборка, исправление или повторная сборка бинарных модулей;
- Запуск приложения в режиме отладки;
- Создание генераторов ключей, эмуляторов устройств и т.д.;
- Подсчет объема работы на предыдущих этапах и принятие решения о надежности системы защиты;
- Разработка рекомендаций по улучшению механизма лицензирования и системы защиты.
Проверка стабильности работы приложения после установки
После установки приложения проверяются:
- правильность структуры папок,
- корректность работы с различными вариантами окружения,
- стабильность работы самого приложения.
Тестирование VoIP-приложений (VoIP testing)
VoIP тестирование может быть представлено на различных уровнях, начиная с функционального и заканчивая контролем трафика:
- Проверка функций офисной АТС (PBX);
- Контроль пропускной способности потока вызовов;
- Ручное и автоматизированное нагрузочное тестирование;
- Тестирование доступа и качества вызовов;
- Тестирование удалённых VoIP-систем
Оборудование, необходимое для тестирования, зависит от требований проекта. Тестирование может осуществляться в реальных условиях с использованием следующего оборудования:
- Телефоны стандартов ISDN, PSTN и GSM;
- Телефоны для сетей Wi-Fi и Ethernet;
- Программные телефоны H.323/SIP;
- Различные кодеки и протоколы.
Тестирование приложений для мобильных устройств (mobile applications testing)
Тестирование приложения для мобильных телефонов, смартфонов и КПК включает в себя автоматизированное и ручное тестирование на ряде эмуляторов и ручное тестирование на реальных устройствах.
Автоматизированное тестирование включает в себя следующие типы:
- Стресс-тестирование;
- Тестирование производительности (для эмуляции вызовов, входящих сообщений, разрядки батареи, сбоев сети и т.д.);
- Функциональное тестирование.
Ручное тестирование включает в себя следующие типы:
- Функциональное тестирование;
- Тестирование удобства пользования;
- Тестирование графического интерфейса пользователя.
| Технология | Эмуляторы | Реальные устройства |
|---|---|---|
| Мобильные телефоны | ||
| J2ME | Sun Java Wireless Toolkit с эмуляторами отдельных моделей, поставляемых производителями | Популярные модели мобильных телефонов с поддержкой Java (технология J2ME) — Nokia, Sony Ericsson, Siemens и др. |
| Brew | BREW Emulator (BREW SDK 2.0.1) | |
| Смартфоны | ||
| Symbian OS Emulator | Symbian OS 6,7,8 | |
| Symbian OS Emulator | Symbian OS 6,7,8 | |
| PDA | ||
Вверх
Тестирование документации (documentation testing)
Тестирование документации осуществляется на этапе разработки требований к программному продукту после создания функциональных спецификаций. Этот тип тестирования помогает избежать логических дефектов и ненужных изменений в продукте до начала его фактической разработки. Он также позволяет сократить число обращений в службу поддержки благодаря улучшению пользовательской документации.
Тестирование документации охватывает следующие виды документов:
- Функциональные спецификации;
- Спецификации по графическому интерфейсу пользователя;
- Руководства пользователя и онлайновые справочные системы.
В ходе тестирования документации мы проверяем следующие аспекты:
- Логику и согласованность (последовательность изложения и однородность формы подачи информации);
- Полноту и ясность изложения (соответствие уровня детализации целевой аудитории, достаточность изложенной информации для понимания);
- Точность (актуальность информации, правильность ссылок и графических элементов);
- Структуру документа (соответствие порядка следования элементов документа его цели);
- Орфографию, грамматику, правильность употребления слов и пунктуацию;
- Форматирование (отсутствие отклонений от стиля оформления, соответствие элементов документа корпоративному стилю).


