maran program engineering (Маран Программная инженерия), страница 28

PDF-файл maran program engineering (Маран Программная инженерия), страница 28 Программная инженерия (88178): Книга - 4 семестрmaran program engineering (Маран Программная инженерия) - PDF, страница 28 (88178) - СтудИзба2021-02-16СтудИзба

Описание файла

PDF-файл из архива "Маран Программная инженерия", который расположен в категории "". Всё это находится в предмете "программная инженерия" из 4 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 28 страницы из PDF

Выбор. Простое условие (рис. 6.3).x=3.4;z=x*y;if ( z>7.2) n++;elsem++;y=z*n.Цикломатическая сложность равна2.Рис. 6.3Пример 3. Выбор. Сложное условие.Сложному условию на графе управления соответствует столько вершин,сколько в нем элементарных условий (рис. 6.4).k=4;if(2.3<=x && x<=6.4) z=5.2;else z=-5.2;y=z+k.Цикломатическая сложность 7 – 6 + 2=3.Рис. 6.4169Любой повтор (цикл) может быть реализован через выбор. Поэтому и составление графа управления аналогично случаю с выбором. При цикле с предусловием вершина выбора предшествует телу цикла, при цикле с постусловием — тело цикла предшествует выбору.

Вершина(ы) выбора в обоих случаяходинаковая: оператору цикла поставим в соответствие столько вершин графа,сколько условий продолжения (прерывания) цикла. for (inti=0; i<25; i++) {….}одна вершина. while (i<=25 &&n!=0) две вершины.Вернемся к тестированию. Для тестирования «белого ящика» необходимопропускать столько тестов, сколько путей имеется на графе управления. Дляциклов с предусловием это означает, что должен быть проверен случай, когдацикл вообще не запускается. Для цикла с постусловием такой случай исключен.При этом возникают следующие сложности.1. При высокой сложности логики программы (большое количество условных операторов) количество путей может достигнуть астрономическихвеличин.

В таком случае рекомендуется разделить программу на части,каждая часть с одним входом и одним выходом, и протестировать этичасти в отдельности.2. Возможно наличие противоречивых путей: невозможно подбирать данные для их прохода. Элементарный пример:if ( x>5.2)n++;if (x< -1.5) m--.Очевидно, что если x>5.2, то он никак не может удовлетворять условиюx< -1.5. Поэтому не существует значения x, при котором будут выполнены какn++;, так и m--;. Это обстоятельство уменьшает объем тестирования.Рекомендуем читателю составить граф управления для программы решения рассмотренной при обсуждении метода «черного ящика» задачи поискасуммы.

Имеются ли там нереализуемые пути?Возникает важный вопрос: как на практике использовать предложенныедва подхода к тестированию? Можно рекомендовать следующую последовательность действий, получится подход, называемый иногда тестированием «серого ящика»:1. На основе спецификации программы составим тесты методами«черного ящика».

Допустим, получили N тестов.2. Пусть на графе управления существует M путей.Возможны следующие случаи:1. N=M и составленные тесты обеспечивают прохождение всех путейпо меньшей мере по одному разу. Все хорошо!2. N=M, но обеспечивается прохождение лишь K путей (K<M). Еслиоставшиеся М-К путей противоречивые, то два или более теста будут пройдены по одному и тому же пути. Если это так и должнобыть, то можно, в принципе, уменьшить количество тестов, новполне возможно, что этого не стоит делать! Если так не должнобыть (два теста пройдут по одному пути, но на самом деле они разные) — значит в программе ошибка!1703.

N=M, но обеспечивается прохождение лишь K путей (K<M), средиоставшихся М-К путей имеются реальные, то не все протестированои количество тестов надо увеличить.4. N<M. Если оставшиеся М-N путей противоречивые, то все хорошо,можем приступить к тестированию, но если это не так, то придетсясоставить и для них тесты.5. M<N, значит, два или более теста пройдут по одному и тому же пути. Если так и должно быть, то некоторые случаи будут протестированы повторно.

Если нет, то два разных случая пройдут по одному и тому же пути и в программе ошибка6.2.3. Метод функциональных диаграммДругое название этого метода: метод причинно-следственных связей. Названный метод весьма эффективен, если результат зависит от сочетания входных условий. Кроме составления тестов применение этого метода позволяетпроверить спецификацию программы и выявить случаи неопределенности инеоднозначности.

Правда, составление функциональной диаграммы и ее анализдля задач реальной размерности весьма трудоемки и трудно поддаются автоматизации. В основе функциональной диаграммы лежит и/или граф. На этом графе вершинам соответствуют события, вершина принимает значение 0 или 1 взависимости от того, событие имеет место или нет. Проиллюстрируем это нарис. 6.5.Рис. 6.5Событие a имеет место, когда имеет место b, и наоборот. Событие c имеет место, если d не имеет место, и наоборот.

Событие w имеет место, если имеют место p и q (количество аргументов можно увеличить) и т. д. На диаграммемогут быть заданы дополнительные условия (рис. 6.6). Если a, то b, обратноеневерно; если вместо R писать M, то это означает: если a, то НЕ b. E означает,что c и d не могут одновременно иметь значения 1, но могут одновременноиметь значение 0. I означает, что, по меньшей мере, одно из e, f или g должно171иметь значение 1.

O требует, чтобы в любой момент одно и только одно из p, qили r имело значение 1.RacbIfgpOcqEdrРис. 6.6Рассмотрим простой пример. При отправлении сотрудника в командировку начальник должен определить, ехать ему на поезде или самолете. Если расстояние не больше 400 км, то на поезде. Если расстояние от 401 до 1000 км, топоезд, если на самолет нет билетов эконом-класса, если такие билеты имеются,то самолет.

Если расстояние свыше 1000 км, то самолет. Естественно, что поездка может состояться, если на самолет имеются билеты, если нет никаких билетов на самолет, то поездка откладывается. Считаем, что на поезд билетыимеются всегда. Граф представлен на рис. 6.7. Применение этого метода начинается с определения и обозначения входов и выходов (относительно их обозначения никаких ограничений нет). В нашем случае:Входы:R1 — расстояние до 400 км.R2 — расстояние от 401 до 1000 км.R3 — расстояние свыше 1000 км.В1 — имеются билеты в эконом-класс.В2 — имеются билеты в бизнес-класс.Очевидно, что из R1, R2 и R3 одно и только одно может имеет значение истинно.

На В1, В2 ограничений нет.Выходы:Р1 — поездка на поезде.Р2 — поездка на самолете.Р3 — поездка откладывается.172P1R1OR2P2R3B1P3B2Рис. 6.7И-ИЛИ граф нагляден, но вместо него можно использовать и функции алгебры логики, которые показывают зависимость выходов от входов. В нашем случае:Р1=R1 ∨ (R2 & ┐B1);P2=(R2 &B1) ∨ (((B1 ∨ B2) &R3);P3=┐(B1 ∨ B2) &R3 = ┐B1 & ┐B2 ┐&R3.Теоретически количество комбинаций входов равно 25, но с учетом ограничений на входы R получим таблицу 6.1.Таблица 6.1№п/п123456789101112R1000000001111R2000011110000ВходыR3111100000000B1001100110011173B2010101010101P1ВыходыP211111111111P31С помощью этой таблицы легко выполнять проверки:1. Каждый выход должен иметь значение 1 хотя бы один раз.2. При любом сочетаний входов только один выход должен иметь значение 1, если противоположное не предусмотрено условиями.6.2.4.

Предположение об ошибкеЭто трудно назвать полноценным методом тестирования, невозможнодать конкретные рекомендации по нему. Можно лишь сказать, что на основеопыта (или интуиции) тестировщик может предполагать, где какие ошибки могут быть, и нацеливает проверки именно туда или обращает внимание на алгоритмически сложные программы, где наиболее вероятно, что такой-то случайне учтен.6.3. Тестирование программных комплексов,построенных методом функциональной декомпозицииМетод функциональной декомпозиции был рассмотрен в п.

2.1 и представлен на рис. 2.1. Напомним, его суть в том, что имеется главная программа,которая вызывает другие программные модули и управляет их взаимодействием в зависимости от решаемой задачи. Мы рассмотрели в предыдущем раздалетестирование примитивных программ, под которыми понимали программы, невызывающие другие. Рассмотрим в этом разделе, как тестировать такой комплекс целиком. Существуют два подхода:1. Монолитное тестирование. Все составные части тестируются независимо друг от друга, и после завершения этого выполняется сборка всегокомплекса. Такую сборку иногда называют» «большой скачок».2. Пошаговое (или инкрементное) тестирование, где протестированныемодули тут же подключают к комплексу, тестирование и сборка выполняются параллельно.

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

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

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