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

  • Последовательный перебор

  • Описание Преимущества Недостатки

  • Основы разработки тестовых сценариев Составляющие теста


    Скачать 0.91 Mb.
    НазваниеОсновы разработки тестовых сценариев Составляющие теста
    Дата16.09.2022
    Размер0.91 Mb.
    Формат файлаpptx
    Имя файла77405.pptx
    ТипСценарий
    #680129

    Основы разработки тестовых сценариев

    Составляющие теста

    Цель теста

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

    Окружение, данные, подготовка системы

    Сценарий: Шаги, оформленные таблицей или списком


        Действия
        Ожидаемые результаты

        Опциональная дополнительная информация:

        Снимки экрана
        Логи
        Файлы, сгенерированные в процессе теста

    Требования к хорошему тестовому сценарию


    Существует обоснованная вероятность выявления тестом дефекта.
    Определены входные данные.
    Определен ожидаемый результат, считаемый «хорошим».
    Воспроизводимость.
    Независимость: может исполняться независимо. Оставляет систему в том же состоянии.
    Тест должен быть наилучшим в своей категории.
    Экономичный. Нет избыточных шагов.


    Слишком длинный сценарий.
    Неполное, неправильное или непоследовательное описание условий тестирования или подготовки тестового окружения.
    Пропущенные «очевидные» шаги.
    Использование устаревшей информации о тестируемой системе.
    Неочевидно, кто должен выполнить действие: пользователь или система.
    Неясно, что является успешным результатом.
    Отсутствие очистки системы.


    Слишком длинный сценарий.
    Неполное, неправильное или непоследовательное описание условий тестирования или подготовки тестового окружения.
    Пропущенные «очевидные» шаги.
    Использование устаревшей информации о тестируемой системе.
    Неочевидно, кто должен выполнить действие: пользователь или система.
    Неясно, что является успешным результатом.
    Отсутствие очистки системы.

    Методы выбора входных значений

    Бессистемный выбор входных значений не позволит найти большое количество дефектов. Необходимо использование методов для выбора набора входных значений.


    Основные методы выбора входных значений:
    Перебор всех возможных значений,
     Случайные входные данные,
     Предугадывание ошибки,
    Построение графов «причина-следствие»,
    Использование классов эквивалентности,
     Исследование граничных значений.

    Метод перебора

    Перебираем все возможные значения входных параметров.

    Последовательный перебор всех возможных комбинаций входных значений.

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

    Случайные входные данные

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

    Часто используется в нагрузочном тестировании.

    Необходимо иметь метод определения корректности выхода.

    Пример: программа подсчета числа вхождений символа в строку

    Предугадывание ошибки

    Составление тестовых сценариев на основании опыта предыдущего тестирования.

    Используйте знания об известных проблемных местах вашего продукта.

    Знайте распространенные ошибки программирования и пишите тесты для их поиска.


    Некорректная работа с памятью: переполнение, чтение за пределами, утечки памяти.
     Отсутствие обработки некорректных входных данных.
     Ошибки работы с типами данных: переполнение, приведение, приближение.
     Ошибки многопоточности: deadlock, data race.
     Отсутствие инициализации/сброса переменных.
     Недостаток привилегий, недоступность ресурсов.
    ….

    Графы причина-следствие


    Выделяем причины и следствия в спецификациях.
    Строим граф, связывающий причины и следствия.
    Выписываем невозможные сочетания причин и следствий.
    Разрабатываем «таблицу решений», где в каждом столбце конкретная комбинация входов и выходов.
    Превращаем каждый столбец в тестовый сценарий. Преимущества и недостатки:
      Комбинаторный взрыв числа вариантов.
      Позволяет систематизировать процесс построения сценариев.
      Используются эвристики для уменьшения числа комбинаций

    Пример графа

    Классы эквивалентности


    Если от двух тестов ожидается одинаковый результат, – они эквивалентны.
    Группа тестов представляет класс эквивалентности, если:
    Все тесты предназначены для выявления одной и той же ошибки.
    Если один тест выявит ошибку, то и остальные это сделают.
    Если один из тестов не выявит ошибку, то и остальные этого не сделают.

    Дополнительные практические критерии:

    Тесты включают значения одних и тех же входных данных.
    Для проведения теста выполняются одни и те же операции программы.
    В результате тестов формируются значения одних и тех же выходных данных.
    Ни один из тестов не вызывает выполнения конкретного блока обработки ошибок либо выполнение этого блока вызывается всеми тестами.

    Классы эквивалентности - примеры

    Программа классификации треугольников.


        Равнобедренные треугольники.
         Равносторонние треугольники.
        Прямоугольные треугольники.
         Просто треугольники.

         Классы эквивалентности по некорректным входным данным:

        Отрезки не образуют треугольник.
        Числа больше sizeof(int).
        Строка, содержащая буквы.

    Классы эквивалентности - Примеры 

    Программа, говорящая дату следующего дня.


      День от 1 до 27;
      Последний день месяца;
      Последний день года;
      28 февраля високосного года.
      Месяц > 12;
      День > 31;
      Неверная строка.

    Поиск классов эквивалентности

    Построение классов эквивалентности – субъективный процесс. Общие рекомендации:


    Не забывайте о классах некорректных данных.  
    Формируйте классы в виде таблицы или плана.  
    Определите диапазоны числовых значений входных данных.  
    Проанализируйте варианты выбора из списков и меню.  
    Поищите переменные, значения которых должны быть равными.  
    Поищите классы значений, зависящих от времени.  
    Выявите группы переменных, совместно участвующих в конкретных вычислениях.  
    Посмотрите, на какие действия программа отвечает эквивалентными событиями.  
    Продумайте варианты среды тестирования.

    Граничное тестирование

    Граничное тестирование - применение


    Определяем границу класса эквивалентности.
    Проверяем значения, лежащие ровно на границе.
     Проверяем значения, лежащие максимально близко к границе с обоих сторон.
     Пример:

    При покупке более 100 единиц товара дается скидка 5%.

    Нужно проверить:

        100
        99
         101

    Оракулы

    Оракул – эвристический принцип или механизм идентификации потенциальной проблемы


    Оракулы – это эвристики. Они несовершненны и подвержены ошибкам
     Оракул лишь может указать нам на проблемное место, но не дать ответ, корректно ли поведение программы.

    Оракулы. Примеры-1


    Описание

    Преимущества

    Недостатки

    Нет оракула

    Не проверяем



    Можем



    Находим только

    (некомпетентный

    результаты. Просто

    использовать

    самые серьезные и

    человек)

    «исполняем пока не

    любые объемы

    видимые

    упадет»

    данных

    проблемы



    Полезно на



    Сложность

    начальных стадиях

    воспроизведения

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

    Нет оракула

    Человек выполняет



    Возможность



    Субъективность

    (компетентный

    тест, не зная

    нахождения

    результата

    человек)

    правильного

    широкого круга



    Плохо работает с

    результата.

    проблем

    неопытными

    Используется

    тестерами

    «здравый смысл»

    для определения

    правильности

    результата

    Идеальный оракул

    Механизм всегда



    Находит все типы



    Мифический

    дающий ответ о

    проблем

    объект. Не

    прохождении/провал



    Можем

    существует в

    е любого теста

    автоматизировать

    реальности

    все

    Оракулы. Примеры-2

    Оракулы. Примеры-3

    Оракулы. Примеры-4

    Оракулы. Примеры-5

    Оракулы. Примеры-6

    Оракулы. Примеры-7



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