Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка ТП.docx
Скачиваний:
349
Добавлен:
02.06.2015
Размер:
2 Мб
Скачать
☆
  • •A=1,B=0, Х= 1 {покрывает 4, 8}.

  • Таблица Л5.4.

  • Результаты тестирования методом комбинаторного покрытия условий

    • Тест

    • Ожидаемый

    • результат

    • Фактический результат

    • Результат тестирования

    • A = 2, В=0,Х=4

    • Х=3

    • Х=3

    • Неуспешно

    • A= 2, В=1,Х=1

    • Х=2

    • Х= 1,5

    • Успешно

    • A = 0,5, b=0,x=2

    • X=3

    • Х=4

    • Успешно

    • A=1, В=0,Х= 1

    • X=1

    • X=1

    • Неуспешно

  • Функциональное тестированиеили тестирование по методом четного ящика базируется на том, что все тесты основаны на спецификации системы или ее компонентов. Поведение системы определяется изучением ее входных и соответствующих выходных данных.

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

  • Методология составления тестов "чёрного ящика"

  • Эквивалентное разбиение

  • Анализ граничных значений

  • Применение функциональных диаграмм

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

  • Эквивалентное разбиение

  • Тестирование программы ограничивается использованием небольшого подмножества всех возможных входных данных. Тогда, конечно, хотелось бы выбрать для тестирования самое подходящее подмножество (т. с. подмножество с наивысшей вероятностью обнаружения большинства ошибок). Правильно выбранный тест этого подмножества должен обладать двумя свойствами:

  • уменьшать, причем более чем на единицу, число других тестов, которые должны быть разработаны для достижения заранее определенной цели "приемлемого" тестирования;

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

  • Указанные свойства, несмотря на их кажущееся подобие, описывают два различных положения. Во-первых, каждый тест должен включать столько различных входных условий, сколько это возможно, с тем, чтобы минимизировать общее число необходимых тестов. Во-вторых, необходимо пытаться разбить входную область программы на конечное число классов эквивалентности так, чтобы можно было предположить (конечно, не абсолютно уверенно), что каждый тест, являющийся представителем некоторого класса, эквивалентен любому другому тесту этого класса. Иными словами, если один тест класса эквивалентности обнаруживает ошибку, то следует ожидать, что и все другие тесты этого класса эквивалентности будут обнаруживать ту же самую ошибку. Наоборот, если тест не обнаруживает ошибки, то следует ожидать, что ни один тест этого класса эквивалентности не будет обнаруживать ошибки (в том случае, когда некоторое подмножество класса эквивалентности не попадает в пределы любого другого класса эквивалентности, так как классы эквивалентности могут пересекаться). Эти два положения составляют основу методологии тестирования по принципу черного ящика, известной как эквивалентное разбиение. Второе положение используется для разработки набора "интересных" условий, которые должны быть протестированы, а первое - для разработки минимального набора тестов, покрывающих эти условия. Примером класса эквивалентности для программы о треугольнике является набор "трех равных чисел, имеющих целые значения, большие нуля". Определяя этот набор как класс эквивалентности, устанавливают, что если ошибка не обнаружена некоторым тестом данного набора, то маловероятно, что она будет обнаружена другим тестом набора. Иными словами, в этом случае время тестирования лучше затратить на что-нибудь другое (на тестирование других классов эквивалентности). Разработка тестов методом эквивалентного разбиения осуществляется в два этапа:

  1. выделение классов эквивалентности

  2. построение тестов.

  • Выделение классов эквивалентности

  • Классы эквивалентности выделяются путем выбора каждого входного условия (обычно это предложение или фраза в спецификации) и разбиением его на две или более групп.

  • Заметим, что различают два типа классов эквивалентности: правильные классыэквивалентности, представляющие правильные входные данные программы, инеправильные классы эквивалентности, представляющие все другие возможные состояния условий (т. е. ошибочные входные значения). При этом существует ряд правил:

  1. Если входное условие описывает область значений (например, "целое данное может принимать значения от 1 до 999"), то определяются один правильный класс эквивалентности (1 <= значение целого данного <= 999) и два неправильных (значение целого данного < 1 и значение целого данного > 999).

  2. Если входное условие описывает множество входных значений и есть основание полагать, что каждое значение программа трактует особо (например, "известны способы передвижения на АВТОБУСЕ, ГРУЗОВИКЕ, ТАКСИ, ПЕШКОМ или МОТОЦИКЛЕ"), то определяется правильный класс эквивалентности для каждого значения и один неправильный класс эквивалентности (например, "НА ПРИЦЕПЕ").

  3. Если входное условие описывает ситуацию "должно быть" (например, "первым символом идентификатора должна быть буква"), то определяется один правильный класс эквивалентности (первый символ - буква) и один неправильный (первый символ - не буква).

  4. Если есть любое основание считать, что различные элементы класса эквивалентности трактуются программой неодинаково, то данный класс эквивалентности разбивается на меньшие классы эквивалентности.