Главная страница
Навигация по странице:

  • 9.5 Предположение об ошибке

  • 10 ПРИМЕНЕНИЕ ТЕХНИК 10.1 Эквивалентное разбиение и граничное условие

  • Получены следующие подклассы, по которым можно начинать тестировать

  • 10.2 Попарное тестирование

  • Тип носителя Скорость записи Файловая система Мультсессия Объем данных

  • Скорость записи Файловая система Мультсессия Объем данных

  • 10.3 Попарное тестирование с помощью PICT

  • Тестирование ПО. Тестирование. Реферат актуальность. Основной всплеск интереса к теме тестирования пришёлся на 90е годы и начался в сша. Бурное развитие систем автоматизированной разработки


    Скачать 2.21 Mb.
    НазваниеРеферат актуальность. Основной всплеск интереса к теме тестирования пришёлся на 90е годы и начался в сша. Бурное развитие систем автоматизированной разработки
    АнкорТестирование ПО
    Дата17.01.2023
    Размер2.21 Mb.
    Формат файлаpdf
    Имя файлаТестирование.pdf
    ТипРеферат
    #890900
    страница7 из 12
    1   2   3   4   5   6   7   8   9   ...   12

    2
    Значение 1.1
    Значение 2.2
    Значение 3.1
    3
    Значение 1.2
    Значение 2.1
    Значение 3.1
    4
    Значение 1.2
    Значение 2.2
    Значение 3.1
    5
    Значение 1.1
    Значение 2.1
    Значение 3.2
    6
    Значение 1.2
    Значение 2.1
    Значение 3.2
    7
    Значение 1.1
    Значение 2.2
    Значение 3.2
    Зеленым выделены уникальные пары в таблице. Значения выделенные белым не являются необходимыми для перебора всех пар в таблице, поэтому могут быть заменены на любое другое значение. Заменив их можно оптимизировать тесты, добавив проверку пар из 5, 6 и 7 строк во вторую и третью строки. В таблице 9.4 показан результат оптимизации.
    Таблица 9.4 - Результат оптимизации
    #
    Параметр 1
    Параметр 2
    Параметр 3
    1
    Значение 1.1
    Значение 2.1
    Значение 3.1
    2
    Значение 1.1
    Значение 2.2
    Значение 3.2
    3
    Значение 1.2
    Значение 2.1
    Значение 3.2
    4
    Значение 1.2
    Значение 2.2
    Значение 3.1
    Оптимизация даже такого малого набора параметров не так проста. При этом сложность задачи возрастает пропорционально росту числа параметров.
    9.5 Предположение об ошибке
    Программист с большим опытом выискивает ошибки без всяких методов, но при этом он подсознательно использует метод предположения об ошибке. Данный метод в значительной степени основан на интуиции. Основная идея метода состоит в том, чтобы составить список, который перечисляет возможные ошибки и ситуации, в которых эти ошибки могли проявиться.
    Потом на основе списка составляются тесты.

    55
    10 ПРИМЕНЕНИЕ ТЕХНИК
    10.1 Эквивалентное разбиение и граничное условие
    Применение данных методов будет рассмотрено на примере приложения, которое на вход принимает строку, но по смыслу данная строка должна интерпретироваться как число. На рисунке
    10.1 показано это приложение, которое является онлайн-калькулятором для перевода единиц времени.
    Рисунок 10.1 - Онлайн-калькулятор
    Все возможные строки можно разделить на два больших класса – “числа” и “не числа”. Но данным классам можно задать другие, более длинные, но при этом более точные названия:
     множество строк, которые программа интерпретирует как числа;
     множество строк, которые программа не может интерпретировать как числа.
    В данной формулировке становится ясно, что программа на вход получает строку, которая по каким-то правилам преобразуется в число. Если это преобразование прошло успешно – полученное число используется в вычислениях. А если преобразовать строку в число не удалось – получаем информацию об этом либо в виде сообщения о возникшей проблеме, либо в виде бессмысленного результата вычислений.
    Можно определить, как именно преобразователь времени ведёт себя в той и в другой ситуации, для этого достаточно подать на вход какое-нибудь значение, которое в должно интерпретироваться как число, например, “5”. На рисунке 10.2 изображен ввод входящего значения.

    56
    Рисунок 10.2 - Входящее значение 5 минут
    А также значение, которое точно не является числом, например, "test". На рисунке 10.3 изображен ввод входящего нечислового значения.
    Рисунок 10.3 - Входящее значение не число
    Наблюдается случай, когда невалидное входное значение приводит к бессмысленному результату (NaN означает “Not a Number”).
    Нужно определить, какие строки программа будет интерпретировать как числа, то есть выделить в больших классах подклассы меньшего размера, но зато описанные конструктивно.
    Строка, представляющая собой последовательность цифр, интерпретируется как целое
    число.
    Требуется понять, какой длины последовательность цифр интерпретируется как число. Чтобы это сделать, необходимо применить технику разбиения на подобласти. Минимальная длина последовательности – ноль. Максимальная длина – "максимально возможная".
    В данном приложении не указано никаких ограничений на размер поля ввода. Есть несколько ситуаций:
     возможно браузер накладывает какое-нибудь ограничение, однако тестировщику про это ничего не известно, если оно есть – в разных браузерах оно разное;

    57
     если введённые данные передаются на сервер в виде GET-запроса, возможно, имеется ограничение на длину запроса – согласно стандарту RFC 2068 они должны поддерживать не менее 255 байтов, но все реально способны обрабатывать запросы большей длины, и это зависит от браузера и от веб-сервера.
    Конвертер, который используется в качестве примера, реализован на языке JavaScript, на сервер никаких данных не отправляется, все вычисления производятся внутри браузера. Google
    Chrome успешно справился со строкой, состоящей из 10 000 000 девяток, строку из 100 000 000 девяток он обработать уже не может – появляется ошибка с предложением перегрузить страницу.
    Следовательно, между этими значениями и находится максимальная длина. Поэтому нужно уточнить подкласс:
    Строка, представляющая собой последовательность цифр, интерпретируется как целое
    число, если длина строки не превышает некоторое Максимальное Значение.
    На рисунке 10.4 изображена ситуация на существенно более коротких последовательностях.
    Рисунок 10.4 - Последовательность из 1000 девяток
    При вычислениях возникло переполнение, однако Infinity – это не NaN, то есть согласно описанном выше считается, что такая последовательность (а также и более длинные последовательности цифр) может считаться числом.
    Последовательность нулевой длины – это пустая строка. Приложение интерпретирует пустую строку как число ноль. На рисунке 10.5 изображена данная интерпретация.
    Рисунок 10.5 - Последовательность нулевой длины
    Первый подкласс, последовательность цифр, создан. Второй подкласс - последовательность не цифр. "Не цифрами" могут являться пробелы в начале и в конце, а также ведущие нули. Они обрезаются, а оставшаяся строка интерпретируется как число. Поэтому:

    58
    Строка, интерпретируемая как число, также интерпретируется как число, если добавить в
    начале некоторое количество нулей, при этом ведущие нули игнорируются,
    Строка, интерпретируемая как число, также интерпретируется как число, если добавить в
    начале или в конце некоторое количество пробелов, при этом все пробелы игнорируются.
    Во-первых, важно не забывать про максимальное значение длины, если добавить слишком много нулей или пробелов, строка перестанет быть числом, даже если эти пробелы добавлялись к небольшому числу. Во-вторых, добавлять сначала нули, а потом пробелы можно, а наоборот нельзя. На рисунке 10.6 изображена данная ситуация.
    Рисунок 10.6 - Значение с пробелом
    На рисунке 10.7 изображен следующий подкласс, который будет являться отрицательным числом.
    Строка, интерпретируемая как число, также интерпретируется как число, если добавить в
    начало знак минус или плюс.
    Рисунок 10.7 - Отрицательное значение
    Новый подкласс - нецелое число:
    Строка, состоящая из двух неразрывных цепочек цифр, разделённых десятичной точкой,
    интерпретируется как число.
    Для нецелых чисел можно применить технику разбиения на подобласти к количеству значащих цифр, или к количеству знаков после запятой, в зависимости от того, как интерпретируется понятие точности в конкретном приложении. Но при этом следует отметить, что для чисел с плавающей точкой техника разбиения на подобласти работает плохо т.к. JavaScript реализует стандарт IEEE-754.

    59
    На рисунке 10.8 изображен следующий подкласс, который будет представлять собой не последовательность цифр, но интерпретироваться как число, например, число 120.
    Строка, состоящая из числа, за которым следует символ ‘e’, за которым следует целое
    число, интерпретируется как число.
    Рисунок 10.8 - Число с символом 'e'
    Строка, состоящая из символов ‘0x’, за которыми следует неразрывная последовательность
    шестнадцатеричных цифр, интерпретируется как шестнадцатеричное целое число, которое
    изображено на рисунке 10.9
    Рисунок 10.9 - Шестнадцатеричное целое число
    Получены следующие подклассы, по которым можно начинать тестировать
    приложение:
    1) строка, представляющая собой последовательность цифр, интерпретируется как целое число, если длина строки не превышает некоторое Максимальное Значение;
    2) строка, интерпретируемая как число, также интерпретируется как число, если добавить в начале некоторое количество нулей, при этом ведущие нули игнорируются;
    3) строка, интерпретируемая как число, также интерпретируется как число, если добавить в начале или в конце некоторое количество пробелов, при этом все пробелы игнорируются;
    4) строка, интерпретируемая как число, также интерпретируется как число, если добавить в начало знак минус или плюс;
    5) строка, состоящая из двух неразрывных цепочек цифр, разделённых десятичной точкой, интерпретируется как число;

    60 6) строка, состоящая из числа, за которым следует символ ‘e’, за которым следует целое число, интерпретируется как число;
    7) строка, состоящая из символов ‘0x’, за которыми следует неразрывная последовательность шестнадцатеричных цифр, интерпретируется как шестнадцатеричное целое число.
    10.2 Попарное тестирование
    Метод эффективен на поздних этапах разработки, либо дополненный основными функциональными тестами. Если проводится конфигурационное тестирование, то прежде чем использовать попарное тестирование следует убедиться, что основной сценарий функционирует на всех операционных системах с параметрами по умолчанию (build verification test). Это значительно облегчит локализацию будущих багов, ведь при парном тестировании в одном тесте фигурирует множество параметров со значениями не по умолчанию, каждый из которых может стать причиной сбоя и его локализация в этом случае весьма затруднительна. В случае провала BVT следует отказаться от использования метода парного тестирования, так как многие тесты будут провальными, а исключение даже одного теста влечет за собой потерю как правило нескольких пар и смысл использования метода теряется. Поэтому метод следует использовать лишь на стабильном функционале, когда текущие тесты уже теряют свою эффективность.
    Для того чтобы воспользоваться методом необходимо выполнить несколько простых шагов:
    Определиться с функциональностью, которую нужно проверить
    Для этого необходимо разделить функциональность на части: компоненты, функции, сценарии. Функциональность небольшой программы, например по записи дисков, упрощенно можно представить в виде всего двух сценариев: запись диска, стирание диска. Рассмотрим на примере "запись диска" и перейдем к следующему шагу.
    Исследовать выбранный сценарий и выявить его параметры и их значения
    На данном этапе нужно выявить параметры сценария, который могут повлиять на его работу.
    В качестве параметров могут выступать как настройки самой программы, так и внешние факторы.
    Упрощенно, параметры и их значения при записи диска можно представить в виде таблицы
    10.1.
    Таблица 10.1 - Параметры их значения при записи диска
    Тип носителя Скорость записи Файловая система
    Мультсессия
    Объем данных
    CD
    2
    ISO
    Нет
    100 Mb
    DVD
    4
    UDF
    Начать
    700 Mb
    8
    UDF/ISO
    Продолжить
    4,7 Gb
    16 24

    61
    Продолжение таблицы 10.1
    Тип носителя Скорость записи Файловая система
    Мультсессия
    Объем данных
    36 52
    Если внимательно посмотреть на таблицу, то можно обратить внимание, что параметр
    «Скорость записи» имеет значения, недопустимые для DVD. Для этого нужно разделить таблицу на две: таблица 10.2 и таблица 10.3. Стоит учитывать, что на практике параметров в этом сценарии гораздо больше, и несостыковок было бы значительно больше.
    Таблица 10.2 - Параметры и их значения для CD
    Скорость записи
    Файловая система
    Мультсессия
    Объем данных
    2
    ISO
    Нет
    100 Mb
    4
    UDF
    Начать
    700 Mb
    8
    UDF/ISO
    Продолжить
    16 24 36 52
    Таблица 10.3 - Параметры и их значения для DVD
    Скорость записи
    Файловая система
    Мультсессия
    Объем данных
    2
    ISO
    Нет
    100 Mb
    4
    UDF
    Начать
    4,7 Gb
    8
    UDF/ISO
    Продолжить
    16 24
    При выборе параметров и значений нужно помнить, что негативные тесты не стоит включать в таблицу – в одном тесте может проверяться несколько пар, а в случае негативного теста будет выполнена проверка лишь одного параметра, в результате некоторые пары могут остаться непроверенными. По этой причине в данном примере отсутствуют значения объёма данных, равные нулю и превышающие объем диска. Если их добавить, то в результате использования метода может получиться кейс в котором на нулевом объёме данных будет проверяться к примеру пара Файловой системы ISO и начала мультисесии. В результате, успешно убедившись в корректной обработке попытки записи пустого диска, мы упустим проверку пары ISO-начать мультисесию.

    62
    Если будет предпринята попытка инкрементально дополнить тестовое покрытие – количество тестов увеличиться несопоставимо больше. Забегая вперед, для данного примера с записью DVD методом перебора пар получится 17 тестов. Решив дополнить исходную таблицу всего одним значением, например скоростью записи DVD 32х, увеличится общее число тестов на 8, так как в стремление сохранить целостность метода придется вынуждено перебирать это значение со всеми значениями других параметров. Целесообразно дополнить тестовое покрытие одним-двумя тестами на проверку нового значения составленными вручную, либо заново создать таблицу, как это описано в следующем шаге.
    Применить алгоритм, составляющий оптимальное число тестов с полным перебором пар.
    Составлять тесты по методу парного тестирования без использования технических средств крайне сложно, поэтому чтобы упростить себе жизнь, следует воспользоваться программными решениями. В качестве примера будет использоваться Allpairs.
    Allpairs - программа, подбирающая уникальные пары для входящего набора данных. Работает из командной строки.
    В качестве входных данных для программы используется .txt файл с таблицей параметров, столбцы которой разделены табуляцией. Для создания такого файла удобнее всего использовать
    MS Excel в котором есть возможность сохранять “текстовые файлы с разделителями табуляции
    (*.txt)”.
    Имея исходный файл, необходимо запустить консоль и набрать там строку, которая изображена на рисунке 10.10.
    Рисунок 10.10 - Запуск Allpairs
    Где:
     c:\pairs\allpairs.exe - полный путь к приложению allpairs.exe;
     test.txt – путь к исходному файлу с таблицей параметров;
     re.txt - путь и имя файла, который будет создан в результате работы программы.
    Результирующий файл будет содержать в себе готовый перечень проверок. В результате, взяв таблицу с параметрами для DVD, получается следующий перечень тестов, указанный в таблице
    10.4.
    «

    » означает, что вместо указанного значения может быть использовано любое, так как оно не составляет пары в данном тесте.

    63
    Таблица 10.4 - Результат Allpairs для DVD
    #
    Скорость записи
    Файловая система
    Мультсессия
    Объем данных
    1 2
    ISO
    Нет
    100 Mb
    2 2
    UDF
    Начать
    4,7 Gb
    3 4
    ISO
    Начать
    100 Mb
    4 4
    UDF
    Нет
    4,7 Gb
    5 8
    ISO
    Продолжить
    4,7 Gb
    6 8
    UDF
    Продолжить
    100 Mb
    7 16
    UDF/ISO
    Нет
    100 Mb
    8 16
    UDF/ISO
    Начать
    4,7 Gb
    9 24
    UDF/ISO
    Продолжить
    100 Mb
    10 24
    ISO
    Нет
    4,7 Gb
    11 2
    UDF/ISO
    Продолжить
    4,7 Gb
    12 4
    UDF/ISO
    Продолжить
    100 Mb
    13 8
    UDF/ISO
    Начать
    100 Mb
    14 16
    UDF
    Продолжить
    100 Mb
    15 24
    UDF
    Начать
    100 Mb
    16 8
    ISO
    Нет
    4,7 Gb
    17 16
    ISO
    Начать
    4,7 Gb
    Если перебирать все пары последовательно: все значения скорости записи со всеми файловыми системами, плюс все значения скорости записи со всеми значениями мультисессии, и так далее до полного перебора всех пар значений получился 61 теста. Это наглядно демонстрирует возможности оптимизации
    Получив такую таблицу тестировщик имеет практически готовые тесты: он знает сценарий, а также значения параметров, которые задаются при его прохождении. Поэтому уже в текущем виде тесты пригодны к выполнению.
    В таблице 10.5 содержится результат для таблицы с параметрами для CD.

    64
    Таблица 10.5 - Результат Allpairs для CD
    #
    Скорость записи
    Файловая система
    Мультсессия
    Объем данных
    1 2
    ISO
    Нет
    100 Mb
    2 2
    UDF
    Начать
    700 Mb
    3 4
    ISO
    Начать
    100 Mb
    4 4
    UDF
    Нет
    700 Mb
    5 8
    ISO
    Продолжить
    700 Mb
    6 8
    UDF
    Продолжить
    100 Mb
    7 16
    UDF/ISO
    Нет
    100 Mb
    8 16
    UDF/ISO
    Начать
    700 Mb
    9 24
    UDF/ISO
    Продолжить
    100 Mb
    10 24
    ISO
    Нет
    700 Mb
    11 36
    UDF
    Начать
    100 Mb
    12 36
    UDF/ISO
    Продолжить
    700 Mb
    13 52
    ISO
    Начать
    100 Mb
    14 52
    UDF
    Нет
    700 Mb
    15 2
    UDF/ISO
    Продолжить
    100 Mb
    16 4
    UDF/ISO
    Продолжить
    700 Mb
    17 8
    UDF/ISO
    Нет
    100 Mb
    18 16
    ISO
    Продолжить
    700 Mb
    19 24
    UDF
    Начать
    100 Mb
    20 36
    ISO
    Нет
    100 Mb
    21 52
    UDF/ISO
    Продолжить
    100 Mb
    22 8
    UDF
    Начать
    700 Mb
    23 16
    UDF
    Продолжить
    100 Mb
    Итого: 23 теста, против 87, если выполнять полный перебор параметров.
    10.3 Попарное тестирование с помощью PICT
    PICT программа, позволяющая генерировать компактный набор значений тестовых параметров, который представляет собой все тестовые сценарии для всестороннего комбинаторного покрытия пользовательских параметров. К примеру, у пользователя есть следующие параметры для тестирования, который указан в таблице 10.6.

    65
    Таблица 10.6 - Набор данных для тестирования
    1   2   3   4   5   6   7   8   9   ...   12


    написать администратору сайта