Автор: Пользователь скрыл имя, 25 Февраля 2012 в 16:36, шпаргалка
Работа содержит ответы на вопросы по дисциплине "Информатика"
Отладка ПС - деятельность по обнаружению и исправлению ошибок в ПС с использованием процессов выполнения его программ.
Тестирование ПС - процесс выполнения его программ на некотором наборе данных, для которого заранее известен результат применения или известны правила поведения этих программ. Этот набор данных называется тестовым или просто тестом.
Отладка = Тестирование + Поиск ошибок + Редактирование.
Задачи отладки программных средств.
2. Определить момент окончания отладки ПС (или отдельной его компоненты).
Для оптимизации набора тестов, необходимо заранее планировать этот набор и использовать рациональную стратегию планирования тестов. Проектирование тестов можно начинать сразу же после завершения этапа внешнего описания ПС. Возможны разные подходы к выработке стратегии проектирования тестов, которые можно условно графически разместить (см. рис.1) между следующими двумя крайними подходами.
Оптимальная стратегия проектирования тестов расположена внутри интервала между этими крайними подходами, но ближе к левому краю. При этом в первом случае эта стратегия базируется на принципах:
*
на каждую используемую
* на каждую область и на каждую границу изменения какой-либо входной величины - хотя бы один тест,
* на каждую особую (исключительную) ситуацию, указанную в спецификациях, - хотя бы один тест.
Во втором случае эта стратегия базируется на принципе: каждая команда каждой программы ПС должна проработать хотя бы на одном тесте.
В нашей стране различаются два основных вида отладки (включая тестирование):
Автономная
отладка ПС - последовательное раздельное
тестирование различных частей программ
с поиском и исправлением в
них фиксируемых при
Отметим феномен - по мере роста числа обнаруженных и исправленных ошибок в ПС растет также относительная вероятность существования в нем необнаруженных ошибок.
Принцип 1. Считайте тестирование ключевой задачей разработки ПС, поручайте его самым квалифицированным и одаренным программистам; нежелательно тестировать свою собственную программу.
Принцип 2. Хорош тот тест, для которого высока вероятность обнаружить ошибку, а не тот, который демонстрирует правильную работу программы.
Принцип 3. Готовьте тесты как для правильных, так и для неправильных данных.
Принцип 4. Документируйте пропуск тестов через компьютер; детально изучайте результаты каждого теста; избегайте тестов, пропуск которых нельзя повторить.
Принцип 5. Каждый модуль подключайте к программе только один раз; никогда не изменяйте программу, чтобы облегчить ее тестирование.
Принцип 6. Пропускайте заново все тесты, связанные с проверкой работы какой-либо программы ПС или ее взаимодействия с другими программами, если в нее были внесены изменения (например, в результате устранения ошибки).
При автономной отладке тестируется всегда некоторая программа (тестируемая программа), построенная специально для тестирования отлаживаемого модуля. В процессе автономной отладки ПС производится наращивание тестируемой программы отлаженными модулями (интеграция программы).
При восходящем тестировании окружение содержит только один отладочный модуль, головной в тестируемой программе - ведущий (или драйвер). Ведущий отладочный модуль подготавливает информационную среду для тестирования отлаживаемого модуля, осуществляет обращение к отлаживаемому модулю и выдает необходимые сообщения.
При нисходящем тестировании окружение в качестве отладочных содержит отладочные имитаторы (заглушки) некоторых еще не отлаженных модулей. Некоторые из этих имитаторов при отладке одного модуля могут изменяться для разных тестов.
На
практике в окружении отлаживаемого
модуля могут содержаться отладочные
модули обоих типов, если используется
смешанная стратегия
Достоинства восходящего тестирования:
2) возможность
полной реализации плана
Недостатки восходящего тестирования:
Достоинства нисходящего тестирования:
3) отпадает необходимость тестирования сопряжения модулей.
Недостатком нисходящего тестирования является то, что тестовое состояние информационной среды перед обращением к отлаживаемому модулю готовится косвенно - оно является результатом применения уже отлаженных модулей к тестовым данным или данным, выдаваемым имитаторами.
Прежде всего, необходимо организовать отладку программы таким образом, чтобы как можно раньше были отлажены модули, осуществляющие ввод данных. Пока модули, осуществляющие ввод данных, не отлажены, тестовые данные поставляются некоторыми имитаторами: они либо включаются в имитатор как его часть, либо вводятся этим имитатором.
При нисходящем тестировании некоторые состояния информационной среды, при которых требуется тестировать отлаживаемый модуль, могут не возникать при выполнении отлаживаемой программы ни при каких входных данных. Чаще же пользуются модифицированным вариантом нисходящего тестирования, при котором отлаживаемые модули перед их интеграцией предварительно тестируются отдельно. Однако, представляется более целесообразной другая модификация нисходящего тестирования: после завершения нисходящего тестирования отлаживаемого модуля для достижимых тестовых состояний информационной среды следует его отдельно протестировать для остальных требуемых состояний информационной среды.
Часто
применяют также комбинацию восходящего
и нисходящего тестирования, которую
называют методом сандвича. Сущность
этого метода заключается в одновременном
осуществлении как восходящего,
так и нисходящего
Весьма важным при автономной отладке является тестирование сопряжения модулей. При нисходящем тестировании тестирование сопряжения осуществляется попутно каждым пропускаемым тестом, что считают достоинством нисходящего тестирования. При восходящем тестировании обращение к отлаживаемому модулю производится не из модулей отлаживаемой программы, а из ведущего отладочного модуля.
Автономное тестирование модуля целесообразно осуществлять в четыре последовательно выполняемых шага.
Шаг 1. На основании спецификации отлаживаемого модуля подготовьте тесты для каждой возможности и каждой ситуации, для каждой границы областей допустимых значений всех входных данных, для каждой области изменения данных, для каждой области недопустимых значений всех входных данных и каждого недопустимого условия.
Шаг 2. Проверьте текст модуля, чтобы убедиться, что каждое направление любого разветвления будет пройдено хотя бы на одном тесте. Добавьте недостающие тесты.
Шаг 3. Проверьте текст модуля, чтобы убедиться, что для каждого цикла существуют тесты, обеспечивающие, по крайней мере, три следующие ситуации: тело цикла не выполняется ни разу, тело цикла выполняется один раз и тело цикла выполняется максимальное число раз. Добавьте недостающие тесты.
Шаг 4. Проверьте текст модуля, чтобы убедиться, что существуют тесты, проверяющие чувствительность к отдельным особым значениям входных данных. Добавьте недостающие тесты.
Тестирование при комплексной отладке - применение ПС к конкретным данным, которые могут возникнуть у пользователя, но, возможно, в моделируемой (а не в реальной) среде.
Тестирование архитектуры ПС. Целью тестирования является поиск несоответствия между описанием архитектуры и совокупностью программ ПС. К моменту начала тестирования архитектуры ПС должна быть уже закончена автономная отладка каждой подсистемы.
Тестирование внешних функций. Целью тестирования является поиск расхождений между функциональной спецификацией и совокупностью программ ПС. Несмотря на то, что все эти программы автономно уже отлажены, указанные расхождения могут быть,
Тестирование качества ПС. Целью тестирования является поиск нарушений требований качества, сформулированных в спецификации качества ПС. Завершенность ПС проверяется уже при тестировании внешних функций.
Тестирование документации по применению ПС. Целью тестирования является поиск несогласованности документации по применению и совокупностью программ ПС, а также выявление неудобств, возникающих при применении ПС. Этот этап непосредственно предшествует подключению пользователя к завершению разработки ПС (тестированию определения требований к ПС и аттестации ПС).
Тестирование
определения требований
к ПС. Целью тестирования является
выяснение, в какой мере ПС не соответствует
предъявленному определению требований
к нему. Особенность этого вида тестирования
заключается в том, что его осуществляет
организация-покупатель или организация-пользователь.
Обычно производится с помощью контрольных
задач - типовых задач, для которых известен
результат решения.
Создателем структурного подхода к программированию считается Э. Дейкстра (60-е годы).
Фактически это первый законченный метод программирования, предлагающий путь от задачи до ее воплощения в программе.
Структурное проектирование – это последовательная декомпозиция, целенаправленное разбиение на отдельные составляющие.
Структурное проектирование включает в себя:
Метод нисходящего проектирования предполагает последовательное разложение общей функции обработки данных на простые функциональные элементы ("сверху вниз").
Метод разработки программ по частям называют модульным программированием.
Модуль – это самостоятельная часть программы, имеющая определенное назначение и обеспечивающая заданные функции обработки автономно от других программных модулей.
Каждый модуль оформляется как самостоятельно хранимый файл. Для функционирования ПП необходимо наличие программных модулей в полном составе.
Структурное программирование основано на модульной структуре ПП и типовых управляющих структурах алгоритмов обработки данных различных программных модулей.