Тестирование информационных систем

Тестирование — неотъемлемая часть жизненного цикла любого программного продукта. В финансовых организациях, бизнес которых существенно зависит от возможностей IT-инфраструктуры, тестирование является важным подготовительным этапом к внедрению новых информационных систем. При необходимости выполнить работы по тестированию у руководителей возникает вопрос: выполнять тестирование самостоятельно или поручить эту задачу внешней компании? Организации, которые выбирают второй вариант, получают ряд преимуществ, трудно достижимых в случае тестирования собственными силами.

Краткое описание услуг

Компания «Неофлекс» оказывает услуги по тестированию программного обеспечения. Независимое подразделение компании ориентировано на предоставление высококачественных услуг организациям, которые желают:

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

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

Виды тестирования

Компания «Неофлекс» предлагает следующие виды тестирования программного обеспечения.

Функциональное тестирование

  • Компонентное: проверка функциональности на уровне отдельных компонент информационной системы.
  • Интеграционное: проверка функциональности при интеграции нескольких компонент.
  • Системное: проверка функциональности всей системы.
  • Приемочное: подтверждение функциональности системы на основе контрольных примеров.
  • Регрессионное: проверка ранее работавшей функциональности в случае внесения изменений.
  • Автоматизация регрессионного тестирования: разработка автоматизированных скриптов, выполняющих тестовые операции по проверке фактического результата через пользовательский или программный интерфейс
  • Совместимости: проверка функциональности при использовании разных версий предположительно совместимого программного обеспечения.
  • Исследовательское: быстрое выявление наиболее критичных дефектов функциональности без длительной подготовки и обеспечения тестового покрытия.

Нефункциональное тестирование

  • Производительности: исследование характеристик производительности системы для заданного уровня пользовательской нагрузки, объема данных и программно-аппаратной конфигурации.
  • Нагрузочное: исследование характеристик производительности системы для разных уровней пользовательской нагрузки.
  • Объемов: исследование характеристик производительности системы на разных объемах данных.
  • Конфигурационное: исследование характеристик производительности системы на разных программно-аппаратных конфигурациях.
  • Анализ и оптимизация производительности: выявление узких мест производительности системы и формирование предложений по их устранению.
  • Надежности: исследование отказов системы при относительно длительной эксплуатации в условиях номинальной или пиковой нагрузки.
  • Стрессовое: исследование поведения системы в условиях недостатка аппаратных или программных ресурсов.
  • Отказоустойчивости: исследование возможностей восстановления нормальной работы системы после аппаратных и программных сбоев.
  • Инсталляционное: проверка комплектности дистрибутивов и их корректной установки в соответствии с поставляемой инструкцией.
  • Документации: проверка соответствия документации заданным критериям качества.

Функциональное тестирование

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

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

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

Для достижения максимального эффекта применяются разные способы построения тестов:

  • пошаговое описание тестов
  • чек-листы
  • моделирование тестируемой системы
  • сравнение системы с предыдущей версией
  • автоматизированные GUI-тесты
  • модульные (unit) тесты
  • тесты, управляемые данными
  • автоматическая генерация тестовых сценариев.

Результаты тестирования оформляются в отчете о тестировании, который содержит:

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

Высокое качество функционального тестирования обеспечивают:

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

Нефункциональное тестирование

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

Почему важно исследовать характеристики производительности, надежности и отказоустойчивости систем?

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

Специалисты компании «Неофлекс» производят тщательную подготовку к тестированию, которая включает:

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

Результаты тестирования оформляются в отчете, который содержит:

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

Преимущества аутсорсинга тестирования

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

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