Файл: Отладка и тестирование программ: основные подходы и ограничения (Основные этапы проектирования программы).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 30.03.2023

Просмотров: 219

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ВВЕДЕНИЕ

Распространение современных информационных технологий и различных аппаратных средств привело к созданию абсолютно новой сферы – программирования. Этот переворот оказал значительное влияние на многие стороны жизни общества – и на социальную, и на политическую, и на рынок труда. Рынок труда действительно сильно изменился благодаря повсеместной информатизации – некоторые профессии безнадежно устарели и полностью исчезли, некоторые изменились лишь частично, а также появились и новые, такие как программист, веб-программист, разработчик приложений и мн. др.

И к представителям новых профессий, как и ко всем остальным, предъявляются определенные требования, которые говорят о квалификации и качестве работы сотрудника. Так, одним из ключевых требований является соответствие полученного продукта изначальным требованиям. Иначе говоря – нужно сделать так, чтобы программа работала как надо. Для этого программисты используют специальные языки программирования, с помощью которых реализуют весь необходимый функционал. Кроме того, программирование всегда производится в виде совокупности определенных этапов, некоторые из которых являются обязательными, а некоторые – нет. Одним из обязательных этапов программирования является этап тестирования и отладки программы – один из завершающих этапов. Данная стадия позволяет не только найти ошибки в программе, но и исправить их и сделать все именно в том виде, в котором необходимо заказчику.

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

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

Для достижения данной цели необходимо выполнить следующие задачи:

  • проанализировать основные этапы проектирования программ;
  • охарактеризовать цели и этапы отладки и тестирования программ;
  • осуществить краткий обзор основных видов тестирования и отладки программ;
  • подробно рассмотреть основные подходы и ограничения к отладке и тестированию программ.

Объектом исследования выступают процессы тестирования и отладки программ, а предметом – основные подходы и ограничения к данным процессам.


Теоретической основой исследования выступили научные труды таких отечественных исследователей проблемы, как Герман О., Павловская Т. А., Хабибуллин И. и др.

Структура работы содержит две главы и четыре параграфа. В исследование также включены такие структурные элементы, как введение, заключение и список использованных источников. Общий объем работы – 23 страницы.

Глава 1. Проектирование программы

1.1 Основные этапы проектирования программы

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

Программа – это один из основных инструментов пользователя компьютером. Всё процессы, которые происходят на компьютере, были бы не возможны без программ. Загрузка операционной системы происходит с помощью программы, сама операционная система – это программа, любая игра – это программа. Вы смотрите видео или слушаете музыку – всё это происходит с помощью программы [11].

Есть программы, которые пользователь должен устанавливать сам – пользовательские программы, например любая игра или видео–, аудио–плеер. Есть программы, которые устанавливаются автоматически при установке Windows – служебные программы, например Проводник. Есть программы, которые также устанавливаются сами и запускаются в фоновом режиме, работая в оперативной памяти компьютера – это системные программы, некоторые из них можно увидеть в Диспетчере задач

Программа – это один из основных инструментов пользователя компьютером. Всё процессы, которые происходят на компьютере, были бы не возможны без программ. Загрузка операционной системы происходит с помощью программы, сама операционная система – это программа, любая игра – это программа. Вы смотрите видео или слушаете музыку – всё это происходит с помощью программы.

Есть программы, которые пользователь должен устанавливать сам – пользовательские программы, например любая игра или видео–, аудио–плеер. Есть программы, которые устанавливаются автоматически при установке операционной системы – служебные программы, например Проводник. Есть программы, которые также устанавливаются сами и запускаются в фоновом режиме, работая в оперативной памяти компьютера – это системные программы, некоторые из них можно увидеть в Диспетчере задач [9].


В процессе создания любой программы можно выделить несколько этапов.

1. Постановка задачи – выполняется специалистом в предметной области на естественном языке (русском, английском и т. д.). Необходимо определить цель задачи, ее содержание и общий подход к решению. Возможно, что задача решается точно (аналитически), и без компьютера можно обойтись. Уже на этапе постановки надо учитывать эффективность алгоритма решения задачи на ЭВМ, ограничения, накладываемые аппаратным и программным обеспечением (АО и ПО).

2. Анализ задачи и моделирование – определяются исходные данные и результат, выявляются ограничения на их значения, выполняется формализованное описание задачи и построение (выбор) математической модели, пригодной для решения на компьютере [20].

3. Разработка или выбор алгоритма решения задачи – выполняется на основе ее математического описания. Многие задачи можно решить различными способами. Программист должен выбрать оптимальное решение. Неточности в постановке, анализе задачи или разработке алгоритма могут привести к скрытой ошибке – программист получит неверный результат, считая его правильным.

4. Проектирование общей структуры программы – формируется модель решения с последующей детализацией и разбивкой на подпрограммы, определяется «архитектура» программы, способ хранения информации (набор переменных, массивов и т. п.).

5. Кодирование – запись алгоритма на языке программирования. Современные системы программирования позволяют ускорить процесс разработки программы, автоматически создавая часть ее текста, однако творческая работа по–прежнему лежит на программисте. Для успешной реализации целей проекта программисту необходимо использовать методы структурного программирования [20].

6. Отладка и тестирование программы. Под отладкой понимается устранение ошибок в программе. Тестирование позволяет вести их поиск и, в конечном счете, убедиться в том, что полностью отлаженная программа дает правильный результат. Для этого разрабатывается система тестов – специально подобранных контрольных примеров с такими наборами па­раметров, для которых решение задачи известно. Тестирование должно охватывать все возможные ветвления в программе, т. е. проверять все ее инструкции, и включать такие исходные данные, для которых решение невозможно. Проверка особых, исключительных ситуаций, необходима для анализа корректности. Например, программа должна отказать клиенту банка в просьбе выдать сумму, отсутствующую на его счете. В ответственных проектах большое внимание уделяется так называемой «защите от дурака» подразумевающей устойчивость программы к неумелому обращению пользователя. Использование специальных программ – отладчиков, которые позволяют выполнять программу по отдельным шагам, просматривая при этом значения переменных, значительно упрощает этот этап [1].


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

8. Публикация результатов работы, передача заказчику для эксплуатации.

9. Сопровождение программы – включает консультации представителей заказчика по работе с программой и обучение персонала. Недостатки и ошибки, замеченные в процессе эксплуатации, должны устраняться [20].

1.2 Отладка и тестирование программы: цели и этапы

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

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

Синтаксическая ошибка. Неправильное употребление синтаксических конструкций, например употребление оператора цикла For без то или Next.

Семантическая ошибка. Нарушение семантики той или иной конструкции, например передача функции параметров, не соответствующих ее аргументам.

Логическая ошибка. Нарушение логики программы, приводящее к неверному результату. Это наиболее трудный для «отлова» тип ошибки, ибо подобного рода ошибки, как правило, кроются в алгоритмах и требуют тщательного анализа и всестороннего тестирования [19].

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

Тестирование программного обеспечения – проверка соответствия между реальным и ожидаемым поведением программы, осуществляемая на конечном наборе тестов, выбранном определенным образом. В более широком смысле, тестирование – это одна из техник контроля качества, включающая в себя активности по планированию работ, проектированию тестов, выполнению тестирования и анализу полученных результатов [3].

Цели тестирования:

  1. Повысить вероятность того, что приложение, предназначенное для тестирования, будет работать правильно при любых обстоятельствах.
  2. Повысить вероятность того, что приложение, предназначенное для тестирования, будет соответствовать всем описанным требованиям.
  3. Предоставление актуальной информации о состоянии продукта на данный момент [4].

Этапы тестирования:

  1. Анализ продукта
  2. Работа с требованиями
  3. Разработка стратегии тестирования и планирование процедур контроля качества
  4. Создание тестовой документации
  5. Тестирование прототипа
  6. Основное тестирование
  7. Стабилизация
  8. Эксплуатация

Для грамотного проведения тестирования программных продуктов рекомендуется разработка тест плана. Тест план – это документ, описывающий весь объем работ по тестированию, начиная с описания объекта, стратегии, расписания, критериев начала и окончания тестирования, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их разрешения [10]. Применение такого инструмента позволит сделать процесс тестирования и последующей отладки программы более предсказуемым и, как следствие, эффективным.

Глава 2. Основные подходы и ограничения к отладке и тестированию программ

2.1 Основные виды тестирования и отладки программ

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

При тестировании проверяется, работает ли программа и все ее ветви в соответствии со своей спецификацией. Для того чтобы убедиться в том, что программист правильно понимает функции программы, и обеспечить полный и эффективный контроль всех ее ветвей, заранее разрабатывается стратегия тестирования [2].

Особенности процесса тестирования программы состоят в том, что:

  • отсутствует эталон программы, которому должны соответствовать все результаты тестирования проверяемой программы;
  • принципиально невозможно создать тестовый набор для исчерпывающей проверки;
  • отсутствуют формализованные критерии качества программ и процесса тестирования;
  • необходимо создавать тесты, которые находят ошибки, а не демонстрируют правильность работы программы;
  • необходимо привлекать для тестирования сторонних специалистов;
  • необходимо избегать невоспроизводимых тестов [23].