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

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

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

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

Добавлен: 30.03.2023

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

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

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

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

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

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

Преимущества:

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

Недостатки:

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

Тестирование методом серого ящика – метод тестирования программного обеспечения, который предполагает, комбинацию White Box и Black Box подходов. То есть, внутреннее устройство программы нам известно лишь частично. Предполагается, например, доступ к внутренней структуре и алгоритмам работы ПО для написания максимально эффективных тест-кейсов, но само тестирование проводится с помощью техники черного ящика, то есть, с позиции пользователя. [13]

Эту технику тестирования также называют методом полупрозрачного ящика: что-то мы видим, а что-то – нет.

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

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

Таблица 1 —Сравнительный анализ «белого» и «черного» ящиков [12]

Критерий

Черный ящик

Белый ящик

Определение

Тестирование, как функциональное, так и нефункциональное, не предполагающее знание внутреннего устройства компонента или системы

Тестирование, основанное на анализе внутренней структуры компонента или системы

Уровни, к которым применима техника

В основном:

Приемочное тестирование и системное тестирование

В основном;

Юнит-тестирование и интеграционное тестирование

Кто выполняет

Как правило, тестировщики

Как правило, разработчики

Знание программирования

Не нужно

Необходимо

Знание реализации

Не нужно

Необходимо

Основа для тест-кейсов

Спецификация, требования

Проектная документация


2.4 Отладка программ

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

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

Статические методы включают:

  • ручную прокрутку программы;
  • прокрутку программы программными анализаторами ( нап­ример, компилятором); автоматизированный анализ программы в этом случае проводится без выполнения ее на ЭВМ и поэтому попадает в категорию «статических»;
  • коллективную проверку программ;
  • проверку программы программистом-технологом с целью выявления и исправления в ней технологических ошибок.

Экспериментально установлено, что в программах ручными методами удается обнаруживать от 30 до 70 % программных и алгоритмических ошибок из общего числа ошибок, выявленных при отладке. При этом одновременно осуществляется доработка программ с целью улучшения их структуры, логики обработки данных и для снижения сложности последующего автомати­зированного тестирования на ЭВМ. [15]

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

К динамическим методам относятся:

  • тестирование;
  • поиск ошибок с использованием системных средств;
  • отладка программы в интерактивном режиме.

Важнейшее правило отладки: не делать следующего выхода на ЭВМ, пока не будет разобрана каждая найденная ошибка. Из этого правила существует единственное исключение: если най­дены 5—6 ошибок, которые не дают эффекта, то можно сделать новый выход на машину (устранив эти ошибки), чтобы получить эффект в чистом виде (если он есть), поскольку наложение нес­кольких ошибок иногда может дать самый неожиданный ре­зультат. [15]

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


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

ЗАКЛЮЧЕНИЕ

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

Приложение никогда не может быть на 100% без ошибок. Поэтому установить, когда можно прекратить тестирование, сложно. Однако при остановке тестовых действий следует учитывать следующие вопросы:

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

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

В рамках курсового проекта решены следующие задачи:

  • изучена литература в данной области;
  • раскрыто понятие «качество»;
  • изучено понятие «верификация»;
  • изучены виды тестирования;
  • проведен анализ методов отладки программ.

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

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

СПИСОК ЛИТЕРАТУРЫ

  1. Корнеев И.К., Машурцев ВА. Информационные технологии в управлении. - М.: Инфр-М, 2001.
  2. Кузнецов, П.У. Информационные технологии / П.У. Кузнецов. ― М.: Юрайт, 2011. ― 422 с.
  3. Кент Бек Экстремальное программирование. Разработка через тестирование. — Питер, 2003. — 260 с.
  4. Могилев А.В. Информатика : учебное пособие / А.В. Могилев, Н.И. Пак, Е.К. Хеннер. – М.: Академия, 2000. – 324 с.
  5. Плаксин М. А. Тестирование и отладка программ для профессионалов будущих и настоящих. — Лаборатория знаний, 2015. — 170 с.
  6. Рой Ошероув Искусство автономного тестирования с примерами на C#. — ДМК Пресс, 2014. — 362 с.
  7. John R. Vacca Computer and Information Security Handbook. — Morgan Kaufmann, 2017. — 1280 p.
  8. Bill Laboon A Friendly Introduction to Software Testing. — CreateSpace Independent Publishing Platform, 2016. — 230 p.
  9. Мартин Роберт Идеальный программист. Как стать профессионалом разработки ПО. — Питер, 2011. — 240 с.
  10. Software Testing [Электронный ресурс] Тестирование по фазам и по цепочкам: сходства и различия Режим доступа: http://software-testing.ru/library/testing/general-testing/2682-phased-vs-threaded-testing Дата обращения (12.02.2019)
  11. Блог хост [Электронный ресурс] Анализаторы исходного кода — обзор рынка в России и в мире Режим доступа: https://www.anti-malware.ru/reviews/Code_analyzers_market_overview_Russia_and_world Дата обращения (12.02.2019)
  12. PVS-Studio [Электронный ресурс] Анализатор PVS-Studio Режим доступа: https://www.viva64.com/ru/pvs-studio/ Дата обращения (12.02.2019)
  13. QALight [Электронный ресурс] White/Black/Grey Box-тестирование Режим доступа: https://qalight.com.ua/baza-znaniy/white-black-grey-box-testirovanie/ Дата обращения (12.02.2019)
  14. Tproger [Электронный ресурс] Ручное и автоматизированное тестирование: рассматриваем преимущества и недостатки подходов Режим доступа: https://tproger.ru/translations/manual-automation-testing/ Дата обращения (20.03.2019)
  15. Технология программирования [Электронный ресурс] Методы отладки программного обеспечения. Режим доступа: http://www.tehprog.ru/index.php_page=lecture0113.html Дата обращения (20.03.2019)
  16. Business Analysis [Электронный ресурс] Качество программного обеспечения (Software Quality). Режим доступа: https://iiba.ru/software-quality/ Дата обращения (20.03.2019)