tehnologia (1018792), страница 44

Файл №1018792 tehnologia (Г.С. Иванова - Учебник - Технология программирования) 44 страницаtehnologia (1018792) страница 442017-07-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Его используют дляанонимной оценки программы в терминах ее общего качества, простоты эксплуатации иясности. Цель метода — обеспечить сравнительно объективную оценку и самооценкупрограммистов.Такая оценка выполняется следующим образом. Выбирается программист, которыйдолжен выполнять обязанности администратора процесса.

Администратор набирает группуот шести до 20-ти участников, которые должны заниматься разработкой сходных программ.Каждому участнику предлагается представить для рассмотрения две программы, с его точкизрения - наилучшую и наихудшую. Отобранные программы случайным образомраспределяются между участниками. Им дают по четыре программы -две наилучшие и двенаихудшие, но не говорят, какие программы плохие, а какие - хорошие. Программистпросматривает эти программы и заполняет анкету, в которой оценивает качество программпо семибалльной шкале.268После этого результаты оценки сверяют, а проверяющий дает общий комментарий ирекомендации по улучшению программ.9.3.

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

Соответственно, для программы будут существовать маршруты,различающиеся выбранным при ветвлении вариантом.Считают, что программа проверена полностью, если с помощью тестов удаетсяосуществить выполнение программы по всем возможным маршрутам передач управления.Однако нетрудно видеть, что даже в программе среднего уровня сложности числонеповторяющихся маршрутов может быть очень велико, и, следовательно, полное илиисчерпывающее тестирование маршрутов, как правило, невозможно.Структурный подход к тестированию имеет ряд недостатков. Так тестовые наборы,построенные по данной стратегии:• не обнаруживают пропущенных маршрутов;• не обнаруживают ошибок, зависящих от обрабатываемых данных, например, воператоре if (a - b) < eps - пропуск функции абсолютного значения abs проявитсятолько, если a < b;• не дают гарантии, что программа правильна, например, если вместо сортировки поубыванию реализована сортировка по возрастанию.Для формирования тестов программу представляют в виде графа, вершины которогосоответствуют операторам программы, а дуги представляют возможные варианты передачиуправления.

Ниже приведен текст программы, которая определяет значение х в зависимостиот значений параметров процедуры. Алгоритм этой программы представлен на рис. 9.2, а, асоответствующий граф передач управления - на рис. 9.2, б.Procedure m (a, b:real; var x:real)beginif (a>1) and (b=0) then x:=x/a;if (a=2) or (x>1) then x:=x+1;end;269Формирование тестовых наборов для тестирования маршрутов может осуществлятьсяпо нескольким критериям:• покрытие операторов;• покрытие решений (переходов);• покрытие условий;• покрытие решений/условий;• комбинаторное покрытие условий.Покрытие операторов.

Критерий покрытия операторов подразумевает такой подбортестов, чтобы каждый оператор программы выполнялся, по крайней мере, один раз. Этонеобходимое, но недостаточное условие для приемлемого тестирования. Поясним сказанноепримером.Для фрагмента, алгоритм и граф которого представлены на рис. 9.2, можно было бывыполнить каждый оператор один раз, задав в качестве входных данных а = 2, b = 0, х = 3.

Нопри этом из второго условия следует, что переменная х может принимать любое значение, ив некоторых версиях языка Pascal это значение проверяться не будет (!).Кроме того:• если при написании программы в первом условии указано: (а > 1) ог (b = 0), тоошибка обнаружена не будет;270•если во втором условии вместо х > 1 записано х > 0, то эта ошибка тоже небудет обнаружена;• существует путь 1-2-4-6 (см. рис. 9.2, б), в котором х вообще не меняется и,если здесь есть ошибка, она не будет обнаружена.Таким образом, хотя при тестировании действительно необходимо задавать исходныеданные так, чтобы все операторы программы были выполнены хотя бы один раз, дляпроверки программы этого явно недостаточно.Покрытие решений (переходов).

Для реализации этого критерия необходимо такоеколичество и состав тестов, чтобы результат проверки каждого условия (т.е. решение)принимал значения «истина» или «ложь», по крайней мере, один раз.Нетрудно видеть, что критерий покрытия решений удовлетворяет критерию покрытияоператоров, но является более «сильным».Программу, алгоритм которой представлен на рис. 9.2, а, можно протестировать пометоду покрытия решений двумя тестами, покрывающими либо пути: 1-2-4-6, 1-2-3-4-5-6,либо пути: 1-2-3-4-6, 1-2-4-5-6, например:а = 3, b = 0, х = 3 — путь 1-2-3-4-5-6;а = 2, b = 1, х = 1 — путь 1-2-4-6.Однако путь, где х не меняется, будет проверен с вероятностью 50 %: если во второмусловии вместо условия х > 1 записано х < 1, то этими двумя тестами ошибка обнаружена небудет.Покрытие условий. Критерий покрытия условий является еще более «сильным» посравнению с предыдущими.

В этом случае формируют некоторое количество тестов,достаточное для того, чтобы все возможные результаты каждого условия в решении быливыполнены, по крайней мере, один раз.Однако, как и в случае покрытия решений, этот критерий не всегда приводит квыполнению каждого оператора, по крайней мере, один раз. К критерию требуетсядополнение, заключающееся в том, что каждой точке входа управление должно бытьпередано, по крайней мере, один раз.Программа, алгоритм которой представлен на рис. 9.2, а, проверяет четыре условия:1) а>1;2) b = 0;3) а = 2;4)х> 1.Необходимо реализовать все возможные ситуации:а>1,а≤1,b=0, b≠0,а = 2, а≠2,х>1, x ≤1.Тесты, удовлетворяющие этому условию:271а = 2, b = 0, х = 4 — путь 1-2-3-4-5-6, условия: 1 - да, 2 - да, 3 - да, 4 - да;а = 1, b= 1, х = 1 — путь 1-2-4-6, условия: 1 - нет, 2 - нет, 3 - нет, 4 - нет.Критерий покрытия условий часто удовлетворяет критерию покрытия решений, но невсегда.

Тесты критерия покрытия условий для ранее рассмотренных примеров покрываютрезультаты всех решений, но это случайное совпадение. Например, тесты:а = 1, b = 0, х = 3 — путь 1-2-3-6, условия: 1 - нет, 2 - да, 3 - нет, 4 - да;а = 2, b = 1, х = 1 — путь 1-2-3-4-5-6, условия: 1 - да, 2 - нет, 3 - да, 4 – нетпокрывают результаты всех условий, но только два из четырех результатов решений:не выполняется результат «истина» первого решения и результат «ложь» второго.Основной недостаток метода - недостаточная чувствительность к ошибкам влогических выражениях.Покрытие решений/условий. Согласно этому методу тесты должны составлятьсятак, чтобы, по крайней мере, один раз выполнились все возможные результаты каждогоусловия и все результаты каждого решения, и каждому оператору управление передавалось,по крайней мере, один раз.Анализ, проведенный выше, показывает, что этому критерию удовлетворяют тесты:а = 2, b = 0, х = 4 — путь 1-2-3-4-5-6, условия: 1 - да, 2 - да, 3 - да, 4 - да;а = 1, b = 1, х = 1 — путь 1-2-4-6, условия; 1 - нет, 2 - нет, 3 - нет.

4 - нет.Комбинаторное покрытие условий. Этот критерий требует создания такогомножества тестов, чтобы все возможные комбинации результатов условий в каждомрешении и все операторы выполнялись, по крайней мере, один раз.Для программы, алгоритм которой представлен на рис. 9.1, необходимо покрытьтестами восемь комбинаций:1) a > 1, b =0;2) a > 1, b ≠ 0;3) a ≤ 1, b = 0;4) a ≤ 1; b ≠ 0;5) a = 2, x > 1;6) a = 2, x ≤ 1;7) a ≠ 2, x > 18) a ≠ 2, x ≤ 1Эти комбинации можно проверить четырьмя тестами:а = 2, b = 0, х = 4 — проверяет комбинации (1), (5);а = 2, b = 1, х = 1 — проверяет комбинации (2), (6);а = 1, b = 0, х = 2 — проверяет комбинации (3), (7);а = 1, b = 1, х = 1 — проверяет комбинации (4), (8).272В данном случае то, что четырем тестам соответствует четыре пути, являетсясовпадением.

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

Например, для комбинации к < 0 и к > 40 задать к невозможно.9.4. Функциональное тестированиеОдним из способов проверки программ является тестирование с управлением поданным или по принципу «черного ящика». В этом случае программа рассматривается как«черный ящик», и целью тестирования является выяснение обстоятельств, в которыхповедение программы не соответствует спецификации.Для обнаружения всех ошибок в программе, используя управление по данным,необходимо выполнить исчерпывающее тестирование, т. е. тестирование на всех возможныхнаборах данных. Для тех же программ, где исполнение команды зависит от предшествующихей событий, необходимо проверить и все возможные последовательности. Очевидно, чтопроведение исчерпывающего тестирования для подавляющего большинства случаевневозможно.

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

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

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

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

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