Выбор способа тестирования как решение многокритериальной задачи

Выбор способа тестирования как решение многокритериальной задачи

Е.Ю. Галимова, А.Н. Коваленко

Высшая школа печати и медиатехнологий Санкт-Петербургского государственного университета промышленных технологий и дизайна, г. Санкт-

Петербург, Российская Федерация

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

Ключевые слова: ручное тестирование 1111, автоматизированное тестирование 1111, полуавтоматизированное тестирование ПП, метод выбора, задача многокритериальной оптимизации, алгоритм решения многокритериальной задачи.

Введение

Тестирование является трудоемким и дорогостоящим этапом разработки программного продукта (ПП), но необходимым для обеспечения качества. Под качеством понимается степень соответствия присущих ПП характеристик заявленным требованиям [1]. Правильное планирование позволяет сократить затраты. На этапе планирования тестирования встает вопрос выбора способа тестирования между ручным, автоматизированным и смешанным. В данной работе предлагается решать вопрос выбора как многокритериальную задачу [2]. Поскольку ПП обладает целым рядом характеристик, авторы отказались от использования методов однокритериальной оптимизации [3], был выбран метод линейной свертки. Вопрос выбора способа тестирования является актуальным, так как в

нынешний век глобальной автоматизации ручное тестирование продолжает активно применяться [4].

Основная часть

Постановка задачи о формальной оценке ПП для целей

тестирования

Пусть объект О описывается критериями Их, Н2 , ..., Нк , которым можно приписать числовые значения Ьх, Ь2, ... , Ьк. Пусть по совокупности значений {Ьх, Ь2, ... , Ьк} определяется некоторая характеристика Кс , позволяющая формально ответить на некоторый вопрос, касающийся объекта С . Пусть эта характеристика ЯО дискретна, и набор её возможных значений конечен.

В данной работе объект О -это модуль ПП. Возможно, что это ПС целиком, если оно оценивается как достаточно простое для тестирования.

В данной работе критерии Их, Н2 ,..., Нк - это помещённые в подразделе 2.2 вопросы о модуле тестируемого ПС. Обозначим этот набор (множество) через М .

Характеристика Кс связывается (должна указывать) на выбор автоматизированного или ручного способа тестирования ПП или на перенесение решения этого вопроса на более сложные алгоритмы, в том числе, на экспертное решение.

Таким образом, в рассматриваемой задаче может быть три решения (три альтернативы):

Шс - использование для данного модуля ПП автоматизированного тестирования;

К.2с - использование для данного модуля ПП ручного тестирования;

- указание на некоторый пограничный случай между выбором автоматизированного и ручного методов тестирования.

В данной работе предлагается алгоритм, позволяющий формальным образом определять некоторую величину Р , однозначно указывающую на выбор между Шс, К2с, К3с.

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

Входным материалом в задачу являются два вида экспертных оценок, что порождает двухстадийный процесс формирования оценок Ьх, Ь2, ... , Ьк Поскольку экспертные оценки по определению дискретны, то формально решаемая задача относится к классу дискретных задач оптимизации.

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

Р .

Исходная информация в задаче состоит:

а) из ответов (экспертных оценок) в = (вх, в 2, ... , в к), даваемых в группе программистов - создателей данного ПП. Вопросы из множества М сформулированы именно под ответ «да» или «нет». В соответствии с этим величина в1 , 1=

X, 2, .«• , к представляет собой X или 0. Такая информация не является обременительной для создателя ПП. Вся сложность уходит в дальнейшую обработку.

б) из экспертных оценок а = (ах, а2, ... , ак) (называемых в работе весами), которые даются в группе тестирования.

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

За основу решения задачи многокритериальной оптимизации берётся метод свёртки [5].

Разновидность метода свёртки - групповая свёртка - используется в связи с тем, что критерии (вопросы) Н1, Н2 ,..., Нк делятся на группы, как это и сделано в подразделе 2.2. А именно, Н1 = (Н1, Н2 ,..., Ы1) - это первая группа вопросов. В них веса а1? а2, ... , ак1 , близкие к 1, ведут преимущественно к автоматизированному тестированию. Во второй группе критериев Н11 = (Нк1+1, Ы1+2 ,..., Нк2) веса ак1, ак1+ь .•• , ак2 , близкие к 1, ведут преимущественно к ручному способу тестированию. В третьей, в целом нейтральной группе критериев Н111 = (Нк2+1, Нк2+2 ,.••, Нк) , ответы близкие к 1, ведут преимущественно к выбору автоматизированного вида тестирования. Естественно, к1 < к2 < к. Такие оценки наиболее удобно давать эксперту. Их вид далее учитывается в алгоритме обработки.

Алгоритм решения многокритериальной задачи

Ход решения многокритериальной задачи включает себя ряд действий, которые изобразим в виде следующей схемы:

В группе программистов даются бинарные оценки Ръ Р Ъ Р к (ответы) на вопросы из множества М

1

В группе тестирования оценки р1, Р^,..., р к снабжаются весами ссц, а.г, ... , ак

Рис. 1. - Схема решения многокритериальной задачи Разберём приведённую схему.

Ячейка 1. Оценки въ в 2, • • • , в к (ответы на вопросы М) даются в группе создателей ПП, поскольку программисты лучше всех знают особенности созданного ими ПП. Как уже указывалось, для облегчения работы программистов оценки имеет вид 1 («да») и 0 («нет») [6]. При этом в оценке не учитывается деление критериев на три группы (К.1о, R2G, ИЭо). Дальнейшее усложнение оценок будет идти при обработке исходных массивов на 4-й и 5-й стадиях алгоритма.

Ячейка 2. Эксперт (обычно руководитель тестирования) снабжает оценки р1, в 2, ... , в к для всех модулей данного ПП весами. Эти веса а1, а2, ... , ак даются из промежутка [0, 1] и отражают сложность организации тестирования по критерию Н для данного модуля. Рекомендуется назначать веса в виде небольшого дискретного набора, например, [0, %, У, %, 1] . Причиной этого является сложность в выборе, например, между весами 0.3 или 0.4, в то время как интервал 0.25 достаточно удобен для экспертного назначения.

Выбор весов тестировщиком зависит от деления всех критериев Н1, Н2 ,..., Нк на группы Н1, Н11, Н111. В группе Н1 выбор делается по принципу - удобно ли будет с точки зрения данного критерия использовать автоматизированное тестирование (оценка 1 ); достаточно удобно (оценка %); есть сомнения, что удобно (оценка У); есть сильные сомнения, что удобно (оценка %); совершенно неудобно (оценка 0). В группе Н11 принцип обратный - удобно ли будет с точки зрения данного критерия использовать ручное тестирование (оценка 0 ); достаточно удобно (оценка %); есть сомнения, что удобно (оценка У); есть сильные сомнения, что удобно (оценка %); совершенно неудобно (оценка 1). В группе Н111 принцип такой же, как и в первой группе.

Ячейка 3. При наличии неясностей с назначением оценки в 1 для конкретного вопроса Н тестировщик обращается в группу программистов, и, после обсуждений, оценка в 1 может быть изменена.

Ячейка 4. Оценки в1, в2, .•• , в к напрямую неудобны для дальнейшей обработки, поскольку оценка в] = 0 при её умножении на вес всегда даёт нуль, и, тем самым, вес как бы не учитывается. Предлагается отделить оценку от нуля (а, заодно, и от единицы) заменой чисел 0 и 1 на числа %

и на % . То есть, если величина в1 = 0 , 1=1, ... , к , то она заменяется на Ъ = % . Если же величина в1 =1, то она заменяется на Ь1 = % . Таким образом, в целом, имеем переход

в1, в 2, ... , в к ^ Ь1, Ъ2, ..., Ьк .

Ячейка 5. Веса а1, а2, ... , ак для единообразия дальнейшей обработки по групповым правилам заменяются на веса а1 ,а2, ... ак . Эти правила зависят от группы критериев. А именно:

Для первой группы критериев Н1 = (Н1, Н2 ,..., Нк1) , ориентированной на выбор автоматизированного тестирования, веса а1, а2, . , ак1 необходимо только нормировать по группе - разделить на к1:

а1 = а1 /к1 для 1=1, ... , к1 .

Для второй группы критериев Н11 = (Нк1+1, Нк1+2 V, Нк2), ориентированной на выбор ручного тестирования, необходимо веса ак1+1, ак1+2, ... , ак2 инвертировать: а1 ^ (1 - а1) и поменять в них знак. В итоге имеем

а1 = (а1 - 1)/к2 для 1=к1+1, ... , к2

Для третьей, нейтральной группы критериев Н111 = (Нк2+1, Нк2+2 ,..., Нк), необходимо центрирование оценок ак2+1, ак2+2, ... , ак То есть нейтральной (нулевой) должна стать оценка У . С учётом количества критериев в этой группе (к—к1-к2) это достигается переходом

а1 = (а-У)/(к--к1-к2) для 1= к2+1, ... , к .

В итоге замен во всех трёх группах критериев имеем переход

а1, а2, ... , ак ^ а1 ,а2, ... ак .

Ячейка 6. Подготовительная работа, проведённая в ячейках 4 и 5 , позволяет единообразно вычислять групповую свёртку по формуле

Р = а1Ь1 + Й2^2 +...+ акЬк .

Указанная величина всегда находится в пределах -1 < Р< 1 . Математическое ожидание такой свёртки на множестве всех возможных исходных оценок в1, в2, ••• , в к и весов а1, а2, ... , ак есть 0 . Это позволяет говорить о том, что положительное значение оценки Р говорит о предпочтительности автоматизированного тестирования, а отрицательное - о предпочтительности ручного тестирования.

Ячейка 7. Назначаются величины Р1 и Р2 , определяющие вид тестирования. По построенной выше части алгоритма можно было бы обойтись без ограничительных величин Р1 и Р2 и предложить использовать автоматизированное тестирования при Р > 0 и ручное при Р < 0 . Но для большей аргументированности решений предлагается отодвинуть границы от 0 и ввести величины Р1 > 0 и Р2 < 0 . Это и приводит к третьему случаю, когда формализованное решений признаётся недостаточно обоснованным. В качестве конкретных значений Р1 и Р2 предлагается взять симметричные значения Р1 = 0.2 и Р2 = - 0.2 .

Ячейка 8. Выбор вида тестирования И1с К2с, или И3с для конкретного модуля или всего ПП делается по значению функции Р.

При Р > Р1 , рекомендуется автоматизированный метод тестирования

При Р < Р2 , рекомендуется ручной метод тестирования

При Р2 < Р < Р1, формальным способом выбора пользоваться не рекомендуется, решение принимается экспертно или требует использования дополнительных моделей.

Пример решения поставленной задачи

Пусть в решаемой задаче семь критериев Н1, Н2 ,..., Н7 , четыре первых из них традиционно считаются ведущими к автоматизированному тестированию (И1с ), , два последующих - к необходимости ручного тестирования (К2с ), и последний нейтрален (И3с). В группе программистов для данного модуля по критериям были даны оценки

(в 1, в 2, ... , в 7) = (1, 0, 1, 1, 0, 1, 0 ).

Напомним, это означает, что на вопросы №2, №5 и №7 программисты ответили «нет». Пусть представитель тестировщиков усомнился в оценке №5, и после обсуждения «0» был изменён на «1». В итоге, с учётом действий в ячейках 3 и 4, массив Ь имеет вид

(Ь1, Ь2, ... , Ь7 ) = ( %, %, %, %, % ,%, % ) .

Пусть веса, данные тестировщиками, имеют вид

(а1, а2, ... , а7) = ( У, 0, %, У, У, 1, 0 ).

Их обработка в ячейке 5 даст ненормированный массив

(У, 0, %, У, - У , 0, -У ) .

Нормированный массив а будет иметь вид

После вычислений имеем Р = а1Ь1 + а2Ь2+...+ а7Ь7 = 1/64 ~ 0.016 .

Для рекомендованных Р 1 = 0.2, Р2 = - 0.2 имеем указание на альтернативу , то есть, рекомендацию, несмотря на то, что величина

Р-0.016 положительна, не принимать формальное решение о выборе для данного модуля автоматизированного вида тестирования.

Связи с классической задачей многокритериальной оптимизации

Поставленная задача о формальном нахождении способа тестирования является неклассической задачей дискретной оптимизации [7]. Главным отличием является узость множества альтернатив - их всего три. Это использование при тестировании данного модуля автоматизированного метода решения задачи (К1о) , ручного метода (К.2с) или рассмотрение более сложной ситуации, включающей более сложное рассмотрение, в том числе, комбинирование методов (К3о). Напомним, что в классической задаче такое множество обычно бесконечно, в т.ч. часто непрерывно, и главной проблемой является перемещение к точкам допустимого множества (альтернативам), дающим более выгодное значение обобщённого критерия. Здесь же речь решение задачи оптимизации состоит в вычислении некоторой величины (у нас - групповой свёртка Р= Р1 + Р11 + Р111 ), значение которой указывает на наилучшую альтернативу. Альтернативы К.1о , , R3G

характеризуются величинами Р1 , Р11 , Р111 , а окончательный выбор достигается их суммированием.

Известное и весьма полезное в классических задачах множество Парето здесь состоит из всех рассматриваемых альтернатив: , R2G , R3G .

В классической задаче многокритериальной оптимизации критерии (у нас элементы множества М ) задаются на множестве альтернатив. Здесь же исходными являются множества оценок въ в2, • • • , в к и весов а1, а2, ... , ак , которые характеризуют элементы множества М . То есть в задачу вводится дополнительный нижний уровень информации. Зато здесь не требуются стандартные для классической задачи методы сокращения количества альтернатив (до одной или нескольких), поскольку их всего три: , R2G ,

R3g . Требуется лишь процедура их оценки, которая и предложена выше. Это и позволяет назвать данную задачу вырожденной.

Выводы

Использование различных вариантов методов свёртки - наиболее распространённые приём решения многокритериальных задач [8]. В данной задаче метод обосновывается тем, что свёртка объединяет мнение программистов и тестировщиков, а также тем, что позволяет удобно вводить в задачу экспертное мнение. Напомним, что входные величины в задаче - это искусственные баллы, а не объективные числовые оценки.

Вопросы межпрофессионального взаимодействия IT-специалистов являются важными в наши дни [9], так как основу экономики развитых стран составляют многофункциональные проекты [10], поэтому предложенный авторами алгоритм взаимодействия разработчиков ПП и тестировщиков ПП актуален и может быть широко применим.

Литература

1. Галимова Е. Ю. Процесс тестирования программного обеспечения как неотъемлемая часть его жизненного цикла, 61-я Международная молодежная научно-техническая конференция «Молодежь. Наука. Инновации», сборник статей, ноябрь 2013, Владивосток, с. 70-72.

2. T'Kindt Vincent, Multicriteria Scheduling Problems // Multiple Criteria Optimization, Springer Science & Business Media, 2002, pp 445-491.

3. Орловский Н. М. Решение задачи однокритериальной оптимизации процесса планирования действий экипажа российского сегмента международной космической станции на основе генетического алгоритма // Инженерный вестник Дона, 2013, №3 URL: ivdon.ru/ru/magazine/archive/n3y2013/1776

4. Галимова Е. Ю. Преимущества ручного подхода к тестированию программного обеспечения, III Международный научный форум "Наука в исследованиях молодых", сборник статей, май 2013, Новосибирск, с. 39 - 42.

5. Мухлисуллина Д. Т., Моор Д. А. Анализ эффективности различных свёрток критериев оптимальности в задаче многокритериальной оптимизации // «Наука и образование», 2010, №4, с. 46 URL: technomag.edu.ru/doc/141623.html

6. Галимова Е. Ю., Коваленко А. Н. «Применение алгоритма многокритериальной оптимизации при выборе между ручным и автоматизированным тестированием». Сборник докладов 63-й Международной молодежной научно-технической конференции "Молодежь. Наука. Инновации", Владивосток, 17-20 ноября 2015, том 1. Изд-во Мор. Гос. Ун-т., 2015. - 356 с.

7. Ковалев М. М. Дискретная оптимизация (целочисленное программирование) - М., Едиториал УРСС, 2003, с. 7-8.

8. Ногин В. Д. Линейная свертка критериев в многокритериальной оптимизации, «Искусственный интеллект и принятие решений», № 4, 2014, с. 73-82.

9. Gerald M. Weinberg, Perfect Software: And other Illusions about testing, Dorset House Publishing Company, 2008, 200 p.

10. Лежнева М. С. Технология формирования готовности будущих IT-специалистов к межпрофессиональному взаимодействию // Инженерный вестник Дона, 2013, №1URL: ivdon.ru/ru/magazine/archive/n1y2013/1563

References

1. Galimova E. Ju. 61-ja Mezhdunarodnaja molodezhnaja nauchno-tehnicheskaja konferencija «Molodezh'. Nauka. Innovacii», sbornik statej, nojabr' 2013, Vladivostok, pp. 70-72.

2. T'Kindt Vincent, Multicriteria Scheduling Problems. Multiple Criteria Optimization, Springer Science & Business Media, 2002, pp. 445-491.

3. Orlovskij N. M. Inzenernyj vestnik Dona (Rus), 2013, №3 URL: ivdon.ru/ru/magazine/archive/n3y2013/1776

4. Galimova E. Ju. III Mezhdunarodnyj nauchnyj forum "Nauka v issledovanijah molodyh", sbornik statej, maj 2013, Novosibirsk, pp. 39 - 42.

5. Muhlisullina D. T., Moor D. A. «Nauka i obrazovanie», 2010, №4, p. 46 URL: technomag.edu.ru/doc/141623.html

6. Galimova E. Ju., Kovalenko A. N. «Primenenie algoritma mnogokriterial'noj optimizacii pri vybore mezhdu ruchnym i avtomatizirovannym testirovaniem» [Application of multi-criteria optimization in selecting between manual and automated testing]. Sbornik dokladov 63-j Mezhdunarodnoj molodezhnoj nauchno-tehnicheskoj konferencii "Molodezh'. Nauka. Innovacii", Vladivostok, 17-20 nojabrja 2015, tom 1. Izd-vo Mor. Gos. Un-t., 2015. 356 p.

7. Kovalev M. M. Diskretnaja optimizacija (celochislennoe programmirovanie) [Discrete optimization (integer programming)] - M., Editorial URSS, 2003, pp. 7-8.

8. Nogin V. D. «Iskusstvennyj intellekt i prinjatie reshenij», № 4, 2014, pp. 73-82.

9. Gerald M. Weinberg, Perfect software: And other Illusions about testing, Dorset House Publishing Company, 2008, 200 p.

10. Lezhneva M. S. Inzenernyj vestnik Dona (Rus), 2013, №1 URL: ivdon.ru/ru/magazine/archive/n1y2013/1563