Файл: Отладка и тестирование программ: основные подходы и ограничения (ПОНЯТИЕ ТЕСТИРОВАНИЯ И ОТЛАДКИ).pdf

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

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

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

Добавлен: 30.03.2023

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

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

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

Конфигурационное тестирование тестирует эффект влияния на производительность изменений в конфигурации [17].

2.2. Организация процесса тестирования

При тестировании программного продукта одновременно проводится в трех направлениях:

  1. Проверка кода.
  2. Тестирование высокого уровня.
  3. Тестирование низкого уровня.

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

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

Тестирование низкого уровня: Тестер проверяет, на сколько логически полно исходный код покрывает всё возможные варианты работы системы, для которой он разрабатывается [18].

3. РАЗРАБОТКА ПРОГРАММЫ

3.1. Средства разработки программы

Для разработки программы выбран объектно-ориентированный язык программирования C# (си шарп). Выбор сделан в пользу этого языка программирования по ряду причин:

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

  1. Управление памятью происходит через сборку мусора. Именно по этой причине в Си шарп не требуется указывать ключевое слово delete.
  2. Поддержка программирования, основанная на использовании интерфейсов.
  3. Возможность построения общих типов и членов с использованием синтаксиса, похожего на Си ++.
  4. Поддержка технологии аспектно-ориентированного программирования через атрибуты.

Язык С# актуален в первую очередь потому, что позволяет более рационально создавать популярные на сегодня Интернет-приложения. Язык C# тесно интегрирован с языком XML, различными веб-технологиями. Язык C# интегрировал в себе преимущества языка Java и С++, что и обуславливает популярность данного языка среди разработчиков. При этом в объединенном языке исключены некоторые спорные директивы, макросы, отменены глобальные переменные [19].


Среда разработки выбрана – Visual Studio. Visual Studio это интегрированная среда разработки с широкими возможностями для создания потрясающих приложений для Windows, Android и iOS, а также современных веб-приложений и облачных служб [20].

Visual Studio является мощным инструментом для разработки и в отличии от своих конкурентов имеет ряд преимуществ.

Преимущества среды разработки Visual Studio:

    1. Использование вычислительной мощи локального компьютера и облака.
    2. Реализация общих задач и индивидуальных подход.
    3. Создание за короткий срок высококачественного продукта (программы).
    4. Поддержка нескольких мониторов.
    5. Реализация идей для широкого спектра платформ.

3.2. Разработка программы

Для демонстрации своих способностей и возможности применить на практике теоретического знания, полученного при изучении дисциплины, разработана программа «Расчет идеального соударения двух тел».

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

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

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

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

Пользователь вводит ряд значений:

  1. данные первого тела:
    1. начальные координаты;
    2. скорость;
    3. массу;
    4. радиус.
  2. данные второго тела:
    1. координату по x;
    2. радиус;
    3. массу.
  3. угол между телами (от -90 до 90 желательно);
  4. шаг по времени.

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


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

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

Расчет производится в два этапа: до соударения тел и после соударения тел.

Для начала нужно рассчитать координату второго тела по y. Известны радиусы тел, положение первого тела и угол между телами.

По этим данным можно вычислить координату второго тела по y:

(1)

Условие, которое проверяет, произошло ли соударение тел:

(2)

Пока выполняется это условие, координаты равны:

, ,

, (3)

Где xa ,ya, xb,yb– положение первого и второго шара соответственно.

После того, как шары столкнулись, то запоминается положение тел во время столкновения и записываются координаты X, Y для каждого из тел.

Новые координаты равны:

, ,

, (4)

Скорости по Vbx, Vax, Vay, Vby, необходимо рассчитать по формулам, которые приведены ниже:

(5)

Где значение рассчитывается как отношение:

(6)

После того, как рассчитаны формулы, выводим новые координаты шаров на экран.

Ход работы: Пользователь вводит начальные значения первого тела (начальные координаты, скорость, массу и радиус), второго тела (координату по x, радиус, массу), угол между телами, шаг по времени.

Сначала вычисляется координата y второго тела по формуле (1). По нажатию клавиши «Начать» отображается на форме положение двух тел. Прорисовка происходит через компонент pictureBox. По желанию можно изменить шаг по времени, но для наглядной прорисовки лучше использовать шаг равный единице.

После нажатия «Старт» изменяются координаты первого шара. Пока условие истинно формуле (2), координаты тел равны формуле (3). По нажатию клавиши «Стоп», появляется ранее неактивная кнопка «Продолжить».

Чтобы корректно работала программа, делается засечка, когда пользователь нажимает кнопку «Стоп». Следует отметить, что при нажатии на кнопку «Стоп», время тоже останавливается, как и прорисовка фигур.

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


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

Вычислительный эксперимент

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

Рисунок 1 – Начальные значения

Значение y2 рассчитывается по формуле (1), для получения значения необходимо нажать кнопку «Начало». Напротив, значения y2 в пустом поле появится значения, а на форме появятся два шара, в указанном месте, с указанными пользователем массой и углом между ними.

Значение времени изначально равняется нулю. Как только шары начнут свое движение, то счетчик начнет увеличиваться.

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

Начальное движение шаров показано на рисунке 2.

Рисунок 2 – Начально движение тел

Как было сказано раннее, для остановки движения тел нужно нажать на кнопку стоп. Для демонстрации правильного функционирования программы, остановим тела на 82 секунде (рис. 3).

Рисунок 3 – Остановка времени

Важно отметить, что при остановке времени, исчезает копка «Старт» и остаются только три копки: «Стоп», «Продолжить», «Начало». Это удобно для пользователя, чтобы он не запутался в назначении кнопок. Для продолжения движения тел, необходимо нажать на кнопку «Продолжить», а для построения новых расчётов ввести новые координаты для тел и нажать на кнопку «Начало». Продолжение движения тел после абсолютно упругого соударения показано на рисунке 4.

Рисунок 4 – Движение тел после соударения

Можно смоделировать ситуацию, когда шары не столкнуться и не произойдет идеальное соударение двух тел. Для этого необходимо ввести угол alfa, равный 90 градусов (рис. 5).


Рисунок 5 – Движение тел без соударения

ЗАКЛЮЧЕНИЕ

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

Ф. Брукс правильно оценил важность тестирования и исправление ошибок: «Фундаментальная проблема при сопровождении программ состоит в том, что исправление одной ошибки с большой вероятностью (20 – 50 %) влечет появление новой. Поэтому весь процесс идет по принципу «два шага вперед, шаг назад»». Безусловно, в этом кроется истина. Возникает вопрос, почему нельзя устранять ошибки более аккуратно.

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

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

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

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

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

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