Полный пакет тестирования
A1QA обеспечивает полное тестовое покрытие разрабатываемого программного обеспечения. Опытные аналитики в сфере обеспечения качества ПО разработают общую стратегию, индивидуальный план тестирования и критерии квалификации дефектов. Команда A1QA тесно взаимодействует с заказчиком на всех этапах производства работ, предоставляет удобные инструменты мониторинга выявленных проблем и контроля их устранения и полную отчетность по собственной активности.
Нагрузочное тестирование и управление производительностью
Компания A1QA оказывает услуги по комплексному нагрузочному тестированию программного обеспечения. Такое тестирование позволяет оценить уровень производительности, отказоустойчивости и быстродействию ПО при плановых, повышенных и пиковых нагрузках.
Автоматизация тестирования
A1QA помогает решить главные задачи автоматизции тестирования: снизить затраты на обеспечение качества программного обеспечения путем сокращения непроизводительных ручных операций (в особенности, затрат на регрессионное тестирование) и сократить время итераций разработки ПО.
Функциональное и регрессионное тестирование (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-стандартам. Компания проводит тестирование на соответствие следующим стандартам:
- раздел 508 Закона США о реабилитации;
- UK & EU Accessibility Standard.
Наверх
Тестирование удобства пользования (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, общие папки и т.д.
- Общая функциональность:
- Проверка прав локального администратора;
- Правильная обработка исключительных ситуаций (недостаток места на диске, памяти, прав пользователей);
- Приемлемый уровень производительности и использования ресурсов.
Тестирование механизма лицензирования и функций защиты от пиратства
- Тестирование на уровне пользователя:
- Функциональное тестирование механизма лицензирования;
- Атаки на уровне пользователя.
- Тестирование на повышенном уровне:
- Разбор форматов файлов лицензии и мест в реестре или файлах, где хранится важная информация о лицензировании;
- Разборка, исправление или повторная сборка бинарных модулей;
- Запуск приложения в режиме отладки;
- Создание генераторов ключей, эмуляторов устройств и т.д.;
- Подсчет объема работы на предыдущих этапах и принятие решения о надежности системы защиты;
- Разработка рекомендаций по улучшению механизма лицензирования и системы защиты.
Проверка стабильности работы приложения после установки
После установки приложения проверяются:
- правильность структуры папок;
- корректность работы с различными вариантами окружения;
- стабильность работы самого приложения.
Наверх
Тестирование документации (documentation testing)
Тестирование документации осуществляется на этапе разработки требований к программному продукту после создания функциональных спецификаций. Этот тип тестирования помогает избежать логических дефектов и ненужных изменений в продукте до начала его фактической разработки. Он также позволяет сократить число обращений в службу поддержки благодаря улучшению пользовательской документации.
Тестирование документации охватывает следующие виды документов:
- Функциональные спецификации;
- Спецификации по графическому интерфейсу пользователя;
- Руководства пользователя и онлайновые справочные системы.
В ходе тестирования документации мы проверяем следующие аспекты:
- Логику и согласованность (последовательность изложения и однородность формы подачи информации);
- Полноту и ясность изложения (соответствие уровня детализации целевой аудитории, достаточность изложенной информации для понимания);
- Точность (актуальность информации, правильность ссылок и графических элементов);
- Структуру документа (соответствие порядка следования элементов документа его цели);
- Орфографию, грамматику, правильность употребления слов и пунктуацию;
- Форматирование (отсутствие отклонений от стиля оформления, соответствие элементов документа корпоративному стилю).
Наверх