Astrakhan State Technical University (Institute of Information Technology and Communications, Competitor)
graduate student from 01.01.2019 to 01.01.2020
Saint-Petersburg, Russian Federation
Russian Federation
UDK 60 Прикладные науки. Общие вопросы
GRNTI 20.01 Общие вопросы информатики
GRNTI 26.03 Общественно-политическая мысль
GRNTI 43.01 Общие вопросы естественных и точных наук
GRNTI 44.01 Общие вопросы энергетики
GRNTI 45.01 Общие вопросы электротехники
GRNTI 50.01 Общие вопросы автоматики и вычислительной техники
GRNTI 62.01 Общие вопросы биотехнологии
GRNTI 69.01 Общие вопросы рыбного хозяйства
GRNTI 70.01 Общие вопросы водного хозяйства
GRNTI 73.34 Водный транспорт
The article focuses on improving the quality of program systems of the enterprise, which increases the competitiveness and relevance of the software products. One of the tools to ensure the quality is testing program systems. There are discussed the basic principles of building an information-advisory system (IAS) of decision support when choosing a method for testing the software. The conceptual approaches to testing using the functional characteristics of software classes are ana-lyzed. When choosing a testing method, it is recommended to take into account not only the financial component, but also the specific characteristics of the program system tested. A list of questions has been developed, with the help of which the qualitative properties of the program systems are formalized. The list of questions is based on the ISO / IEC 25010: 2011 model. A group of experts are offered to fill the questionnaires and tables of pairwise comparisons of questions. The questions have the equivalent significance with respect to the Importance for Automation criterion. When selecting experts, it is not always possible to create an affinity group; therefore, it is proposed to calculate the weighting coefficients of competence of each expert. According to the data obtained, the weights of the answers are calculated. Further, the convolution is calculated and, depending on the result, a recommendation is made on choosing the type of testing. The analytical and structural models of IAS have been constructed. In the developed program system, a data input subsystem, a subsystem for ranking questions and expert competencies, and a unit for generating the resulting data are allocated. The proposed IAS will make it possible to calculate the competency coefficients of experts, to rank questions according to the degree of importance for testing automation, and to choose the optimal approach to testing software systems.
software testing, information advisory system, automated testing, manual testing
Введение
В условиях роста числа задач, для решения которых применяются различные программные системы (ПС), проблема оценивания их качества занимает особое место в общем комплексе исследований, что приводит к новым задачам, для решения которых уже недостаточно последних достижений в области обеспечения качества ПС. Особенностью современного процесса развития информационных технологий является то, что происходит быстрое устаревание существующих методик обеспечения качества ПС. Проблема неэффективности использования средств вычислительной техники во многом связана с невыявленными ошибками в ПС.
Данная статья посвящена вопросам моделирования информационно-советующей программной системы для поддержки выбора способа тестирования программного обеспечения.
Концептуальные подходы к тестированию программного обеспечения
Тестирование является основным инструментом, используемым в 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). В зависимости от полученного результата делается рекомендация по выбору автоматизированного, ручного или смешанного типа тестирования.
Структурная модель ИСС
Целью разработки ИСС является автоматизация процесса принятия решения при выборе способа тестирования ПС.
Для достижения поставленной цели система должна выполнить следующие функции:
- Ввод входной информации: количество экспертов, ответы экспертов на вопросы, матрицы попарных оценок предложенных вопросов.
- Расчёт коэффициентов компетентности экспертов и коэффициентов групповых предпочтений для вопросов.
- Решение многокритериальной задачи методом свёртки.
- Выполнение выбора способа тестирования на основе разработанного алгоритма и методики.
- Формирование необходимых отчётов.
Общие требования к информационной инфраструктуре и программному обеспечению:
- Пользовательский интерфейс должен быть реализован на русском языке.
- Программная система должна обеспечивать наличие средств диалога пользователя.
- Пользовательский интерфейс должен быть снабжен функциями для быстрого и удобного ввода данных.
- Построение программного обеспечения по модульному принципу.
- Независимость программных модулей и обрабатываемых данных.
- Переносимость ИСС.
Анализ архитектурных подходов к построению ИСС позволил выделить в её составе три основных модуля: подсистему ввода данных, подсистему ранжирования вопросов и компетентностей экспертов, блок формирования результирующих данных (рисунок 2).
Рис. 2. Структура ИСС
Заключение
Анализ научно-технической информации и обобщение опыта тестирования программного обеспечения обосновал целесообразность разработки методики выбора между автоматизированным и ручным способами тестирования ПС. Разработана модель для оценки затрат на внедрение автоматизированного тестирования. Данная модель отличается сочетанием в процессе выбора способа тестирования как оценок группы привлечённых экспертов, так и качественных характеристик рассматриваемого программного обеспечения.
1. Kulikov S. Testirovanie programmnogo obespecheniia. Bazovyi kurs [Software testing. Basic course]. Available at: http://svyatoslav.biz/software_testing_book/ (accessed: 12.02.2020).
2. Kuliamin V. V., Petrenko O. L. Mesto testirovaniia sredi metodov otsenki kachestva PO [Place of test-ing among software quality assessment methods]. Trudy instituta sistemnogo programmirovaniia RAN, 2003, vol. 4, pp. 63-175.
3. Zharko E. F. Sravnenie modelei kachestva programmnogo obespecheniia: analiticheskii podkhod [Comparison of software quality models: analytical approach]. Sbornik trudov XII Vserossiiskogo soveshchaniia po problemam upravleniia VSPU-2014 (Moskva, 16-19 iiulia 2014 g.). Moscow, Izd-vo In-ta problem uprav-leniia im. V. A. Trapeznikova RAN, 2014. Pp. 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, pp. 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, vol. 5, no. 6, pp. 31-54.
6. Gorbachenko I. M. Otsenka kachestva programmnogo obespecheniia dlia sozdaniia sistem testirovaniia [Software quality assessment for creating test systems]. Fundamental'nye issledovaniia, 2013, no. 6, pp. 823-827.
7. Beshelev S. D., Gurvich F. G. Matematiko-statisticheskie metody ekspertnykh otsenok [Mathematical and statistical methods of expert estimates]. Moscow, Statistika Publ., 1980. 263 p.
8. Saati T., Keris K. Analiticheskoe planirovanie. Organizaciya sistem. M.: Radio i svyaz', 1991. 224 s.
9. Davnis V. V. Prognoznye modeli ekspertnyh predpochteniy: monogr. Voronezh: Izd-vo Voronezh. gos. un-ta, 2005. 248 s.