Качество программного продукта характеризуется набором свойств, определяющих, насколько продукт "хорош" с точки зрения заинтересованных сторон, таких как


) Функциональное и регрессионное тестирование (functional and regression testing)



бет2/3
Дата14.11.2022
өлшемі115 Kb.
#49938
түріЛабораторная работа
1   2   3
Описание типов тестирования

1) Функциональное и регрессионное тестирование (functional and regression testing)


Функциональное тестирование – это тестирование функций приложения на соответствие требованиям. Оценка производится в соответствии с ожидаемыми и полученными результатами (на основании функциональной спецификации), при условии, что функции отрабатывали на различных значениях.
Регрессионное тестирование проводится с целью проверить, не влияют ли новые функции, улучшения и исправленные дефекты на существующую функциональность продукта.
Функциональное и регрессионное тестирование проводится на протяжении всего жизненного цикла приложения и может иметь различную степень покрытия.

2) Тестирование графического интерфейса пользователя (GUI testing)


Тестирование графического интерфейса пользователя предполагает проверку соответствия приложения требованиям к графическому интерфейсу, профессионально ли оно выглядит, выполнено ли оно в едином стиле.
В большинстве случаев, функциональное тестирование приложения осуществляется вместе со следующими видами тестирования графического интерфейса пользователя:

  • Тестирование на соответствие стандартам графических интерфейсов;

  • Тестирование с различными разрешениями экрана;

  • Тестирование в ограниченных условиях, например, в условиях нехватки памяти;

  • Совместимость с различными Интернет-браузерами;

  • Тестирование локализованных версий: точность перевода, проверка длины названий элементов интерфейса и т.д.;

  • Тестирование графического интерфейса пользователя на целевых устройствах (для КПК-совместимых приложений).

3) Тестирование безопасности (security testing)


Тестирование безопасности представляет собой ряд услуг, от разработки политики безопасности до тестирования безопасности на уровне приложения, операционной системы и сетевой безопасности.
Тестирование безопасности может иметь различную степень покрытия:

  • Первичное тестирование безопасности;

  • Полное тестирование приложения;

  • Полное тестирование приложения и сервера.

В зависимости от степени покрытия тестирование безопасности может включать в себя следующие аспекты:

  • Тестирование контроля доступа — помогает обнаружить дефекты, в результате которых пользователи могут получать несанкционированный доступ к объектам и функциям приложения.

  • Тестирование авторизации пользователей — выявляет дефекты, связанные с авторизацией отдельных пользователей и групп пользователей и с проверкой их подлинности.

  • Тестирование валидации ввода — используется для проверки валидации данных сервером до того, как они попадают в приложение.

  • Тестирование надежности шифрования данных — используется для выявления дефектов, связанных с шифрованием и расшифровкой данных, использованием цифровых подписей и проверкой их подлинности.

  • Тестирование правильности обработки ошибок — включает в себя проверку таких аспектов, как вывод на экран фрагментов кода при ошибке, влияние ошибок на работу всего приложения и раскрытие излишней информации о сбое в работе.

  • Тестирование на переполнение буфера — выявляет ненадлежащее раскрытие данных.

  • Тестирование конфигурации сервера — помогает обнаружить ошибки в многопоточных средах, в результате которых данные могут быть повреждены или использованы совместно (например, переменные, совместно используемые разными потоками и приводящие к дефектам типа «time-of-check-time-of-use», некорректные шаблоны проектирования «Одиночка» (Singleton) и плохое построение кэша).

  • Для интернет-приложений при тестировании безопасности используются такие инструменты, как SQL-, html-, script-injection, перехват POST и редактирование GET данных.

4) Тестирование удобства пользования (usability testing)


Тестирование удобства пользования приложением определяет, соответствует ли приложение потребностям целевой аудитории и отвечает ли оно требованиям пользователя.
Мы тестируем приложение на соответствие основным принципам удобства пользования (например, время, затраченное на достижение цели, полученный результат, легкость доступа к нужной информации и т.д.).
При тестировании удобства пользования приложением во внимание принимаются следующие его аспекты:

  • Однородность;

  • Логика и структура;

  • Навигация.

5) Тестирование баз данных (database testing)
Тестирование базы данных помогает обнаружить узкие места в производительности разрабатываемого приложения и проверить все механизмы, обеспечивающие целостность и конфиденциальность данных.
Тестирование базы данных разделяется на следующее типы:
А) Тестирование логической модели

  • - Проверка модели на логическую согласованность и отсутствие повторяющейся информации;

  • - Поиск возможностей для упрощения логической модели.

Б) Тестирование логической схемы базы данных
- Тестирование на соответствие нормальным формам (обычно третьей);
- Тестирование на согласованность базы данных (внешние ключи, ограничивающие условия, триггеры);
- Тестирование на избыточность данных.
В) Тестирование физической структуры базы данных
- Анализ и настройка покрытия индекса;
- Анализ системы хранения данных (группы файлов (MS SQL), настройка для увеличения производительности и надежности;
- Анализ политики безопасности и разработка предложений по ее улучшению (пользователи, роли, роли приложения, логины, интегрированные с операционной системой, хранимые процедуры);
- Анализ денормализации (при необходимости может быть проведена проверка потенциального прироста производительности и модификаций схемы базы данных);
Анализ и реализация распределения базы данных;
- Анализ и реализация стратегии репликации;
- Анализ и реализация стратегии резервного копирования.
Г) Тестирование программируемости базы данных
- Анализ эффективности хранимых процедур и триггеров;
- Оптимизация запросов, настройка индекса для охвата определенных запросов;
- Анализ эффективности клиентского приложения.

6) Техническое тестирование (technical testing)


Техническое тестирование показывает способность приложения работать безопасно, эффективно и надежно в нормальных и пиковых условиях использования. Это тестирование больше затрагивает внутреннюю работу решения и требования, которые предъявляет к нему пользователь, чем соответствие функциональным требованиям.
Самыми распространенными типами таких тестов являются:

  • Тесты производительности (performance tests), которые заключаются в измерении характеристик различных бизнес-процессов и транзакций, критичных по времени, в условиях низкой нагрузки, но с реальным размером базы данных;

  • Нагрузочные тесты (load tests), которые представляют собой полные тесты производительности в условиях ожидаемой реальной нагрузки и служат для измерения характеристик различных бизнес-процессов и транзакций, критичных по времени;

  • Стресс-тесты (stress tests), которые помогают определить нагрузку, при которой происходит сбой в системе, и отследить, как это происходит;

  • Ресурсные тесты, которые подвергают систему повышенным нагрузкам в течение длительного времени.

Для разработки и проведения технических тестов используются различные инструменты. Их выбор зависит от архитектуры и среды разработки приложения, покрытия и содержания тестов.

7) Тестирование процедур установки и механизмов лицензирования (installation and licensing testing)


Тестирование процедуры установки продукта разделяется на несколько частей:
1) Формальное тестирование программы установки (графический интерфейс пользователя, общее удобство пользования, соответствие стандартам);

  • Формальное тестирование графического интерфейса пользователя;

  • Тестирование навигации;

  • Тестирование удобства пользования приложением;

  • Тестирование региональных и языковых настроек;

  • Выявление любых ошибочных ситуаций;

  • Проверка доступности контактной информации.

2) Функциональное тестирование программы установки;
А) Тестирование различных опций установки:

  • Типы установки (типичная, компактная, пользовательская, пр.);

  • Установка с CD-ROM;

  • Установка патчей и специальных функций;

  • Тестирование разных режимов (исправить, изменить, удалить).

Б) Проверка правильности возврата к началу программы при отмене установки или деинсталляции:

  • Объекты файловой системы;

  • Ключи регистрации и значения ключей;

  • Регистрация компонентов COM и .NET;

  • Файлы инициализации, ODBC DSN, общие папки и т.д.

В) Общая функциональность:

  • Проверка прав локального администратора;

  • Правильная обработка исключительных ситуаций (недостаток места на диске, памяти, прав пользователей);

  • Приемлемый уровень производительности и использования ресурсов.

3) Тестирование механизма лицензирования и способности противостоять взлому;

  • А) Тестирование на уровне пользователя:

  • Функциональное тестирование механизма лицензирования;

  • Атаки на уровне пользователя.

  • Б) Тестирование на повышенном уровне:

  • Разбор форматов файлов лицензии и мест в реестре или файлах, где хранится важная информация о лицензировании;

  • Разборка, исправление или повторная сборка бинарных модулей;

  • Запуск приложения в режиме отладки;

  • Создание генераторов ключей, эмуляторов устройств и т.д.;

  • Подсчет объема работы на предыдущих этапах и принятие решения о надежности системы защиты;

  • Разработка рекомендаций по улучшению механизма лицензирования и системы защиты.

4) Проверка стабильности работы приложения после установки.
После установки приложения проверяются:

  • правильность структуры папок,

  • корректность работы с различными вариантами окружения,

  • стабильность работы самого приложения.

8) Тестирование документации (documentation testing)


Тестирование документации осуществляется на этапе разработки требований к программному продукту после создания функциональных спецификаций. Этот тип тестирования помогает избежать логических дефектов и ненужных изменений в продукте до начала его фактической разработки. Он также позволяет сократить число обращений в службу поддержки благодаря улучшению пользовательской документации.
Тестирование документации охватывает следующие виды документов:

  • Функциональные спецификации;

  • Спецификации по графическому интерфейсу пользователя;

  • Руководства пользователя и онлайновые справочные системы.

В ходе тестирования документации проверяются следующие аспекты:

  • Логику и согласованность (последовательность изложения и однородность формы подачи информации);

  • Полноту и ясность изложения (соответствие уровня детализации целевой аудитории, достаточность изложенной информации для понимания);

  • Точность (актуальность информации, правильность ссылок и графических элементов);

  • Структуру документа (соответствие порядка следования элементов документа его цели);

  • Орфографию, грамматику, правильность употребления слов и пунктуацию;

  • Форматирование (отсутствие отклонений от стиля оформления, соответствие элементов документа корпоративному стилю).


Достарыңызбен бөлісу:
1   2   3




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет