Главная » Просмотр файлов » Калайда В.Т., Романенко В.В. Технология разработки программного обеспечения (2007)

Калайда В.Т., Романенко В.В. Технология разработки программного обеспечения (2007) (1095890), страница 20

Файл №1095890 Калайда В.Т., Романенко В.В. Технология разработки программного обеспечения (2007) (Калайда В.Т., Романенко В.В. Технология разработки программного обеспечения (2007)) 20 страницаКалайда В.Т., Романенко В.В. Технология разработки программного обеспечения (2007) (1095890) страница 202018-12-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

6.6 — Машинный код программы, изображенной на рис. 6.56.4.1.5 Комбинаторное покрытие условийКритерием, который решает эти и некоторые другиепроблемы, является комбинаторное покрытие условий. Он требует создания такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении и во всех точках входа выполнялись, по крайней мере, один раз. Например, вприведенной ниже последовательности операторов существуютчетыре ситуации, которые должны быть протестированы:NOTFOUND = ’1’ В;/* поиск в таблице */DO I=1 ТО TABSIZE WHILE (NOTFOUND);/* последовательность операторов, реализующаяпроцедуру поиска */END;1291. ITABSIZE и NOTFOUND есть «истина».2.

ITABSIZE и NOTFOUND есть «ложь» (обнаружениенеобходимого искомого значения до достижения концатаблицы).3. I>TABSIZE и NOTFOUND есть «истина» (достижениеконца таблицы без обнаружения искомого значения).4. I>TABSIZE и NOTFOUND есть «ложь» (искомое значение является последней записью в таблице).Легко видеть, что набор тестов, удовлетворяющий критерию комбинаторного покрытия условий, удовлетворяет также икритериям покрытия решений, покрытия условий и покрытиярешений/условий.По этому критерию в программе на рис. 6.5 должны бытьпокрыты тестами следующие восемь комбинаций:1. A > 1, B = 02. A > 1, B ≠ 03.

A ≤ 1, B = 04. A ≤ 1, B ≠ 05. А = 2, Х > 16. A = 2, X ≤ 17. A ≠ 2, Х > 18. A ≠ 2, X ≤ 1Заметим, что комбинации 5–8 представляют собой значения второго оператора IF. Поскольку Х может быть изменено довыполнения этого оператора, значения, необходимые для егопроверки, следует восстановить исходя из логики программы стем, чтобы найти соответствующие входные значения.Для того чтобы протестировать эти комбинации, необязательно использовать все восемь тестов. Фактически они могутбыть покрыты четырьмя тестами.

Приведем входные значениятестов и комбинации, которые они покрывают:A=2, B=0, Х=4 — покрывает 1, 5;А=2, B=1, Х=1 — покрывает 2, 6;А=1, B=0, Х=2 — покрывает 3, 7;A=1, B=1, X=1 — покрывает 4, 8.То, что четырем тестам соответствуют четыре различныхпути на рис. 6.5, является случайным совпадением. На самом130деле, представленные выше тесты не покрывают всех путей,они пропускают путь acd.

Например, требуется восемь тестовдля тестирования следующей программы:IF ((X=Y) & (LENGTH(Z)=0) & EPS) THEN J=1;ELSE I=1;хотя она покрывается лишь двумя путями. В случае циклов число тестов для удовлетворения критерию комбинаторного покрытия условий обычно больше, чем число путей.Таким образом, для программ, содержащих только одноусловие на каждое решение, минимальным является критерий,набор тестов которого1) вызывает выполнение всех результатов каждого решения, по крайней мере, один раз и2) передает управление каждой точке входа (например,точке входа, ON-единице), по крайней мере, один раз(чтобы обеспечить выполнение каждого операторапрограммы, по крайней мере, один раз).Для программ, содержащих решения, каждое из которыхимеет более одного условия, минимальный критерий состоит изнабора тестов, вызывающих выполнение всех возможных комбинаций результатов условий в каждом решении и передающихуправление каждой точке входа программы, по крайней мере,один раз.6.4.2 Эквивалентное разбиениеВ п.

6.2 отмечалось, что хороший тест имеет приемлемуювероятность обнаружения ошибки и что исчерпывающее входное тестирование программы невозможно. Следовательно, тестирование программы ограничивается использованием небольшого подмножества всех возможных входных данных. Тогда, конечно, хотелось бы выбрать для тестирования самое подходящее подмножество (т.е. подмножество с наивысшей вероятностью обнаружения большинства ошибок).Правильно выбранный тест этого подмножества долженобладать двумя свойствами:а) уменьшать, причем более чем на единицу, число других тестов, которые должны быть разработаны для до-131стижения заранее определенной цели «приемлемого»тестирования;б) покрывать значительную часть других возможных тестов, что в некоторой степени свидетельствует о наличии или отсутствии ошибок до и после примененияэтого ограниченного множества значений входныхданных.Указанные свойства, несмотря на их кажущееся подобие,описывают два различных положения.

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

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

Определяя этот набор как класс эквивалентности, устанавливают, что если ошибка не обнаружена некоторым тестом данного набора, то маловероятно, что она будет обнаружена другим тестом набора. Иными словами, в этом случае время тестирования лучше затратить132на что-нибудь другое (на тестирование других классов эквивалентности).Разработка тестов методом эквивалентного разбиенияосуществляется в два этапа:1) выделение классов эквивалентности и2) построение тестов.6.4.2.1 Выделение классов эквивалентностиКлассы эквивалентности выделяются путем выбора каждого входного условия (обычно это предложение или фраза вспецификации) и разбиением его на две или более групп.

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

ошибочные входные значения). Таким образом, придерживаются одного из принципов п. 6.2 о необходимости сосредоточивать внимание на неправильных или неожиданных условиях.Если задаться входными или внешними условиями, то выделение классов эквивалентности представляет собой в значительной степени эвристический процесс. При этом существуетряд правил:1. Если входное условие описывает область значений(например, «целое данное может принимать значения от 1 до999»), то определяются:133 один правильный класс эквивалентности (значений от1 до 999); два неправильных класса (значения целого данного<1 и значение целого данного >999).2. Если входное условие описывает число значений(например, «в автомобиле могут ехать от одного до шести человек»), то определяются один правильный класс эквивалентности и два неправильных (ни одного и более шести).3.

Если входное условие описывает множество входныхзначений и есть основание полагать, что каждое значение программа трактует особо (например, «известны способы передвижения на АВТОБУСЕ, ГРУЗОВИКЕ, ТАКСИ, ПЕШКОМ илиМОТОЦИКЛЕ»), то определяется правильный класс эквивалентности для каждого значения и один неправильный класс эквивалентности (например, «НА ПРИЦЕПЕ»).4. Если входное условие описывает ситуацию «должнобыть» (например, «первым символом идентификатора должнабыть буква»), то определяется один правильный класс эквивалентности (первый символ — буква) и один неправильный(первый символ — не буква).5. Если есть любое основание считать, что различные элементы класса эквивалентности трактуются программой неодинаково, то данный класс эквивалентности разбивается на меньшие классы эквивалентности.Этот процесс ниже будет кратко проиллюстрирован.6.4.2.2 Построение тестовВторой шаг заключается в использовании классов эквивалентности для построения тестов.

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

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

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