Тестирование и отладка программ

Автор: Борисова Е.А., Логинова Е.С.

Журнал: Экономика и социум @ekonomika-socium

Статья в выпуске: 2-1 (15), 2015 года.

Бесплатный доступ

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

Программа, тестирование, ошибка, отладка, блок -схема, алгоритм

Короткий адрес: https://sciup.org/140111984

IDR: 140111984

Текст научной статьи Тестирование и отладка программ

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

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

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

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

При разработке программ наиболее трудоемким является этап отладки и тестирования программ. Цель тестирования заключается в выявлении имеющихся в программе ошибок. Цель отладки состоит в выявлении и устранении причин ошибок.

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

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

Из-за разнообразия источников при составлении плана тестирования ошибки классифицируют на три типа: 1 – синтаксические; 2 – семантические (смысловые); 3 - логические.

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

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

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

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

В план тестирования обычно входят следующие этапы:

  • 1.    Сравнение программы со схемой алгоритма.

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

  • 3.    Трансляция программы на машинных язык. На этом этапе выявляются    синтаксические    ошибки.    Компиляторы    языков

  • 4.    Редактирование внешних связей и компоновка программы. На этапе редактирования внешних связей программных модулей программа-редактор внешних связей, или компоновщик задач, обнаруживает такие синтаксические ошибки, как несоответствие числа параметров в описании подпрограммы и обращении к ней, вызов несуществующей стандартной программы и ряд других ошибок.

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

  • 6.    Тестирование программы. Если программа выполняется успешно, желательно завершить ее испытания тестированием при задании исходных данных, принимающих предельные для программы значения. а также выходящие за допустимые пределы значения на входе.

программирования выдают диагностическое сообщение о синтаксических ошибках в листинге программы при формировании объектного модуля.

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

Наиболее простые способы получения тестов:

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

  •    Использование результатов, полученных на других ЭВМ или по другим программам.

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

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

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

На отладку в среднем затрачивается около 50% цикла разработки, потому ее начинают на стадии разработки требований к программе и продолжают до получения финальной версии продукта.

Список литературы Тестирование и отладка программ

  • Батищев П.С. Основы программирования на Visual Basic 6.0. Электронный учебник.
  • Кашаев С.М. Программирование в Microsoft Excel на примерах. -СПб.: БХВ-Петербург, 2007. -320 с.: ил. + Видеокурс (на CD)
  • Коликова Т.В. Основы тестирования программного обеспечения. Учебное пособие /Т.В. Коликова, В.П. Котляров; -Интуит, 2006, -285 с. ISBN 5-85582-186-2.
  • Плаксин М. Тестирование и отладка программ -для профессионалов будущих и настоящих /М. Пласкин; -Бином. Лаборатория знаний, 2007, -168 с. ISBN 978-5-94774-458-3.
Статья научная