Главная Теоретический материал Лабораторные работы Задачи Тесты Контакты

Узбекское Агентство
Связи и Информатизации



Ташкентский Университет Информационных Технологий


Кафедра
«Программное обеспечение информационных технологий»

Направления:

5521900Информатика и
информационные технологии,
5523500Защита информации,
5523600Электронная коммерция,
5811200Сервис (информационный сервис),
5811300Сервис (электронные и
компьютерные технологии),
5320200Информатика и
библиотековедение,
5140900Профессиональное образование
(по направлению
информатика и
информационные технологии).


Преподаватель дисциплины



Доцент
Чернев Дмитрий Алексеевич

РЕЗЮМЕ

Под ошибкой в широком смысле слова понимается непра­вильность, погрешность или неумышленное, невольное искажение объекта или процесса. При этом подразумевается, что известно правильное или неискаженное эталонное состояние объекта, к которому относится ошибка.

Считается, что если программа не выполняет того, что пользователь от нее ожидает, то в ней имеется ошибка.

Искажения в тексте программ (первичные ошибки) явля­ются  элементами, подлежащими корректировке. Однако не­ посредственно наличие ошибки обнаруживается по ее вторичным проявлениям - по искажению выходных результатов исполнения программ.

Ошибку можно отнести к одному из нижеперечисленных классов: системные ошибки, ошибки в выборе алгоритма, алго­ритмические ошибки,  технологические ошибки, программные ошибки.

Некачественное определение требований к программе при­водит к  созданию программы, которая будет правильно решать неверно сформулированную задачу.

Исправление синтаксических ошибок осуществляется прос­то -   достаточно сравнить формат исправляемой конструкции с синтаксисом в справочнике и исправить его.

Семантическая ошибка не формализуема и поэтому она составляет основу отладки.

Защитное программирование основано на важной предпосылке: худшее,  что может сделать модуль, - это принять неправильные входные данные и затем вернуть неверный, но правдоподобный результат.

Если программист убежден, что он может писать программы
правильно, так оно и будет. Если же он убежден, что написанная
им программа непременно содержит ошибки, — они неизбежны.

Самый лучший способ организации отладки — это сведение
к минимуму необходимости в ней.

О квалификации программиста судят по числу ошибок,
обнаруживаемых в его программном обеспечении после того, как
оно передано для широкого использования.

Лучше иметь репутацию медлительного программиста, но создающего хорошие и тщательно выверенные программные продукты, чем репутацию быстро работающего программиста, но разрабатывающего программные изделия, испещренные ошиб­ками.

Ошибку найти и исправить труднее, чем ее не допустить.

Тестирование — это процесс выполнения программного обеспечения с целью определения места некорректного его функционирования.

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

Тесты составляются после разработки алгоритма, но до программирования.

Если программное изделие правильно ведет себя для со­лидного набора  тестов, еще нет оснований утверждать, что в нем нет ошибок.

Тесты, не способствующие обнаружению ошибок и только
подтверждающие корректность функционирования программного изделия, являются неэффективными, т.к. приводят к беспо­лезным затратам ресурсов и времени.

Тест состоит из исходных данных и тех значений (результирующие, а иногда и промежуточные), которые должно выдать программное обеспечение при работе по этому тесту.

Комплект тестов должен обеспечить проверку всех ва­риантов внешнего эффекта программного изделия и вариантов его внутренней работы алгоритма.

Комплект тестов должен быть таким, чтобы все ветви алгоритма были пройдены, по крайней мере, по одному разу, а так же проверены все контролирующие предельные и вырожденные случаи.

Составление тестов - это искусство, т.к. полностью этот процесс формализации не поддается.

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

Процесс тестирования программного обеспечения можно разделить на три этапа: проверка в нормальных условиях, про­верка в экстремальных  условиях, проверка в исключительных ситуациях.

* Под отладкой понимается процесс, позволяющий получить  программное обеспечение, функционирующее с нужными харак­теристиками в заданной области входных данных.

*  Отладка не является разновидностью тестирования:

-   тестирование - это деятельность, направленная на обна­ружение ошибок;

-   отладка направлена на установление точной природы известной ошибки, а затем - на исправление этой ошибки;

- результаты тестирования являются исходными данными для отладки.

Отладка - это этап разработки, на котором устраняются недостатки только что созданного программного обеспечения.

Процесс обнаружения ошибок в программе характеризуется
выявлением в ней двух мест: точки обнаружения и точки про­исхождения ошибки.

Для локализации и установки точной природы ошибки в программе используют статические и динамические методы отладки программ.

К статическим относятся методы отладки, при которых не требуется выполнение отлаживаемой программы на ЭВМ.

К динамическим относятся методы отладки, при которых отладка программ происходит совместно с их выполнением на ЭВМ.

Они, как правило, привязаны к конкретной ЭВМ и к конк­ретному транслятору (компилятору).

Ручная прокрутка программы, или проверка программы за столом является универсальным и мощным, но весьма трудо­емким средством проверки программы на ошибку.

Отладка в интерактивном режиме - это процесс нахож­дения и исправления ошибок в программе, при котором обеспечивается возможность вмешательства человека в ход выпол­нения программы.

Коллективная проверка — это процесс, при котором бри­гада программистов тщательно просматривает программу или ее часть в порядке инспекции (контроль программы, сквозной просмотр и т.п.).

Целью коллективной проверки является повышение на­дежности программного обеспечения.

Для контроля документов и структурного построения мо­дуля необходимо участие технолога по программированию.

Логика рассуждения на каждом отдельном шаге обычно сводится к одному из двух заключений:

- программа прошла по ветви N, т.к. переменная X получила (или изменила) значение х, а это единственная ветвь, где это может быть...

   - программа заведомо не проходила по ветви N, т.к. на этой ветви переменная X должна получить (или изменить) значение х, чего не наблюдалось.


Назад


Главная Теоретический материал Лабораторные работы Тесты Контакты