Главная » Просмотр файлов » Тестирование черного ящика. Б. Бейзер (2004)

Тестирование черного ящика. Б. Бейзер (2004) (1186170), страница 24

Файл №1186170 Тестирование черного ящика. Б. Бейзер (2004) (Тестирование черного ящика. Б. Бейзер (2004).djvu) 24 страницаТестирование черного ящика. Б. Бейзер (2004) (1186170) страница 242020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 24)

4.3.3. Недетерминированные циклы Недетерминированные циклы отличаются от детерминированных тем, что количество проходов цикла неизвестно до его старта. Такое может произойти вследствие трех основных причин: это число неизвестно, обработка внутри цикла меняет переменную управления циклом (если она существует), внутри цикла обнаружено условие, вызывающее преждевременное прекращение цикла. 20 30 читать спедующую запись 30 40 обработат~ запис~ 40 20 Не Конец Файна (КФ) 50 КФ 50 продопшить оставшуюся час~ь подели В вышеприведенном коде мы не знаем, как много записей имеет файл, следовательно, процесс будет продолжаться, пока не будет достигнута запись КФ.

Этот пример уязвим в силу нескольких причин. Если файл содержит только запись КФ, тогда эта запись будет обработана с возможными пагубными последствиями, Другое слабое место проявляется в случае, если файл не содержит записей, даже записи КФ. Если программа точно реализует данную модель, с такими файлами цикл будет выполняться бесконечно. 20 30 1оор соптго1 - 1, пшах - 10 30 50 1оор сопсго1 > пшах 40 1оор соптго1 ч - пюах 102 Глава 4 ° Тестирование циклов 40 45 обработка цикла 45 46 1оор сопгго! 1оор сопгго! + 1ШТ(3*ДАИО) 46 ЗО 1оор сопСго1 - 1оор сопвго! + 1 50 продопшить оставшуюся часть недели При обработке перехода 45-46 вышеприведенной модели из 1оор соптго1 каждый раз вычитается случайное число от 0 до 2.

Я выбрал этот очевидный пример, но цели можно достигнуть и без использования случайных чисел. Дело в том, что мы не можем определить, когда выполнение этого цикла будет закончено,— если вообще когда-нибудь будет. Несмотря на то, что может показаться, будто конструкция детерминирована, она, тем не менее, является недетерминированной. 20 30 1оор сопвго1 - 1 пшах = 10 ЗО 50 1оор сопвго! > псах 40 1оор сопвго1 < - плюх 40 45 обработка цикла 45 47 значение поля = 17 46 значение поля и 17 46 ЗО 1оор сопвго! 1оор солтго1 ь 1 47 30 1оор сопвго1 - плюх + 1 50 продолжить оставшуюся часть подели Несмотря на то, что вышеприведенный фрагмент имеет вид детерминированного цикла, он таким не является.

Предикат в узле 45 проверяет величину определенного поля. Если эта величина равна 17, 1оор соптго1 принимает значение, вызывающее прекращение выполнения цикла. Если значение поля не равно 17, цикл последовательно выполняется до значения пюах. В последнем случае цикл является детерминированным.

Мне не обязательно изменять переменную управления циклом, чтобы добиться этого. Например, следующий фрагмент делает то же самое без изменения переменной управления циклом. 20 30 1оор сопвго! - 1 плах = 10 30 50 1оор сопгго! > пюах 40 1оор сопвго! < = пюах 40 45 обработка цикла 45 50 Значение поля = 17 46 Значение поля 17 46 30 1оор сопвго! - 1оор сопгго1 + 1 50 продолжить оставшуюся часть модели Процессы с недетерминированными циклами включают; сортировку и записей, поиск файла, получение файла по каналу связи, решение системы уравнений, объединение двух файлов. Различие между детерминированным и недетерминированным циклами чрезвычайно важно. Недетерминированные циклы, как правило, чаще содержат ошибки по сравнению с детерминированными и потому должны более тщательно тестироваться.

В языках структурного программирования конструкция ГОН (например, ГОК 1 = 1 ьо 1оораах 00 ) предназначенадля детерминированных циклов. Наоборот, конструкция ИН11.Е . 00 предназначена для недетерминированных циклов. Цикл ГОЙ имеет явную переменную управления циклом, цикл НН11.Е не имеет.

Поскольку циклы ГОК могут быть недетерминированными, а циклы ИН11.Е детерминированными, большинство программистов полагает, что выбор между ними — вопрос сти- 4.3. Отношения и модель 103 листики. Это приводит к ошибкам, в которых недетерминированные процессы реализованы прн помощи детерминированных конструкций, а детерминированные— при помощи недетерминированных. И тот, и другой случай сбивают с толку, повышают вероятность ошибки и потому перспективны для выявления.

4.3.4. Вложенные циклы Вложенные циклы являются проблемными (то есть часто содержат ошибки). Они содержат, конечно, обычные ошибки, которые можно ожидать в единичном цикле (например, потерю первого варианта, слишком раннее прекращение, слишком позднее прекращение, бесконечное выполнение), но также и ошибки, возникающие в результате одновременного достижения условий прекратцения в обоих циклах. Например, рассмотрим следующий фрагмент кода. 30 30 оцвег 1оор сопбго1 - 1. оцтегшах - 10 30 40 тппег 1оор сопсго1 - 1. тппегшах = !00 40 45 обработка внутреннего цикла 45 30 тппег 1оор соптго1 < тппегшах. тппег 1оор соптго1- тппег 1оор сопсго1 + 1 50 тппег 1оор сопсго1 > - тппегшах 50 55 обработка внешнего цикла 55 30 оцтег 1оор сонпв < оцтегшах, онтег 1оор соптго1 = онтег 1оор соптго1 + 1 бб оцтег 1оор сонпс > - оцтегпах 60 продолшить оставшуюся наст> подели Что здесь произойдет при оибег 1оор сопбго1 = 10 и 1ппег 1оор сопбго1 100, а также при близких им значениях? 4.3.5.

Неструктурированные (ужасные) циклы Ужасньге циклы имеют место в случаях, когда происходит прыжок (переход) из середины или прыжок в середину цикла. На следующем рисунке представлена эта печально известная структура, поскольку в ней присутствуют оба типа переходов. Связь 30 — 1О является прыжком из цикла 20 — 30 — 40 — 20, в то время как связь 40 — 20 представляет собой скачок в цикл 10-20-30-10. Циклы со смешанной проверкой не слишком ужасны, поскольку в них происходит скачок из середины цикла. Другая проблема циклов со смешанной проверкой заключается в том, что входной узел цикла для первой итерации отличается от входных узлов цикла для последующих итераций.

Программисты должны стараться избегать создания ужасных циклов на язы- ках структурного программирования, но такие циклы часто встречаются в старом 104 Глава 4 ° Тестирование циклов программном обеспечении, написанном на языке ассемблера и более старых языках программирования. Для ужасных циклов нет хороших тестов. Как вы управитесь с ними, зависит от того, откуда оии взялись. Если они следствие способа, с помощью которого вы построили модель, тогда смоделируйте ее заново, используя структурированные циклы. Ужасные циклы могут быть корректной моделью поведения приложения, особенно если, как в случае тестирования потока транзакций, вы создаете модель человеческого поведения. Например, если вы моделируете поведение человека, набирающего междугородний телефонный номер, естественно использовать цикл для набора цифр.

Междугородний телефонный вызов требует набора 11 цифр, Тогда вы создаете следующий модельный цикл. 10 20 ад!с соцпс . 0. сад!с шах - 11 20 30 бтдтг соцпг < - бздят шах, Ф ды сопит - рдтт сопит + 1 50 Фют соцпг > Отряс шах. выйти из цикла 30 20 набор цифры 50 продолжить дальше надень Люди не могут и не будут вести себя структурно. Например, они могут сразу выйти из цикла, поняв, что совершили ошибку при наборе номера. 20 Шдтт соцпг - 0. щдтг шах = 11 20 30 Отют соцпг < = ЩШС шах.

ад!С санит - Щдтт сопле + ! 50 Фд!т соцпг > щщ С шах. выйти из цикла 30 40 набор цифры 40 20 цифра набрана успешно 10 цифра не набрана. трубка вешаЕтся и нонер набирается заново 50 продолжить дальше нодель Если скверная структура цикла должным образом моделирует ситуацию, тогда у вас нет другого выбора, кроме как смоделировать ее именно так.

Однако вы должны протестировать подобные циклы более тщательно, чем обычно, поскольку такие ситуации чаще подвержены неправильной реализации, особенно в специальных случаях, порождающих ужасные циклы. 4.4. Методы 4.4.1. Критические тестовые значения Рассмотрим общую детерминированную модель цикла. 1О 20 1оор сопгго! - згагтча1.

!теснах - цррегча1 20 30 1оор сопгго1 > тгегшах 40 1оор сон!го! < - тгегшах 30 20 1оор ргосезз, !оор соптго1 - !оор сопело! + тпсгеча1 40 продолжить оставшуюся часть подели Этот цикл определяется тремя значениями: зсагсча! — начальное значение переменной управления циклом.

цррегча1 — конечное значение переменной управления циклом. 4Я. Методы 105 1псгеиа1 — величина, на которую переменная управления циклом будет возрастать при каждом прохождении цикла. Критические тестовые значения — комбинация величин этих трех чисел, которые, как показывает опыт, особенно часто вызывают ошибки, плюс, в добавление к ним, нормальный или типичный вариант. Мы приводим ~сотовые варианты в самом общем виде. Специфические особенности для разных типов циклов будут обсуждаться в последующих разделах. Обход.

Любой набор величин, вызывающий немедленный выход из цикла. Один проход. Величины, приводящие к тому, что цикл выполняется ровно один раз. Два прохода. Величины, приводящие к тому, что цикл выполняется ровно два раза. Типичное число проходов. Типичное число итераций. Максимум: Максимальное число разрешенных итераций. Мах + 1.

На единицу больше разрешенного максимума. Мах — 1. На единицу меньше разрешенного максимума. Мпк Заданный минимум. М1п — 1. На единицу меньше заданного минимума. Ноль. Обсуждается ниже. Отрицательное число проходов. Обсуждается ниже. Заметьте, мы говорим о числе раз повторения цикла, а не о значениях переменной управления циклом (если она существует). Например, в цикле РОМ ! 0 со 8 5ТЕР 2 исходное значение переменной управления циклом 1 равно О, но цикл будет выполнен не девять раз, а только пять, потому что переменная управления циклом при каждом прохождении цикла увеличивается на два. Многие из упомянутых вариантов могут перекрываться. Например, если значение минимума равно О, тогда имеют место следующие тождества: М!и - ! - Оарицааепьное число проходов М~п Обход М!п + ! - Один проход Аналогично, если значение минимума равно 1: Мдп - ! Обход М!и Один проход Мап + ! - Два прохода Вариант нуля может оказаться эквивалентным варианту обхода.

Характеристики

Тип файла
DJVU-файл
Размер
3,83 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее