Деятельность направленная на обнаружение и исправление ошибок в программе называется
Тест по информатике Решение задач на компьютере 9 класс с ответами. Тест включает в себя 2 варианта. В каждом варианте по 6 заданий.
Вариант 1
1. На этапе постановки задачи:
1) определяются входные и выходные данные
2) проверяется правильность выполнения программы
3) строится алгоритм
4) составляется программа
1) значения корней уравнения
2) значения коэффициентов уравнения
3) формула вычисления дискриминанта
4) график квадратичной функции
3. Синтаксические ошибки в программе помогает обнаружить:
1) операционная система
2) текстовый редактор
3) система программирования
4) разработка специальных тестов
4. На этапе программирования осуществляется:
1) постановка задачи
2) составление программы на алгоритмическом языке
3) отладка и тестирование
4) описание математической модели
5. Выявление и исправление ошибок в программе осуществляется на этапе:
1) алгоритмизации
2) программирования
3) формализации
4) отладки и тестирования
6. Запишите, как называется применяемый для проверки работоспособности программы конкретный вариант значений исходных данных, для которого известен ожидаемый результат.
Вариант 2
1. На этапе программирования:
1) определяются входные и выходные данные
2) проверяется правильность выполнения программы
3) строится алгоритм
4) составляется программа
2. Математическая модель для программы, вычисляющей корни квадратного уравнения:
1) значения корней уравнения
2) значения коэффициентов уравнения
3) формулы вычисления дискриминанта и корней
4) график квадратичной функции
3. О правильности разработанной программы может свидетельствовать:
1) вывод данных на печать
2) соответствие полученных результатов экспериментальным фактам
3) отсутствие синтаксических ошибок
4) любые результаты
4. Компьютерным экспериментом называют этап:
1) постановки задачи
2) составления программы на алгоритмическом языке
3) отладки и тестирования
4) описания математической модели
5. Для построения математической модели необходимо:
1) описать входные и выходные данные
2) построить алгоритм
3) записать алгоритм на одном из языков программирования
4) проанализировать объект или процесс и обработать числовые данные
6. Запишите, как называется процесс проверки работоспособности программы и исправления обнаруженных при этом ошибок.
Ответы на тест по информатике Решение задач на компьютере 9 класс
Вариант 1
1-1
2-2
3-3
4-2
5-4
6. тест
Вариант 2
1-4
2-3
3-2
4-3
5-4
6. отладка программы
Отладка ПС - это деятельность, направленная на обнаружение и исправление ошибок в ПС с использованием процессов выполнения его программ. Тестирование ПС - это процесс выполнения его программ на некотором наборе данных, для которого заранее известен результат применения или известны правила поведения этих программ. Указанный набор данных называется тестовым или просто тестом. Таким образом, отладку можно представить в виде многократного повторения трех процессов: тестирования, в результате которого может быть констатировано наличие в ПС ошибки, поиска места ошибки в программах и документации ПС и редактирования программ и документации с целью устранения обнаруженной ошибки. Другими словами:
Отладка = Тестирование + Поиск ошибок + Редактирование.
Принципы и виды отладки программного средства.
При отладке ПС отыскиваются и устраняются, в основном, те ошибки, наличие которых в ПС устанавливается при тестировании. Но нельзя гарантировать, что тестированием ПС практически выполнимым набором тестов можно установить наличие каждой имеющейся в ПС ошибки. Поэтому возникает две задачи. Первая задача: подготовить такой набор тестов и применить к ним ПС, чтобы обнаружить в нем по возможности большее число ошибок. Однако чем дольше продолжается процесс тестирования (и отладки в целом), тем большей становится стоимость ПС. Отсюда вторая задача: определить момент окончания отладки ПС (или отдельной его компоненты). Признаком возможности окончания отладки является полнота охвата пропущенными через ПС тестами множества различных ситуаций, возникающих при выполнении программ ПС, и относительно редкое проявление ошибок в ПС на последнем отрезке процесса тестирования. Последнее определяется в соответствии с требуемой степенью надежности ПС, указанной в спецификации его качества.
Для оптимизации набора тестов, т.е. для подготовки такого набора тестов, который позволял бы при заданном их числе (или при заданном интервале времени, отведенном на тестирование) обнаруживать большее число ошибок в ПС, необходимо, во-первых, заранее планировать этот набор и, во-вторых, использовать рациональную стратегию планирования тестов. Проектирование тестов можно начинать сразу же после завершения этапа внешнего описания ПС.
Оптимальная стратегия проектирования тестов включает проектирование значительной части тестов по спецификациям, но она требует также проектирования некоторых тестов и по текстам программ. При этом в первом случае эта стратегия базируется на принципах:
· на каждую используемую функцию или возможность - хотя бы один тест,
· на каждую область и на каждую границу изменения какой-либо входной величины - хотя бы один тест,
· на каждую особую (исключительную) ситуацию, указанную в спецификациях, - хотя бы один тест.
Оптимальную стратегию проектирования тестов можно конкретизировать на основании следующего принципа: для каждого программного документа (включая тексты программ), входящего в состав ПС, должны проектироваться свои тесты с целью выявления в нем ошибок.
Различаются два основных вида отладки (включая тестирование): автономную и комплексную отладку ПС. Автономная отладка ПС означает последовательное раздельное тестирование различных частей программ, входящих в ПС, с поиском и исправлением в них фиксируемых при тестировании ошибок. Она фактически включает отладку каждого программного модуля и отладку сопряжения модулей. Комплексная отладка означает тестирование ПС в целом с поиском и исправлением фиксируемых при тестировании ошибок во всех документах (включая тексты программ ПС), относящихся к ПС в целом. К таким документам относятся определение требований к ПС, спецификация качества ПС, функциональная спецификация ПС, описание архитектуры ПС и тексты программ ПС.
Процесс отладки включает:
Существуют несколько эмпирических правил проведения тестирования программ, обобщающих опыт тестировщиков.
Тестирование - это деятельность, направленная на обнаружение ошибок.
Тестирование модуля иногда включает математическое доказательство.
Тестирование сопряжений (integration testing) - контроль сопряжений между частями системы (модулями, компонентами, подсистемами).
Тестирование внешних функций (external function testing) - контроль внешнего поведения, определенного внешними спецификациями.
Тестирование приемлемости (acceptance testing) - проверка соответствия программы требованиям пользователя.
Стратегия проектирования тестов
Ни одна из этих крайностей не является хорошей стратегией.
Модифицированный нисходящий метод
Метод большого скачка
Метод большого скачка значительно усложняет отладку.
Модифицированный метод сандвича
Сравнение методов тестирования
Второй критерий - время до момента создания первых работающих «скелетных» версий программы, поскольку здесь могут проявиться главные дефекты проектирования.
Рис. 16. Структура пакета из 9 модулей
Оказывается, что при пошаговой сборке сверху-вниз нужно разработать девять заглушек, но не нужны драйверы.
При тестировании снизу-вверх процесс организуется следующим образом: тестируются модули низшего уровня - М5, М6, М7, М8, М9. Для каждого из них нужен драйвер.
Таким образом, при восходящем тестировании нужно будет разработать максимум восемь драйверов, но заглушки не потребуются.
Несколько иначе организуются испытания коммерческих пакетов прикладных программ, создаваемых по инициативе разработчиков для широкого круга пользователей при отсутствии конкретного заказчика.
В последнее время фирмы-разработчики стали выкладывать бета-версии программ на свои Web-сайты, позволяя всем желающим скачивать их, тем самым, увеличивая контингент добровольных тестировщиков. Обратная связь организуется либо через систему конференций на сайте разработчика, либо посредством электронной почты. Отладка программного средства. Основные понятия
Лишь та ошибка, что не исправляется.
Во втором случае стратегия базируется на принципе: каждая команда каждой программы ПС должна проработать хотя бы на одном тесте.
Заповеди отладки программного средства
Автономная отладка программного средства
К достоинствам восходящего тестирования относятся:
Недостатками восходящего тестирования являются следующие его особенности:
К достоинствам нисходящего тестирования относятся следующие его особенности:
Комплексная отладка программного средства
Основными видами испытания программных продуктов (ПП) являются:
Оценку результатов испытания производит комиссия при активном участии разработчиков.
Технологическая схема испытания
Любому виду испытаний должна предшествовать тщательная подготовка.
В подготовку испытаний ПС входят следующие мероприятия:
На основании изложенного можно определить следующие пять этапов испытания:
Рис. 18. Технологическая схема испытания ПС
общее количество дефектов, которое может проявиться за время эксплуатации ПС;
коэффициент сжатия тестов.
В качестве критерия завершенности испытания можно принять достижение требуемого (заданного) значения средней наработки на отказ Т0.
Отладка программы — один их самых сложных этапов разработки программного обеспечения, требующий глубокого знания:
• специфики управления используемыми техническими средствами,
• среды и языка программирования,
• природы и специфики различных ошибок,
• методик отладки и соответствующих программных средств.
Отладка - это процесс локализации и исправления ошибок, обнаруженных при тестировании программного обеспечения. Локализацией называют процесс определения оператора программы, выполнение которого вызвало нарушение нормального вычислительного процесса. Доя исправления ошибки необходимо определить ее причину , т. е. определить оператор или фрагмент, содержащие ошибку. Причины ошибок могут быть как очевидны, так и очень глубоко скрыты.
В целом сложность отладки обусловлена следующими причинами:
• требует от программиста глубоких знаний специфики управления используемыми техническими средствами, операционной системы, среды и языка программирования, реализуемых процессов, природы и специфики различных ошибок, методик отладки и соответствующих программных средств;
• психологически дискомфортна, так как необходимо искать собственные ошибки и, как правило, в условиях ограниченного времени;
• возможно взаимовлияние ошибок в разных частях программы, например, за счет затирания области памяти одного модуля другим из-за ошибок адресации;
• отсутствуют четко сформулированные методики отладки.
В соответствии с этапом обработки, на котором проявляются ошибки, различают (рис. 10.1):
синтаксические ошибки - ошибки, фиксируемые компилятором (транслятором, интерпретатором) при выполнении синтаксического и частично семантического анализа программы; ошибки компоновки - ошибки, обнаруженные компоновщиком (редактором связей) при объединении модулей программы;
ошибки выполнения - ошибки, обнаруженные операционной системой, аппаратными средствами или пользователем при выполнении программы.
Синтаксические ошибки. Синтаксические ошибки относят к группе самых простых, так как синтаксис языка, как правило, строго формализован, и ошибки сопровождаются развернутым комментарием с указанием ее местоположения. Определение причин таких ошибок, как правило, труда не составляет, и даже при нечетком знании правил языка за несколько прогонов удается удалить все ошибки данного типа.
Следует иметь в виду, что чем лучше формализованы правила синтаксиса языка, тем больше ошибок из общего количества может обнаружить компилятор и, соответственно, меньше ошибок будет обнаруживаться на следующих этапах. В связи с этим говорят о языках программирования с защищенным синтаксисом и с незащищенным синтаксисом. К первым, безусловно, можно отнести Pascal, имеющий очень простой и четко определенный синтаксис, хорошо проверяемый при компиляции программы, ко вторым - Си со всеми его модификациями. Чего стоит хотя бы возможность выполнения присваивания в условном операторе в Си, например:
if (c = n) x = 0; /* в данном случае не проверятся равенство с и n, а выполняется присваивание с значения n, после чего результат операции сравнивается с нулем, если программист хотел выполнить не присваивание, а сравнение, то эта ошибка будет обнаружена только на этапе выполнения при получении результатов, отличающихся от ожидаемых */
Ошибки компоновки. Ошибки компоновки, как следует из названия, связаны с проблемами,
обнаруженными при разрешении внешних ссылок. Например, предусмотрено обращение к подпрограмме другого модуля, а при объединении модулей данная подпрограмма не найдена или не стыкуются списки параметров. В большинстве случаев ошибки такого рода также удается быстро локализовать и устранить.
Ошибки выполнения. К самой непредсказуемой группе относятся ошибки выполнения. Прежде всего они могут иметь разную природу, и соответственно по-разному проявляться. Часть ошибок обнаруживается и документируется операционной системой. Выделяют четыре способа проявления таких ошибок:
• «зависание» компьютера, как простое, когда удается завершить программу без перезагрузки операционной системы, так и «тяжелое», когда для продолжения работы необходима перезагрузка;
• несовпадение полученных результатов с ожидаемыми.
Причины ошибок выполнения очень разнообразны, а потому и локализация может оказаться крайне сложной. Все возможные причины ошибок можно разделить на следующие группы:
• неверное определение исходных данных,
• накопление погрешностей результатов вычислений (рис. 10.2).
Н е в е р н о е о п р е д е л е н и е и с х о д н ы х д а н н ы х происходит, если возникают любые ошибки при выполнении операций ввода-вывода: ошибки передачи, ошибки преобразования, ошибки перезаписи и ошибки данных. Причем использование специальных технических средств и программирование с защитой от ошибок (см.§ 2.7) позволяет обнаружить и предотвратить только часть этих ошибок, о чем безусловно не следует забывать.
Л о г и ч е с к и е о ш и б к и имеют разную природу. Так они могут следовать из ошибок, допущенных при проектировании, например, при выборе методов, разработке алгоритмов или определении структуры классов, а могут быть непосредственно внесены при кодировании модуля.
К последней группе относят:
ошибки некорректного использования переменных , например, неудачный выбор типов данных, использование переменных до их инициализации, использование индексов, выходящих за границы определения массивов, нарушения соответствия типов данных при использовании явного или неявного переопределения типа данных, расположенных в памяти при использовании нетипизированных переменных, открытых массивов, объединений, динамической памяти, адресной арифметики и т. п.;
ошибки вычислений , например, некорректные вычисления над неарифметическими переменными, некорректное использование целочисленной арифметики, некорректное преобразование типов данных в процессе вычислений, ошибки, связанные с незнанием приоритетов выполнения операций для арифметических и логических выражений, и т. п.;
ошибки межмодульного интерфейса , например, игнорирование системных соглашений, нарушение типов и последовательности при передачи параметров, несоблюдение единства единиц измерения формальных и фактических параметров, нарушение области действия локальных и глобальных переменных;
другие ошибки кодирования , например, неправильная реализация логики программы при кодировании, игнорирование особенностей или ограничений конкретного языка программирования.
Н а к о п л е н и е п о г р е ш н о с т е й результатов числовых вычислений возникает, например, при некорректном отбрасывании дробных цифр чисел, некорректном использовании приближенных методов вычислений, игнорировании ограничения разрядной сетки представления вещественных чисел в ЭВМ и т. п.
Все указанные выше причины возникновения ошибок следует иметь в виду в процессе отладки. Кроме того, сложность отладки увеличивается также вследствие влияния следующих факторов:
опосредованного проявления ошибок;
возможности взаимовлияния ошибок;
возможности получения внешне одинаковых проявлений разных ошибок;
отсутствия повторяемости проявлений некоторых ошибок от запуска к запуску – так называемые стохастические ошибки;
возможности устранения внешних проявлений ошибок в исследуемой ситуации при внесении некоторых изменений в программу, например, при включении в программу диагностических фрагментов может аннулироваться или измениться внешнее проявление ошибок;
написания отдельных частей программы разными программистами.
Отладка программы в любом случае предполагает обдумывание и логическое осмысление всей имеющейся информации об ошибке. Большинство ошибок можно обнаружить по косвенным признакам посредством тщательного анализа текстов программ и результатов тестирования без получения дополнительной информации. При этом используют различные методы:
ручного тестирования;
обратного прослеживания.
Метод ручного тестирования. Это - самый простой и естественный способ данной группы. При обнаружении ошибки необходимо выполнить тестируемую программу вручную, используя тестовый набор, при работе с которым была обнаружена ошибка.
Метод очень эффективен, но не применим для больших программ, программ со сложными вычислениями и в тех случаях, когда ошибка связана с неверным представлением программиста о выполнении некоторых операций.
Данный метод часто используют как составную часть других методов отладки.
Самый ответственный этап - выявление симптомов ошибки. Организуя данные об ошибке, целесообразно записать все, что известно о ее проявлениях, причем фиксируют, как ситуации, в которых фрагмент с ошибкой выполняется нормально, так и ситуации, в которых ошибка проявляется. Если в результате изучения данных никаких гипотез не появляется, то необходима дополнительная информация об ошибке. Дополнительную информацию можно получить, например, в результате выполнения схожих тестов.
В процессе доказательства пытаются выяснить, все ли проявления ошибки объясняет данная гипотеза, если не все, то либо гипотеза не верна, либо ошибок несколько.
Метод дедукции. По методу дедукции вначале формируют множество причин, которые могли бы вызвать данное проявление ошибки. Затем анализируя причины, исключают те, которые противоречат имеющимся данным. Если все причины исключены, то следует выполнить дополнительное тестирование исследуемого фрагмента. В противном случае наиболее вероятную гипотезу пытаются доказать. Если гипотеза объясняет полученные признаки ошибки, то ошибка найдена, иначе - проверяют следующую причину (рис. 10.4).
Метод обратного прослеживания. Для небольших программ эффективно применение метода обратного прослеживания. Начинают с точки вывода неправильного результата. Для этой точки строится гипотеза о значениях основных переменных, которые могли бы привести к получению имеющегося результата. Далее, исходя из этой гипотезы, делают предложения о значениях переменных в предыдущей точке. Процесс продолжают, пока не обнаружат причину ошибки.
Читайте также: