Лекции. Тестирование ПО (all in one) (1186159), страница 23
Текст из файла (страница 23)
В данном примереодин из возможных минимальных наборов тестов представлен в Таблице 2.Показанный набор минимален, поскольку для использования всех сочетаний размеровбумаги и операционных систем необходимо не менее 25 тестов.Можно пойти еще дальше и попробовать составить тестовый набор так, чтобы он попрежнему оставался небольшим, но содержал уже все различные тройки значений факторов.При этом потребуется не менее 100 = 5⋅5⋅4 тестов, что все же существенно меньше, чем 1800(такой набор из 100 тестов действительно существует).123456789101112131 страница1 страница1 страница1 страница1 страница1 страница1 страница2 страницы2 страницы2 страницы2 страницы2 страницы2 страницыНет цветных рисунковНет цветных рисунковНет цветных рисунковНет цветных рисунковЕсть цветные рисункиЕсть цветные рисункиЕсть цветные рисункиНет цветных рисунковНет цветных рисунковНет цветных рисунковЕсть цветные рисункиЕсть цветные рисункиЕсть цветные рисункиA4A4A5Envelop C5B5LetterEnvelop C5A5LetterEnvelop C5A4A5B5HPHPEpsonCanonEpsonHPXeroxXeroxCanonHPXeroxHPXeroxInternet ExplorerOperaInternet ExplorerInternet ExplorerOperaMozilla FirefoxOperaMozilla FirefoxOperaMozilla FirefoxOperaOperaOperaLinux RHEL 4.0Windows MeWindows 2000Linux RHEL 4.0Windows XPWindows 2000Linux SUSE 10.0Linux RHEL 4.0Linux SUSE 10.0Windows XPWindows XPLinux SUSE 10.0Windows 20001415161718192021222324252 страницы7 страниц7 страниц7 страниц7 страниц7 страниц7 страниц7 страниц7 страниц7 страниц7 страниц7 страницЕсть цветные рисункиНет цветных рисунковНет цветных рисунковНет цветных рисунковНет цветных рисунковНет цветных рисунковНет цветных рисунковЕсть цветные рисункиЕсть цветные рисункиЕсть цветные рисункиЕсть цветные рисункиЕсть цветные рисункиEnvelop C5A4A5B5B5LetterLetterA4A5B5LetterEnvelop C5EpsonCanonXeroxHPCanonHPXeroxEpsonCanonEpsonEpsonEpsonInternet ExplorerInternet ExplorerOperaInternet ExplorerMozilla FirefoxInternet ExplorerInternet ExplorerMozilla FirefoxOperaOperaOperaInternet ExplorerWindows MeWindows 2000Windows MeLinux SUSE 10.0Windows MeLinux RHEL 4.0Windows XPLinux SUSE 10.0Windows XPLinux RHEL 4.0Windows MeWindows 2000Таблица 2.
Минимальный тестовый набор для тестирования печати Web-страницы.Эти примеры обобщаются до понятия покрывающего набора глубины t. Нам не важныконкретные значения факторов или параметров, важно только, что они образуют конечноемножество. Поэтому можно считать, что если некоторый фактор имеет n возможныхзначений, ими являются числа от 0 до (n-1). Если заданы конечные наборы значений {vij} дляk параметров, i-й параметр может принимать ni различных значений, то покрывающимнабором глубины t <= k является любой набор из списков значений всех параметров {vif(j)},такой что любая комбинация возможных значений любых t параметров встречается в этомнаборе хотя бы один раз.Пары значений параметров покрываются наборами глубины 2, тройки — наборамиглубины 3, и т.д.000000011111112222222222200001110001111000000111110014234134012401223301234001210332030312302031211102002121212220020100122204014213432231010304232401Таблица 3.
Покрывающий набор, соответствующий показанному выше тестовому набору.Множество всех покрывающих наборов глубины t с k параметрами, принимающими n1,…, nk значений обозначается CA(t, n1, …, nk). Минимальное возможное количество рядов впокрывающем наборе обозначается CAN(t, n1, …, nk). Таблица 3 представляет пример набораиз CA(2, 3,⋅2,⋅5,⋅4,⋅3,⋅5) и показывает, что CAN(2, 3,⋅2,⋅5,⋅4,⋅3,⋅5) = 25.Если все параметры могут принимать одно и то же число значений, т.е.
n1 = n2 = …= nk =n, соответствующий покрывающий набор называется однородным. Множество однородныхнаборов CA(t, n, …, n) также обозначается CA(t; k, n), соответствующее минимальное числорядов в таком наборе — CAN(t; k, n).Выгода от использования покрывающих наборов определяется тем фактом, что чащевсего существуют покрывающие наборы небольшой мощности, в которых количество рядовзначительно меньше, чем число всех возможных комбинаций значений параметров.Покрывающие наборы могут эффективно использоваться в ситуациях, в которыхвыполнены следующие условия.•Есть некоторый вид воздействий на тестируемую систему, имеющий довольно многопараметров или факторов, влияющих на его работу.•Значения каждого из параметров можно разбить на (небольшое) конечное числоклассов, таких, что все существенные изменения в поведении системы происходяттолько из-за изменения класса одного из параметров.
Иногда просто каждый параметрможет принимать лишь значения из небольшого конечного множества.•Ошибки в поведении системы возникают в основном за счет сочетания небольшогоколичества факторов, определяемых значениями используемых параметров.•Дополнительной информации о зависимости между возможными ошибками и какимилибо другими условиями на значения параметров нет.В частности, покрывающие наборы могут использоваться для определения комбинацийучитываемых факторов при тестировании на основе разбиения на категории, на основедерева классификации. Также можно применять покрывающие наборы для сниженияколичества тестов при построении различных комбинаций альтернатив на основе грамматик.Техники построения однородных покрывающих наборовНаиболее хорошо развиты техники построения однородных покрывающих наборов.
Приколичестве значений всех параметров равном 2 есть даже простой алгоритм построенияминимального покрывающего набора глубины 2 (см. ниже).Для однородных наборов глубины 2, в которых число значений параметров равно степенипростого числа n = pk есть метод построения, основанный на арифметике конечных полей.Известно, что для каждой степени простого числа pk есть конечное поле с таким количествомэлементов, называемое полем Галуа GF(pk). Для k = 1, т.е. когда число элементов самоявляется простым, GF(p) изоморфно полю вычетов по модулю p — p.Рассмотрим таблицу из элементов поля GF(pk), построенную следующим способом.Первый столбец состоит из n2 значений, сгруппированных по n одинаковых значений.Каждую такую группу значений, равных i, будем называть i-м блоком. Первому столбцуприсваивается номер ∞.Второй столбец состоит из n2 значений, выстроенных так, что в каждом блокевстречаются все возможные n значений.
Значение, стоящее во втором столбце обозначимчерез j. Второму столбцу присвоим номер 0.Все остальные столбцы, с третьего по (n+1)-й, с номерами m = 1...(n-1) построим так,чтобы в блоке i в j-м ряду стояло значение, получаемое как m*i+j в арифметике GF(pk).Построенная так таблица будет покрывающим набором из множества CA(2; n+1, n), еслирассматривать каждую ее строку как набор значений n+1 параметров, соответствующихстолбцам.Пример для n = 5.Поскольку поле GF(5) изоморфно полю вычетов по модулю 5, складывать и умножатьчисла в обычной целочисленной арифметике, а в конце брать вместо результата его вычет помодулю 5.
Получаемый таким способом покрывающий набор представлен ниже.NN∞00000100123401012341201234230123434012344111122222333334444412340123401234012342340234013401240123340140123123403401240121234040123234010123340122340112340*012300000Пример для n = 4.В GF(4) сложение и умножение устроены иначе, чем по модулю 4. Поэтому сначалаприведем таблицы сложения и умножения в поле с 4-мя элементами.+0123NN00123110322230133210101232023130312Получаемый для n = 4 по описанной конструкции покрывающий набор представлен ниже.∞000011112222333300123012301230123101231032230132102012323013210103230123321010322301Таким образом можно строить однородные наборы глубины 2 для (n+1) параметра с nзначениями при n = pk. Этим показывается, что CAN(2; pk+1, pk) = p2k.Похожая конструкция существует для покрывающих наборов глубины t > 2 и n = pk > t.Для этого надо взять таблицу из n+1-го столбца и nt строк.
Каждую строку ее можносопоставить набору a0, a1, …, at-1 элементов из поля GF(pk). Столбцы так же обозначаются∞, 0, 1, ..., n-1. Элемент в определенной строке и определенном столбце вычисляется последующим правилам.∞0xa0a1...at-1 a0 at-1 ΣaixiЗдесь снова используются сложение и умножение из поля GF(pk).Для глубины 3 и n = 2k > t можно расширить эту таблицу на еще один столбец — двапервых столбца обозначим ∞1 и ∞2, остальные, как раньше, — 0, 1, ..., n-1.∞0∞10xa0a1a2 a0 a1 a2 ΣaixiТаким образом, оказывается, что CAN(t; pk+1, pk) = ptk при t < pk, а также CAN(3; 2k+2, 2k)= 23k при k > 1.Пример для n = 3, t = 3.NN000001002010011012020021022100101102110111112120121122200201202210211212220221222∞000000000111111111222222222001201201201201201201201201210121202011202010122010121202012201120120012201201120012Представленные выше конструкции позволяют строить однородные покрывающиенаборы для небольшого числа параметров (<= n+1), принимающих n значений для nявляющегося степенью простого числа.Посмотрим теперь, как можно строить покрывающие наборы для числа значений, неявляющегося степенью простого числа.