Способы тестирования и виды экспертных оценок программного модуля. Разработка алгоритма решения многокритериальной задачи оптимизации методом групповой линейной свертки, преимущества и недостатки. Межпрофессиональное взаимодействие IT-специалистов.
Аннотация к работе
На этапе планирования тестирования встает вопрос выбора способа тестирования между ручным, автоматизированным и смешанным. Входным материалом в задачу являются два вида экспертных оценок, что порождает двухстадийный процесс формирования оценок h1, h2, … , hk Поскольку экспертные оценки по определению дискретны, то формально решаемая задача относится к классу дискретных задач оптимизации. В группе HI выбор делается по принципу - удобно ли будет с точки зрения данного критерия использовать автоматизированное тестирование (оценка 1 ); достаточно удобно (оценка ?); есть сомнения, что удобно (оценка ?); есть сильные сомнения, что удобно (оценка ?); совершенно неудобно (оценка 0). В группе HII принцип обратный - удобно ли будет с точки зрения данного критерия использовать ручное тестирование (оценка 0 ); достаточно удобно (оценка ?); есть сомнения, что удобно (оценка ?); есть сильные сомнения, что удобно (оценка ?); совершенно неудобно (оценка 1). Оценки ?1, ?2, … , ? k напрямую неудобны для дальнейшей обработки, поскольку оценка ?j = 0 при ее умножении на вес всегда дает нуль, и, тем самым, вес как бы не учитывается.Использование различных вариантов методов свертки - наиболее распространенные прием решения многокритериальных задач [8].
Введение
Тестирование является трудоемким и дорогостоящим этапом разработки программного продукта (ПП), но необходимым для обеспечения качества.
Под качеством понимается степень соответствия присущих ПП характеристик заявленным требованиям [1]. Правильное планирование позволяет сократить затраты. На этапе планирования тестирования встает вопрос выбора способа тестирования между ручным, автоматизированным и смешанным.
В данной работе предлагается решать вопрос выбора как многокритериальную задачу [2]. Поскольку ПП обладает целым рядом характеристик, авторы отказались от использования методов однокритериальной оптимизации [3], был выбран метод линейной свертки.
Вопрос выбора способа тестирования является актуальным, так как в нынешний век глобальной автоматизации ручное тестирование продолжает активно применяться [4].
Постановка задачи о формальной оценке ПП для целей тестирования
Пусть объект G описывается критериями H1, H2 , …, Hk , которым можно приписать числовые значения h1, h2, … , hk. Пусть по совокупности значений {h1, h2, … , hk} определяется некоторая характеристика RG , позволяющая формально ответить на некоторый вопрос, касающийся объекта G . Пусть эта характеристика RG дискретна, и набор ее возможных значений конечен.
В данной работе объект G -это модуль ПП. Возможно, что это ПС целиком, если оно оценивается как достаточно простое для тестирования.
В данной работе критерии H1, H2 ,…, Hk - это помещенные в подразделе 2.2 вопросы о модуле тестируемого ПС. Обозначим этот набор (множество) через М .
Характеристика RG связывается (должна указывать) на выбор автоматизированного или ручного способа тестирования ПП или на перенесение решения этого вопроса на более сложные алгоритмы, в том числе, на экспертное решение.
Таким образом, в рассматриваемой задаче может быть три решения (три альтернативы): R1G - использование для данного модуля ПП автоматизированного тестирования;
R2G - использование для данного модуля ПП ручного тестирования;
R3G - указание на некоторый пограничный случай между выбором автоматизированного и ручного методов тестирования.
В данной работе предлагается алгоритм, позволяющий формальным образом определять некоторую величину Р , однозначно указывающую на выбор между R1G, R2G, R3G.
Такая задача, строго говоря, является задачей многокритериальной оптимизации с критериями H1, H2 ,…, Hk , но представляет собой вырожденный случай, поскольку допускает прямое вычисление всех возможных значений величины Р . Тем не менее, она решается на основе идей, используемых для исследования многокритериальных задач.
Входным материалом в задачу являются два вида экспертных оценок, что порождает двухстадийный процесс формирования оценок h1, h2, … , hk Поскольку экспертные оценки по определению дискретны, то формально решаемая задача относится к классу дискретных задач оптимизации.
Другой особенностью является деление вопросов множества М на три группы. Этот акт позволяет учитывать обобщенный опыт тестирования ПП. В алгоритме оптимизации такой факт учитывается при вычислении величины Р .
Исходная информация в задаче состоит: а) из ответов (экспертных оценок) ? = (?1, ? 2, … , ? k), даваемых в группе программистов - создателей данного ПП. Вопросы из множества М сформулированы именно под ответ «да» или «нет». В соответствии с этим величина ?i , i=1, 2, … , k представляет собой 1 или 0. Такая информация не является обременительной для создателя ПП. Вся сложность уходит в дальнейшую обработку. б) из экспертных оценок ? = (?1, ?2, … , ?k) (называемых в работе весами), которые даются в группе тестирования.
Наличие двух типов экспертной информации делает решение задачи более объективным, поскольку работа будет идти не с реальными физическими величинами, а с искусственными бальными оценками.
За основу решения задачи многокритериальной оптимизации берется метод свертки [5].
Разновидность метода свертки - групповая свертка - используется в связи с тем, что критерии (вопросы) H1, H2 ,…, Hk делятся на группы, как это и сделано в подразделе 2.2. А именно, HI = (H1, H2 ,…, Hk1) - это первая группа вопросов.
В них веса ?1, ?2, … , ?k1 , близкие к 1, ведут преимущественно к автоматизированному тестированию.
Во второй группе критериев HII = (Hk1 1, Hk1 2 ,…, Hk2) веса ?k1, ?k1 1, … , ?k2 , близкие к 1, ведут преимущественно к ручному способу тестированию. В третьей, в целом нейтральной группе критериев HIII = (Hk2 1, Hk2 2 ,…, Hk) , ответы близкие к 1, ведут преимущественно к выбору автоматизированного вида тестирования. Естественно, k1 ? k2 ? k. Такие оценки наиболее удобно давать эксперту. Их вид далее учитывается в алгоритме обработки.
Алгоритм решения многокритериальной задачи
Ход решения многокритериальной задачи включает себя ряд действий, которые изобразим в виде следующей схемы: Рис. 1. - Схема решения многокритериальной задачи
Разберем приведенную схему.
Ячейка 1. Оценки ?1, ? 2, … , ? k (ответы на вопросы М) даются в группе создателей ПП, поскольку программисты лучше всех знают особенности созданного ими ПП.
Как уже указывалось, для облегчения работы программистов оценки имеет вид 1 («да») и 0 («нет») [6]. При этом в оценке не учитывается деление критериев на три группы (R1G, R2G, R3G). Дальнейшее усложнение оценок будет идти при обработке исходных массивов на 4-й и 5-й стадиях алгоритма.
Ячейка 2. Эксперт (обычно руководитель тестирования) снабжает оценки ?1, ? 2, … , ? k для всех модулей данного ПП весами. Эти веса ?1, ?2, … , ?k даются из промежутка [0, 1] и отражают сложность организации тестирования по критерию Hi для данного модуля.
Рекомендуется назначать веса в виде небольшого дискретного набора, например, [0, ?, ?, ?, 1] . Причиной этого является сложность в выборе, например, между весами 0.3 или 0.4, в то время как интервал 0.25 достаточно удобен для экспертного назначения.
Выбор весов тестировщиком зависит от деления всех критериев H1, H2 ,…, Hk на группы HI, HII, HIII. В группе HI выбор делается по принципу - удобно ли будет с точки зрения данного критерия использовать автоматизированное тестирование (оценка 1 ); достаточно удобно (оценка ?); есть сомнения, что удобно (оценка ?); есть сильные сомнения, что удобно (оценка ?); совершенно неудобно (оценка 0).
В группе HII принцип обратный - удобно ли будет с точки зрения данного критерия использовать ручное тестирование (оценка 0 ); достаточно удобно (оценка ?); есть сомнения, что удобно (оценка ?); есть сильные сомнения, что удобно (оценка ?); совершенно неудобно (оценка 1). В группе HIII принцип такой же, как и в первой группе.
Ячейка 3. При наличии неясностей с назначением оценки ? i для конкретного вопроса Hi тестировщик обращается в группу программистов, и, после обсуждений, оценка ? i может быть изменена.
Ячейка 4. Оценки ?1, ?2, … , ? k напрямую неудобны для дальнейшей обработки, поскольку оценка ?j = 0 при ее умножении на вес всегда дает нуль, и, тем самым, вес как бы не учитывается. Предлагается отделить оценку от нуля (а, заодно, и от единицы) заменой чисел 0 и 1 на числа ? и на ? . То есть, если величина ?i = 0 , i=1, … , k , то она заменяется на bi = ? . Если же величина ?i =1, то она заменяется на bi = ? . Таким образом, в целом, имеем переход ?1, ? 2, … , ? k > b1, b2, …, bk .
Ячейка 5. Веса ?1, ?2, … , ?k для единообразия дальнейшей обработки по групповым правилам заменяются на веса a1 ,a2, … ak . Эти правила зависят от группы критериев. А именно: Для первой группы критериев HI = (H1, H2 ,…, Hk1) , ориентированной на выбор автоматизированного тестирования, веса ?1, ?2, … , ?k1 необходимо только нормировать по группе - разделить на k1: ai = ?i /k1 для i=1, … , k1 .
Для второй группы критериев HII = (Hk1 1, Hk1 2 ,…, Hk2), ориентированной на выбор ручного тестирования, необходимо веса ?k1 1, ?k1 2, … , ?k2 инвертировать: ?i > (1 - ?i) и поменять в них знак. В итоге имеем ai = (?i - 1)/k2 для i=k1 1, … , k2
Для третьей, нейтральной группы критериев HIII = (Hk2 1, Hk2 2 ,…, Hk), необходимо центрирование оценок ?k2 1, ?k2 2, … , ?k То есть нейтральной (нулевой) должна стать оценка ? . С учетом количества критериев в этой группе (k-k1-k2) это достигается переходом ai = (?i -?)/(k-k1-k2) для i= k2 1, … , k .
В итоге замен во всех трех группах критериев имеем переход ?1, ?2, … , ?k > a1 ,a2, … ak .
Ячейка 6. Подготовительная работа, проведенная в ячейках 4 и 5 , позволяет единообразно вычислять групповую свертку по формуле
Р = a1b1 a2b2 … akbk .
Указанная величина всегда находится в пределах -1 ? Р? 1 . Математическое ожидание такой свертки на множестве всех возможных исходных оценок ?1, ?2, … , ? k и весов ?1, ?2, … , ?k есть 0 .
Это позволяет говорить о том, что положительное значение оценки Р говорит о предпочтительности автоматизированного тестирования, а отрицательное - о предпочтительности ручного тестирования.
Ячейка 7. Назначаются величины Р1 и Р2 , определяющие вид тестирования. По построенной выше части алгоритма можно было бы обойтись без ограничительных величин Р1 и Р2 и предложить использовать автоматизированное тестирования при Р ? 0 и ручное при Р < 0 .
Но для большей аргументированности решений предлагается отодвинуть границы от 0 и ввести величины Р1 ? 0 и Р2 ? 0 . Это и приводит к третьему случаю, когда формализованное решений признается недостаточно обоснованным.
В качестве конкретных значений Р1 и Р2 предлагается взять симметричные значения Р1 = 0.2 и Р2 = - 0.2 .
Ячейка 8. Выбор вида тестирования R1G, R2G, или R3G для конкретного модуля или всего ПП делается по значению функции Р.
При Р ? Р1 , рекомендуется автоматизированный метод тестирования
При Р ? Р2 , рекомендуется ручной метод тестирования
При Р2 < Р < Р1, формальным способом выбора пользоваться не рекомендуется, решение принимается экспертно или требует использования дополнительных моделей.
Пример решения поставленной задачи
Пусть в решаемой задаче семь критериев H1, H2 ,…, H7 , четыре первых из них традиционно считаются ведущими к автоматизированному тестированию (R1G ), два последующих - к необходимости ручного тестирования (R2G ), и последний нейтрален (R3G).
В группе программистов для данного модуля по критериям были даны оценки
(? 1, ? 2, … , ? 7) = (1, 0, 1, 1, 0, 1, 0 ).
Напомним, это означает, что на вопросы №2, №5 и №7 программисты ответили «нет». Пусть представитель тестировщиков усомнился в оценке №5, и после обсуждения «0» был изменен на «1». В итоге, с учетом действий в ячейках 3 и 4, массив b имеет вид
(b1, b2, … , b7 ) = ( ?, ?, ?, ?, ? ,?, ? ) .
Пусть веса, данные тестировщиками, имеют вид
(?1, ?2, … , ?7) = ( ?, 0, ?, ?, ?, 1, 0 ).
Их обработка в ячейке 5 даст ненормированный массив
Для рекомендованных Р 1 = 0.2, Р2 = - 0.2 имеем указание на альтернативу R3G , то есть, рекомендацию, несмотря на то, что величина Р?0.016 положительна, не принимать формальное решение о выборе для данного модуля автоматизированного вида тестирования.
Связи с классической задачей многокритериальной оптимизации
Поставленная задача о формальном нахождении способа тестирования является неклассической задачей дискретной оптимизации [7]. Главным отличием является узость множества альтернатив - их всего три.
Это использование при тестировании данного модуля автоматизированного метода решения задачи (R1G) , ручного метода (R2G) или рассмотрение более сложной ситуации, включающей более сложное рассмотрение, в том числе, комбинирование методов (R3G).
Напомним, что в классической задаче такое множество обычно бесконечно, в т.ч. часто непрерывно, и главной проблемой является перемещение к точкам допустимого множества (альтернативам), дающим более выгодное значение обобщенного критерия.
Здесь же речь решение задачи оптимизации состоит в вычислении некоторой величины (у нас - групповой свертка Р= РІ РІІ РІІІ ), значение которой указывает на наилучшую альтернативу. Альтернативы R1G , R2G , R3G характеризуются величинами РІ , РІІ , РІІІ , а окончательный выбор достигается их суммированием.
Известное и весьма полезное в классических задачах множество Парето здесь состоит из всех рассматриваемых альтернатив: R1G , R2G , R3G .
В классической задаче многокритериальной оптимизации критерии (у нас элементы множества М ) задаются на множестве альтернатив. Здесь же исходными являются множества оценок ?1, ?2, … , ? k и весов ?1, ?2, … , ?k , которые характеризуют элементы множества М .
То есть в задачу вводится дополнительный нижний уровень информации. Зато здесь не требуются стандартные для классической задачи методы сокращения количества альтернатив (до одной или нескольких), поскольку их всего три: R1G , R2G , R3G . Требуется лишь процедура их оценки, которая и предложена выше. Это и позволяет назвать данную задачу вырожденной.
Вывод
Использование различных вариантов методов свертки - наиболее распространенные прием решения многокритериальных задач [8]. В данной задаче метод обосновывается тем, что свертка объединяет мнение программистов и тестировщиков, а также тем, что позволяет удобно вводить в задачу экспертное мнение. Напомним, что входные величины в задаче - это искусственные баллы, а не объективные числовые оценки.
Вопросы межпрофессионального взаимодействия IT-специалистов являются важными в наши дни [9], так как основу экономики развитых стран составляют многофункциональные проекты [10], поэтому предложенный авторами алгоритм взаимодействия разработчиков ПП и тестировщиков ПП актуален и может быть широко применим. программный многокритериальный сверстка тестирование
Список литературы
1. Галимова Е. Ю. Процесс тестирования программного обеспечения как неотъемлемая часть его жизненного цикла, 61-я Международная молодежная научно-техническая конференция «Молодежь. Наука. Инновации», сборник статей, ноябрь 2013, Владивосток, с. 70-72.
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. TKINDT 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 multicriteria 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