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

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

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

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

В этом случае записывают число тестов, достаточное для того, чтобы все возможные результаты каждогоусловия в решении выполнялись, по крайней мере, один раз.Поскольку, как и при покрытии решений, это покрытие не всегда приводит к выполнению каждого оператора, к критериютребуется дополнение, которое заключается в том, что каждойточке входа в программу или подпрограмму, а также ON-единицам должно быть передано управление при вызове, по крайнеймере, один раз. Например, оператор цикла в языке ФортранDO К=0 ТО 50 WHILE (J+K<QUEST);или его аналог на языке Сиfor(K=0; K<=50 && J+K<QUEST; K++)содержит два условия: К меньше или равно 50 и J+K меньше,чем QUEST.

Следовательно, здесь требуются тесты для ситуаций K50, K>50 (т.е. выполнение последней итерации цикла),J+K<QUEST и J+KQUEST.Программа (рис. 6.5) имеет четыре условия: А > 1, В = 0,А = 2 и X > 1. Следовательно, требуется достаточное число тестов, такое, чтобы реализовать ситуации, где A > 1, A  1, B =0 и B  0 в точке a и A = 2, A  2 и X > 1 в точке b. Тесты,удовлетворяющие критерию покрытия условий, и соответствующие им пути:1. A = 2, В = 0, Х = 4 – ace.2. А = 1, B = 1, Х = 1 – abd.126Заметим, что хотя аналогичное число тестов для этогопримера уже было создано, покрытие условий обычно лучшепокрытия решений, поскольку оно может (но не всегда) вызвать выполнение решений в условиях, не реализуемых приперекрытии решений.

Например, рассмотренные выше операторы представляют собой двузначный переход (либо выполняетсятело цикла, либо выход из цикла). Если использовать тестирование решений, то достаточно выполнить цикл при изменении Kот 0 до 51 без проверки случая, когда второе условие ложно.Однако при критерии покрытия условий необходим тест, который реализовал бы результат «ложь» условия J+K<QUEST.Хотя применение критерия покрытия условий на первыйвзгляд удовлетворяет критерию покрытия решений, это не всегда так.

Если тестируется решение IF (A&B), то при критериипокрытия условий требовались бы два теста — A есть истина,B есть ложь и A есть ложь, B есть истина. Но в этом случае невыполнялось бы THEN-предложение оператора IF. Тесты критерия покрытия условий для ранее рассмотренного примера покрывают результаты всех решений, но это только случайноесовпадение.

Например, два альтернативных теста1. A = 1, В = 0, Х = 32. А = 2, В = 1, Х = 1покрывают результаты всех условий, но только два из четырехрезультатов решений (они оба покрывают путь abe и, следовательно, не выполняют результат истина первого решения и результат ложь второго решения).6.4.1.4 Покрытие решений/условийОчевидным следствием из этой дилеммы является критерий, названный покрытием решений/условий.

Он требует такогодостаточного набора тестов, чтобы все возможные результатыкаждого условия в решении выполнялись, по крайней мере,один раз, все результаты каждого решения выполнялись, покрайней мере, один раз и каждой точке входа передавалосьуправление, по крайней мере, один раз.Недостатком критерия покрытия решений/условий является невозможность его применения для выполнения всех результатов всех условий; часто подобное выполнение имеет ме-127сто вследствие того, что определенные условия скрыты другими условиями.

В качестве примера рассмотрим приведенную нарис. 6.6 схему передач управления в машинном коде программы на рис. 6.5. Многоусловные решения исходной программыздесь разбиты на отдельные решения и переходы, посколькубольшинство машин не имеет команд, реализующих решения смногими исходами.

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

6.6, результаты условий в выражениях и и или могут скрывать и блокировать действие других условий. Например, еслиусловие и есть ложь, то никакое из последующих условий в выражении не будет выполнено. Аналогично, если условие илиесть истина, то никакое из последующих условий не будет выполнено. Следовательно, критерии покрытия условий и покрытия решений/условий недостаточно чувствительны к ошибкам влогических выражениях.128HIA>1B=0YesNoYesNoX = X/AJA=2YesNoKX>1YesNoX=X+1Рис.

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стижения заранее определенной цели «приемлемого»тестирования;б) покрывать значительную часть других возможных тестов, что в некоторой степени свидетельствует о наличии или отсутствии ошибок до и после примененияэтого ограниченного множества значений входныхданных.Указанные свойства, несмотря на их кажущееся подобие,описывают два различных положения.

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

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

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