Тестирование информационных систем
Тестирование — неотъемлемая часть жизненного цикла любого программного продукта. В финансовых организациях, бизнес которых существенно зависит от возможностей IT-инфраструктуры, тестирование является важным подготовительным этапом к внедрению новых информационных систем. При необходимости выполнить работы по тестированию у руководителей возникает вопрос: выполнять тестирование самостоятельно или поручить эту задачу внешней компании? Организации, которые выбирают второй вариант, получают ряд преимуществ, трудно достижимых в случае тестирования собственными силами.
Краткое описание услуг
Компания «Неофлекс» оказывает услуги по тестированию программного обеспечения. Независимое подразделение компании ориентировано на предоставление высококачественных услуг организациям, которые желают:
- получить объективную информацию о качестве информационных систем для принятия управленческих решений
- повысить качество информационных систем
- сократить сроки внедрения информационных систем и затраты на сопровождение информационных систем
- предотвратить возникновение проблем при промышленной эксплуатации информационных систем.
Мы предлагаем функциональное, нагрузочное и другие виды тестирования. В каждом новом проекте мы учитываем специфику бизнеса нашего клиента для точного и полного достижения поставленных им целей. В своей работе мы используем современные методологии и инструменты ведущих поставщиков специализированных программных решений.
Виды тестирования
Компания «Неофлекс» предлагает следующие виды тестирования программного обеспечения.
Функциональное тестирование
- Компонентное: проверка функциональности на уровне отдельных компонент информационной системы.
- Интеграционное: проверка функциональности при интеграции нескольких компонент.
- Системное: проверка функциональности всей системы.
- Приемочное: подтверждение функциональности системы на основе контрольных примеров.
- Регрессионное: проверка ранее работавшей функциональности в случае внесения изменений.
- Автоматизация регрессионного тестирования: разработка автоматизированных скриптов, выполняющих тестовые операции по проверке фактического результата через пользовательский или программный интерфейс
- Совместимости: проверка функциональности при использовании разных версий предположительно совместимого программного обеспечения.
- Исследовательское: быстрое выявление наиболее критичных дефектов функциональности без длительной подготовки и обеспечения тестового покрытия.
Нефункциональное тестирование
- Производительности: исследование характеристик производительности системы для заданного уровня пользовательской нагрузки, объема данных и программно-аппаратной конфигурации.
- Нагрузочное: исследование характеристик производительности системы для разных уровней пользовательской нагрузки.
- Объемов: исследование характеристик производительности системы на разных объемах данных.
- Конфигурационное: исследование характеристик производительности системы на разных программно-аппаратных конфигурациях.
- Анализ и оптимизация производительности: выявление узких мест производительности системы и формирование предложений по их устранению.
- Надежности: исследование отказов системы при относительно длительной эксплуатации в условиях номинальной или пиковой нагрузки.
- Стрессовое: исследование поведения системы в условиях недостатка аппаратных или программных ресурсов.
- Отказоустойчивости: исследование возможностей восстановления нормальной работы системы после аппаратных и программных сбоев.
- Инсталляционное: проверка комплектности дистрибутивов и их корректной установки в соответствии с поставляемой инструкцией.
- Документации: проверка соответствия документации заданным критериям качества.
Функциональное тестирование
Функциональное тестирование обеспечивает проверку корректного выполнения операций, автоматизированных информационной системой. В каждом проекте при выборе методов тестирования производится обследование возможностей тестирования и учет требований заказчика по срокам, бюджету и необходимому уровню качества.
Функциональное тестирование может проводиться с разной степенью тестового покрытия:
- тестирование по актуализированным спецификациям (тестовым требованиям)
- тестирование по существующим спецификациям
- поиск дефектов на основе знаний аналогичных систем
- проверка на основе контрольных примеров.
Для достижения максимального эффекта применяются разные способы построения тестов:
- пошаговое описание тестов
- чек-листы
- моделирование тестируемой системы
- сравнение системы с предыдущей версией
- автоматизированные GUI-тесты
- модульные (unit) тесты
- тесты, управляемые данными
- автоматическая генерация тестовых сценариев.
Результаты тестирования оформляются в отчете о тестировании, который содержит:
- информацию о версии протестированной системы
- фактические условия и ограничения выполненного тестирования
- перечень проверенных функциональных возможностей системы
- данные о количестве проведенных тестов
- данные о количестве обнаруженных дефектов и их список
- распределение дефектов по приоритетам и состояниям
- заключение о качестве информационной системы.
Высокое качество функционального тестирования обеспечивают:
- актуализация требований к системе: на этапе подготовки к тестированию производится анализ требований к системе, выявление и устранение обнаруженных недостатков
- необходимые широта и глубина тестового покрытия: в плане тестирования указываются функциональные возможности системы, которые будут протестированы, и стратегии формирования тестов, которые будут для этого задействованы — разбиение данных на классы эквивалентности, контроль специфичных значений параметров, контроль обхода ветвей алгоритмов, проверка сложных условий и т. д.
- качественное описание зарегистрированных дефектов: дефекты корректно описывают недостатки системы и содержат достаточно информации для их дальнейшей локализации.
Нефункциональное тестирование
Наряду с функциональными характеристиками программного обеспечения высокую важность имеют такие его характеристики, как производительность, надежность и отказоустойчивость. На исследование данных показателей направлено нефункциональное тестирование.
Почему важно исследовать характеристики производительности, надежности и отказоустойчивости систем?
Эти характеристики влияют на время выполнения бизнес-процессов, допустимые объемы бизнес-операций и затраты на оборудование. Нередко высокая пользовательская нагрузка приводит к сбоям в информационных системах. В этих случаях характеристики производительности, надежности и отказоустойчивости приобретают критический характер — отказ информационной системы может вызвать приостановку операционной деятельности организации, что приводит к серьезным финансовым и репутационным потерям.
Специалисты компании «Неофлекс» производят тщательную подготовку к тестированию, которая включает:
- анализ специфики бизнеса и выявление необходимых видов тестирования
- выявление нагрузочных профилей для разных режимов и периодов использования системы
- определение состава и конфигурации тестового стенда для корректного моделирования поведения исследуемой системы
- определение состава журналируемых характеристик системы
- разработку автоматизированных нагрузочных скриптов и эмуляторов.
Результаты тестирования оформляются в отчете, который содержит:
- информацию о версии и конфигурации протестированной системы
- фактические условия и ограничения выполненного тестирования
- характеристики производительности, надежности и отказоустойчивости системы
- описание узких мест системы
- рекомендации по оптимизации системы
- заключение о качестве системы.
Преимущества аутсорсинга тестирования
Аутсорсинг тестирования заключается в привлечении к тестированию проектной команды специалистов, предоставленной внешней компанией. В состав команды по тестированию, предоставляемой компанией «Неофлекс», входят опытный руководитель проекта, ведущий инженер по обеспечению качества программного обеспечения и квалифицированные тестировщики. В таком составе команда способна выполнить проект любой сложности и обеспечить все преимущества аутсорсинга тестирования:
- доступность персонала: к моменту начала работ по тестированию команда уже сформирована и готова к выполнению работ
- предсказуемость результата: контрактная форма выполнения работ обязывает к четкому определению результатов
- технологичность: для достижения предсказуемости результата компания, выполняющая аутсорсинг тестирования, использует специальные технологии. Это упорядочивает все промежуточные этапы тестирования и является необходимым условием выполнения работ с высоким качеством
- объективность результатов: результаты тестирования заслуживают большего доверия, так как независимая команда не заинтересована в сокрытии обнаруженных проблем в информационной системе
- высокая ответственность: уровень ответственности, принимаемый на себя внешней компанией, на порядок выше, чем уровень ответственности отдельного сотрудника собственного отдела тестирования. Это приводит к значительному улучшению результатов работ по всем показателям.

