МОДЕЛЬ ИНФОРМАЦИОННО-СОВЕТУЮЩЕЙ СИСТЕМЫ ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЯ ПРИ ВЫБОРЕ СПОСОБА ТЕСТИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Аннотация и ключевые слова
Аннотация (русский):
Повышение качества программных систем предприятия увеличивает конкурентоспособность и востребованность программных продуктов. Одним из инструментов обеспечения качества является тестирование программных систем. Рассмотрены основные принципы построения информационно-советующей системы (ИСС) поддержки принятия решения при выборе способа тестирования программного обеспечения. Проанализированы концептуальные подходы к тестированию на основе функциональных характеристик классов программного обеспечения. При выборе способа тестирования рекомендуется учитывать не только финансовую составляющую, но и специфические характеристики тестируемой программной системы. Разработан список вопросов, с помощью которых формализуются качественные свойства программных систем. Список вопросов базируется на модели ISO/IEC 25010:2011. Опросные листы с таблицами попарных сравнений вопросов предлагается заполнить группе экспертов. Вопросы имеют эквивалентную значимость относительно критерия «Важность для автоматизации». При подборе экспертов не всегда есть возможность создания однородной группы, поэтому предлагается рассчитать весовые коэффициенты компетентности каждого эксперта. На основе полученных данных производится расчет весов ответов на вопросы. Далее вычисляется свертка и в зависимости от полученного результата делается рекомендация по выбору типа тестирования. Построены аналитическая и структурная модели ИСС. В разработанной программной системе выделены подсистема ввода данных, подсистема ранжирования вопросов и компетентностей экспертов, блок формирования результирующих данных. Предложенная ИСС позволит рассчитать коэффициенты компетентности экспертов, провести ранжирование вопросов по степени значимости для автоматизации тестирования, выбрать оптимальный подход к тестированию программных систем.

Ключевые слова:
программные системы, тестирование программного обеспечения, информационно-советующая система, автоматизированное тестирование, ручное тестирование
Текст

Введение

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

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

Концептуальные подходы к тестированию программного обеспечения

Тестирование является основным инструментом, используемым в IT-отрасли для оценки качества разрабатываемого программного обеспечения. В аспекте современных тенденций информатизации можно выделить ряд классификаций видов тестирования, в частности, используя Nuture of Software («природу» приложения. Концептуальными направлениями тестирования с позиции природы приложения (Nature of Software) являются тестирование мобильных приложений (mobile applications testing), тестирование настольных приложений (desktop applications testing) и тестирование веб-приложений (web-applications testing) [1]. Такое деление связано с тем, что каждый из вышеупомянутых классов приложений  (настольные, мобильные, веб-приложения) имеет ряд функциональных особенностей, отраженных в таблице 1.

Таблица 1

Функциональные характеристики классов программного обеспечения

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

Десктопные приложения

Мобильные приложения

Веб приложения

Процесс инсталляции

Стандартизирован, не требует специальных навыков

Инсталляция со специализированных сервисов или вручную.

Требует специфических знаний

Наличие инсталлятора

Есть

Встроен в ОС.

Нет

Режимы работы

Работает с данными на текущем устройстве

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

Режим запросов

Необходимость подключения к интернету

Частично автономная работа

Частично автономная работа для нативных и гибридных приложений

Обязательное подключение

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

Мышь, клавиатура, графический планшет, шлем виртуальной реальности

Клавиатура, сенсорные элементы. Голосовое (Google Now). Жестами (Hand wave).

Мышь, клавиатура

Ограничение ресурсов памяти

Как правило, нет значительных ограничений

Значительные ограничения

Нет значительных ограничений

Количество потенциальных пользователей

Ограниченное количество

Очень большая целевая аудитория

Большая целевая аудитория

Стационарность

Стационарные

Выполняются на ходу

Могут иметь мобильные версии

Деинсталлятор

Стандартизирован, процесс выполняется полуавтоматически или автоматически

Встроен в ОС

Требует участия администратора

 

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

Формализация качественных свойств программного обеспечения с помощью вопросов

Под моделью качества понимается система разнородных характеристик и атрибутов. Среди известных можно выделить модели МакКола, Боэма [2], FURPS/FURPS+, Гецци, Дроми [3] и другие. Ряд работ посвящен сравнительным характеристикам моделей [4, 5]. Наиболее распространённой является модель ISO/IEC 25010:2011. Применение данной модели к программному обеспечению для создания систем тестирования описано в работе [6]. При планировании процесса тестирования предлагается использовать метод выбора между ручным, автоматизированным и смешанным тестированием, основанный на модели качества ПС, описанной в ISO 9126. В России о характеристиках качества программного обеспечения  разработан ГОСТ Р ИСО/МЭК 25010-2015. Модель качества состоит из восьми атрибутов (критериев) качества, каждый из которых включает ряд подхарактеристик (рисунок 1).

Рис. 1.  Критерии качества программных систем

 

Для формализации общей оценки ПС для целей тестирования разработан список вопросов, отражающих основные атрибуты качества ПС по ISO/IEC 25010:2011 (таблица 2).

Таблица 2

Список вопросов о ПС

Вопросы 1 - 35

Вопросы 36 - 70

Предъявляются ли высокие требования к производительности? Свойство уровень производительности.

Планируется проведение сквозного тестирования (End-To-End Testing)? Свойства функциональная пригодность, совместимость, переносимость

Предполагается ли эксплуатация приложения на максимальной нагрузке (Load Testing)? Свойства надежность, уровень производительности.

Планируется проведение случайного тестирования (Monkey/Random Testing)? Свойство надежность

Будут ли производиться переходы с одной платформы (конфигурации аппаратных средств) на другую (Configuration Testing)? Свойство переносимость.

Планируется проведение исследовательского тестирования (Exploratory Testing)? Свойства функциональная пригодность, удобство использования, надёжность, защищённость, сопровождаемость, переносимость

 

Имеется ли большое количество форм с полями для ввода данных? Свойство удобство использования.

Планируется проведение регрессионного тестирования (Regression Testing)? Свойства функциональная пригодность, уровень производительности, совместимость, удобство использования, надёжность, защищённость, сопровождаемость, переносимость

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

Планируется проведение глобализационного тестирования (Globalization Testing)? Свойство удобство использования

В приложении есть функционал для выполнения повторяющихся действий? Свойство функциональная пригодность.

Планируется проведение тестирования локализации (Localization Testing)? Свойство удобство использования

Часто выходят новые версии приложения? Свойство совместимость.

Планируется проведение параллельного тестирования (Concurrency Testing)? Свойство надежность

Планируется ли проводить анализ покрытия кода? Свойства функциональная пригодность, сопровождаемость.

Планируется проведение альфа-тестирования? Свойства функциональная пригодность, совместимость, надёжность, защищённость, сопровождаемость, переносимость

Будет ли проводиться дымовое тестирование (Smoke Testing)? Свойства функциональная пригодность, сопровождаемость.

Планируется проведение бета-тестирования? Свойства функциональная пригодность, удобство использования, защищённость, переносимость

Планируется ли проводить тестирование хеш-функций? Свойство защищённость.

Будут проводиться инспекции кода? Свойства функциональная пригодность, сопровождаемость

При разработке использовалось много сторонних управляющих элементов? Свойства надёжность, сопровождаемость.

Будут проводиться сквозные просмотры кода? Свойства функциональная пригодность, удобство использования

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

ПС разрабатывается по Agile-методологии? Свойство сопровождаемость

Тестирование должно пройти в сжатые сроки? Свойство сопровождаемость.

Планируется тестирование пользовательских типов метаданных? Свойства удобство использования, защищённость

Планируется проверять корректность установки, обновления и удаления приложения? Свойства совместимость, переносимость.

Планируется проведение тестирования точности данных (Data Accuracy Testing)? Свойство переносимость

Планируется проверка эргономичности приложения? Свойство удобство использования.

Необходимо оценивать способность восстановления системы после сбоя (Recovery Testing)? Свойство уровень производительности.

Планируется проведение тестирования реконсиляции (Reconciliation Testing)? Свойство переносимость

Планируется проведение тестирования полноты данных (Data Completeness Testing)? Свойство переносимость

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

Планируется проведение тестирования преобразования данных (Data Transformation Testing)? Свойство надежность

Функционал программы подразумевает выполнение ручных взаимодействий? Свойство функциональная пригодность.

Планируется проведение тестирования качества данных (Data Quality Testing)? Свойство защищённость

Будет проверяться удобочитаемость формата выходных данных? Свойство удобство использования.

Планируется проведение тестирование сравнения баз данных (Database Comparison Testing)? Свойство надежность

Будет ли проводиться аудит архитектуры ПС? Свойство защищённость.

Планируется ли проведение тестирования сравнения данных (Data Comparison Testing)? Свойство функциональная пригодность

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

Планируется ли проведение тестирования хранилища данных (Data Warehouse Testing)? Свойство функциональная пригодность

Планируется ли проводить функциональное тестирование? Свойство функциональная пригодность.

Планируется ли проведение тестирования на больших объемах данных (Volume Testing)? Свойство уровень производительности

При разработке ПC использовались преимущественно сложные логические структуры (ветвления, циклы)? Свойство сопровождаемость.

Планируется проведение стресс-тестирования (Stress Testing)? Свойство уровень производительности

Будет ли проводиться тестирование на некорректных входных данных? Свойство надежность.

Планируется ли проведение тестирования потоков управления (Control Flow Testing)? Свойство функциональная пригодность

Это игровая ПC? Свойства функциональная пригодность, удобство использования.

Планируется проведение тестирования стабильности (Stability Testing)? Свойства совместимость, функциональная пригодность

Тестируемый объект является программно-аппаратным комплексом? Свойство функциональная пригодность.

Планируется ли проведение тестирования масштабируемости (Scalability Testing)? Свойства уровень производительности, функциональная пригодность

Планируется ли проведение мультиплатформенного тестирования? Свойство переносимость.

Планируется проведение тестирования отказоустойчивости (Failover Testing)? Свойства уровень производительности, надёжность, защищённость

Планируется проведение санитарного тестирования (Sanity Testing)? Свойство функциональная пригодность

Планируется проведение приёмочного тестирования (Acceptance Testing)? Свойство функциональная пригодность

Существует ли значительная вероятность того, что в процессе выполнения тестовых сценариев придётся их изменять и/или вводить дополнительные проверки? Свойства уровень производительности, совместимость.

Планируется тестирование потенциальных возможностей (Capacity Testing)? Свойство уровень производительности

Будет ли проводиться аудит исходного кода ПС? Для частичной автоматизации процесса поиска уязвимостей в программном коде используются «сканеры кода». Свойство защищённость.

Планируется ли проведение тестирования сравнения (Compare Testing)? Свойство функциональная пригодность

Планируется проведение динамического тестирования (Dynamic Testing)? Свойства функциональная пригодность, удобство использования, надёжность, защищённость, сопровождаемость

Планируется проведение синтетического тестирования (Synthetic Testing)? Свойства уровень производительности, защищённость

Планируется проведение формального тестирования (Formal Testing)? Свойства функциональная пригодность, уровень производительности, удобство использования, надёжность, защищённость, сопровождаемость

Планируется проведение интеграционного тестирования (Integration Testing)? Свойства функциональная пригодность, совместимость

Планируется проведение риск-тестирования (Risk Based Testing)? Свойства защищённость, надёжность

Планируется ли проведение изоляционного тестирования (Isolation Testing)? Свойство функциональная пригодность

Планируется проведение раннего тестирования (Early Testing)? Свойство функциональная пригодность

Будет ли проводиться тестирование на проникновение (Penetration Testing)? Свойство защищённость.

Планируется проведение статического тестирования (Static Testing)? Свойство функциональная пригодность

Планируется проведение тестирования сборки (Build Verification Testing)? Свойства функциональная пригодность, переносимость, сопровождаемость, совместимость

 

Ввиду многообразия вопросов возникает неопределённость, связанная с трудностью их обработки на базе точных расчетов. Уровень неопределенности возможно снизить путем использования суждений специалистов (экспертов) [7].

Аналитическая модель ИСС

Для ранжирования вопросов по важности для принятия решения об автоматизации тестирования экспертам предлагается заполнить таблицы, где степень попарного доминирования вопросов оценивается по разработанной Т. Саати шкале [8], включающей оценки от 1 (вопросы имеют эквивалентную значимость относительно критерия «Важность для автоматизации» до 9 (преобладающая важность одного вопроса над другими относительно критерия «Важность для автоматизации») с единичным шагом.

Опросные листы с таблицами попарных сравнений вопросов от каждого эксперта проходят индивидуальную обработку по специальному алгоритму, описанному в работе Давниса В. В [9].

Каждый опросный лист представляет собой квадратную матрицу А размером n на n. Расчёт производится по итерационному алгоритму:

ps = Aps-1.

Начальное значение вектора p0 принимается равным единичному:

p0 = (1, 1, …, 1).

В ходе каждой итерации вектор ps нормируется.

При подборе экспертов не всегда есть возможность создания однородной группы, поэтому предлагается рассчитывать весовые коэффициенты компетентности каждого эксперта. Применим итерационный алгоритм, рассчитывающий параллельно групповые предпочтения и коэффициенты компетентности экспертов, рассмотренный в работе Давниса В. В. Построим прямоугольную матрицу Р размера n на m, где n – число вопросов, m – число экспертов. Введем дополнительные обозначения: pi* - это i-я строка матрицы Р; p*j – это j-й столбец матрицы Р; p (p1, p2, …, pn) – это вектор групповой оценки; v0 = (v10, v20, …, vm0) - это вектор начальных весовых коэффициентов компетентности.

Пусть v0 = (1/m, 1/m, …, 1/m).

Тогда p1 = v1p*1 + v2p*2 + … + vmp*m = Pv0.

Далее уточним весовые коэффициенты компетентности экспертов:

v1 = p1*1p1* + p2*1p2* + … + pn1pn*.

Проведем нормирование, разделив полученный результат на следующий коэффициент:

 

Далее повторим расчеты по итерационному алгоритму параллельных вычислений до заявленной точности.

Построим прямоугольную матрицу Q размера n на m, где n – число вопросов, m – число экспертов, в которую запишем ответы экспертов на 70 вопросов. Ответ «да» обозначим как 1, ответ «нет» как 0. Рассчитаем qi, где i меняется в диапазоне от 1 до n:

qi =q1i* v1 + q2i*v2 + … +qmi*vm.

Получаем результирующий вектор q (q1, q2, …, qn) – веса ответов на вопросы с учетом коэффициентов компетентности экспертов. Далее вычисляется свертка вектора q и вектора групповой оценки вопросов p (p1, p2, …, pn). В зависимости от полученного результата делается рекомендация по выбору автоматизированного, ручного или смешанного типа тестирования.

 

Структурная модель ИСС

Целью разработки ИСС является автоматизация процесса принятия решения при выборе способа тестирования ПС.

Для достижения поставленной цели система должна выполнить следующие функции:

  1. Ввод входной информации: количество экспертов, ответы экспертов на вопросы, матрицы попарных оценок предложенных вопросов.
  2. Расчёт коэффициентов компетентности экспертов и коэффициентов групповых предпочтений для вопросов.
  3. Решение многокритериальной задачи методом свёртки.
  4. Выполнение выбора способа тестирования на основе разработанного алгоритма и методики.
  5. Формирование необходимых отчётов.

Общие требования к информационной инфраструктуре и программному обеспечению:

  1. Пользовательский интерфейс должен быть реализован на русском языке.
  2. Программная система должна обеспечивать наличие средств диалога пользователя.
  3. Пользовательский интерфейс должен быть снабжен функциями для быстрого и удобного ввода данных.
  4. Построение программного обеспечения по модульному принципу.
  5. Независимость программных модулей и обрабатываемых данных.
  6. Переносимость ИСС.

Анализ архитектурных подходов к построению ИСС позволил выделить в её составе три основных модуля: подсистему ввода данных, подсистему ранжирования вопросов и компетентностей экспертов, блок формирования результирующих данных (рисунок 2).

Рис. 2. Структура ИСС

 

 

Заключение

Анализ научно-технической информации и обобщение опыта тестирования программного обеспечения обосновал целесообразность разработки методики выбора между автоматизированным  и ручным способами тестирования ПС. Разработана модель для оценки затрат на внедрение автоматизированного тестирования. Данная модель отличается сочетанием в процессе выбора способа тестирования как оценок группы привлечённых экспертов, так и качественных характеристик рассматриваемого программного обеспечения.

Список литературы

1. Куликов С. Тестирование программного обеспечения. Базовый курс. URL: http://svyatoslav.biz/ software_testing_book/ (дата обращения: 12.02.2020).

2. Кулямин В. В., Петренко О. Л. Место тестирования среди методов оценки качества ПО // Тр. ин-та систем. программирования РАН. 2003. Т. 4. С. 163–175.

3. Жарко Е. Ф. Сравнение моделей качества программного обеспечения: аналитический подход // Сб. тр. XII Всерос. совещ. по пробл. управления ВСПУ-2014 (Москва, 16–19 июля 2014 г.). М.: Изд-во Ин-та проблем управления им. В. А. Трапезникова РАН, 2014. С. 4 585–4 594.

4. Anas Bassam AL-Badareen, Mohd Hasan Selamat, Marzanah A. Jabar, Jamilah Din, Sherzod Turaev. Software Quality Models: A Comparative Study // ICSECS 2011. 2011. Part I. CCIS 179. P. 46–55.

5. Miguel J. P., Mauricio D., Rodríguez Glen. A review of software quality models for the evalution of software products // International Journal of Software Engineering & Applications (IJSEA). 2014. V. 5. N. 6. P. 31–54.

6. Горбаченко И. М. Оценка качества программного обеспечения для создания систем тестирования // Фундаментальные исследования. 2013. № 6. C. 823–827.

7. Бешелев С. Д., Гурвич Ф. Г. Математико-статистические методы экспертных оценок. М.: Статистика, 1980. 263 с.

8. Саати Т., Керис К. Аналитическое планирование. Организация систем. М.: Радио и связь, 1991. 224 с.

9. Давнис В. В. Прогнозные модели экспертных предпочтений: моногр. Воронеж: Изд-во Воронеж. гос. ун-та, 2005. 248 с.