Файл: Отладка и тестирование программ: основные подходы и ограничения.pdf
Добавлен: 24.04.2023
Просмотров: 233
Скачиваний: 1
При тестировании системы проводится проверка всего объекта. После того, как программные и аппаратные компоненты будут собраны, подтверждается соответствие исходным требованиям проекта. Если система полностью укомплектована, то тестер сможет оценить практически все ее атрибуты, которые нельзя протестировать на более низких уровнях [10].
Основные категории тестирования системы:
Тестирование на совместимость представляет собой оценку того, насколько хорошо функционирует программное обеспечение в конкретной среде, заданной специфическими версиями аппаратного, программного обеспечения и операционной системой.
Конфигурационное тестирование заключается в использовании различных программных и аппаратных конфигураций, которые поддерживает система.
Тестирование функциональных возможностей заключается в проверке работоспособности всех функций системы.
Тестирование установки проводится для того, чтобы полная, частичная, либо обновляемая процедура установки функционировала согласно документации.
Тестирование загрузки заключается в том, что система за короткий период времени подвергается воздействию со стороны своего пользователя. Данный вид тестирования также можно назвать проверкой приложений в диапазоне их задач для определения времени ответа системы и возможности возникновения сбоев в работе [12].
Тестирование характеристик необходимо для того, чтобы пользователь убедился в том, что система способна давать корректный ответ в заданных рамках. При этом тестер измеряет время выполнения конкретных задач в режиме пиковых или нормальных условий при моделировании рабочих процессов [15].
Тестирование восстановления представляет собой процесс, при котором тестер проверяет способность системы к восстановлению до нормального уровня эксплуатации при возникновении аварийных ситуаций или сбоев в аппаратном обеспечении в связи с повреждением оборудования.
Тестирование надежности – это проверка работы системы в заданных условиях за определенный промежуток времени.
Тестирование на безопасность необходимо для проверки доступа к разрешенным функциям авторизованных пользователей.
Тестирование удобства обслуживания заключается в подтверждении любой информации, которая должна соответствовать внутреннему техническому обслуживанию и документации [3].
Тестирование под нагрузкой проводится для выяснения того, насколько хорошо будет работать система при высокой загруженности. Во время проверки ее вынуждают работать с критической нагрузкой. Таким образом, можно проследить какие ресурсы отказываются от работы в первую очередь, а какие продолжают свою работу без сбоев и ошибок [18].
Тестирование практичности необходимо для оценки «дружелюбности» к пользователю. Другими словами, в приложении должны присутствовать операции, которые могут быть сложными для пользователя. К данным операциям можно отнести проверку руководств и публикаций, которые предназначены для пользователя.
2.3 Отладка программного обеспечения
Отладка программного обеспечения представляет собой процесс, во время которого работа программ корректируется с учетом требуемых характеристик и задач пользователей [7].
Отладку нельзя назвать одним из видов тестирования, хотя этот термин похож на него по смысловому значению. Однако, тестирование подразумевает самые разные виды деятельности, а отладка направлена на установление точной природы ошибки, в ходе которой вырабатывается алгоритм исправления. Таким образом, результаты тестирования служат исходными данными для отладки.
Отладка и тестирование тесно связаны между собой, поэтому они рассматриваются в единой связке. В результате проведения отладки программное обеспечение должно соответствовать фиксированной совокупности показателей качества, которые принято считать эталонными [2].
Отладка представляет собой важный этап разработки, на котором можно устранить недостатки созданного программного обеспечения. Главная задача отладки заключается в завершении разработки программного обеспечения и приведении его характеристик до заданных значений технического задания (из соглашения о требованиях). Также программное обеспечение должно гарантированно удовлетворять все требования в диапазоне типичных условий его работы, включая предельные и критические сочетания значений всех параметров. Таким образом, будет обеспечена надежность работы программного обеспечения при различных произвольных или искаженных сочетаниях исходных данных [14].
По оценке специалистов, время на отладку программного обеспечения может достигать до 90% от всего времени на создание программного продукта. При этом отладку можно поделить на семантическую и синтаксическую.
Отладка синтаксиса не вызывает трудностей, поскольку нуждается лишь в аккуратности. Результаты синтаксически правильной программы можно сравнить с тестовыми, поскольку их несовпадение является признаком присутствия семантической ошибки. Это сравнение необходимо проводить очень тщательно, поскольку даже лишний пробел между значениями может дать ключ к разгадке ошибки [5].
Семантическую ошибку невозможно формализовать, поэтому она составляет основу программы отладки.
Отладка готовой ветви (части) программного обеспечения может быть начата перед тем, как будет написан весь программный продукт. В результате сокращается время разработки программного обеспечения и экономится календарное время на его создание. Временно отсутствующие блоки оставляют пустыми, или заменяют их коротким сообщением о том, что программа рассчитана на такие данные. Также в пустые места могут быть записаны программные «заглушки» [6].
Для устранения и установки точной природы ошибки в программе применяют динамические и статические методы отладки программы.
К статическим методам можно отнести методы, при которых не нужно выполнять отлаживаемую программу на ЭВМ. Статические методы требуют больших усилий от проверяющего программиста, но при этом тратится мало машинного времени. Они универсальны для отладки программ, которые написаны на любом языке программирования.
Статические методы заключаются в:
Ручной прокрутке программы.
Прокрутке программы с помощью анализатора (компилятора). В данном случае автоматизированный анализ программы проводится без ее выполнения на ЭВМ, поэтому попадает в категорию «статических» [13].
Коллективной проверке программы.
Проверке программы специалистом-технологом для выявления и исправления технологических ошибок.
При проведении различных экспериментов установлено, что при использовании ручных методов проверки удается обнаружить от 30 до 70% алгоритмических ошибок из общего числа всех ошибок программы. Одновременно с этим проводится доработка программы для улучшения ее структуры, логики обработки данных, а также снижения сложности автоматизированного тестирования на ЭВМ [17].
Динамические методы связаны со значительным расходом машинного времени и, возможно, не меньшими затратами труда программиста. В этом случае отладка программ происходит совместно с их выполнением на электронно-вычислительной машине. Динамические методы отладки программ, как правило, привязаны к конкретной электронно-вычислительной машине и к конкретному транслятору.
К динамическим методам относятся [3]:
1. Тестирование;
2. Поиск ошибок с использованием системных средств;
3. Отладка программы в интерактивном режиме.
Важнейшее правило отладки: не делать следующего выхода на электронно-вычислительной машине, пока не будет разобрана каждая найденная ошибка. Из этого правила существует единственное исключение: если найдены 5-6 ошибок, которые не дают эффекта, то можно сделать новый выход на машину (устранив эти ошибки), чтобы получить эффект в чистом виде (если он есть), поскольку наложение нескольких ошибок иногда может дать самый неожиданный результат [9].
Если программист исчерпал все возможности поиска ошибки, но не нашел ее, то как крайнее средство, можно сделать выход на машину, ничего не изменив в программе, но добавив печати, выдающие значения идентификаторов, участвующих в формировании неверного значения. И снова произвести анализ полученных результатов. Квалификация программиста в области отладки определяется тем, сколько информации об ошибках он сможет получить из одной выдачи электронно-вычислительной машины [12].
ЗАКЛЮЧЕНИЕ
Целью курсовой работы являлось изучение процесса тестирования и отладки программного обеспечения.
Для достижения поставленной цели было необходимо:
1. Изучить понятие и стадии тестирования;
2. Рассмотреть вопросы тестирования и отладки программного обеспечения.
Рассмотрение первого вопроса – изучение понятия и стадии тестирования производилось в первой главе курсовой работы. Для этого были произведены следующие действия: рассмотрен наращиваемый подход в тестировании; рассмотреть стадии тестирования.
При тестировании реальных приложений, для определения и реализации полного набора тестовых примеров может оказаться недостаточно времени или других ресурсов. В такой ситуации нужно определить, какие тесты наиболее важны и какие функции не будут тестироваться. Анализ степени риска поможет сконцентрировать усилия при тестировании на наиболее важных функциях приложения и выполнить наиболее уместные тесты.
Если времени для проведения тестирования достаточно, то целесообразно распланировать задачи тестирования следующим образом:
1. Спроектировать тесты, используя методы, описанные в последующих главах;
2. Создать подходящую для проведения теста среду тестирования;
3. Оценить, приобрести и установить инструменты автоматического тестирования;
4. Написать соответствующую документацию, связанную с тестированием.
Подключение тестера к проекту на очень поздней стадии, в особенности, когда сроки завершения проекта уже близки, не позволяет спланировать тестирование надлежащим образом, и ограничивает возможности приобретения полезных инструментов [11].
Изучение второго вопроса – рассмотрение вопросов тестирования и отладки программного обеспечения производилось во второй главе курсовой работы. Для этого были произведены следующие действия: изучена стратегия тестирования; рассмотрены виды тестирования; рассмотрена отладка программного обеспечения.
Стратегия тестирования, или методы тестирования - это систематические методы, используемые для отбора и/или создания тестов, которые должны быть включены в тестовый комплект. Это могут быть случайные вводы, тест, направленный на проверку моих подозрений, тест, направленный на проверку ваших подозрений, тест, направленный на проверку соответствия требованиям, тест, направленный на проверку искаженности; тесты, который мы выполняли последний раз, тесты, которые отличаются от тестов, которые мы выполняли последний раз. Мы выбираем стратегию, такую, что существуют правила, по которым мы можем определить, удовлетворяет данный тест стратегии или не удовлетворяет. В принципе, стратегия должна быть программируемой [20].
Стратегия является эффективной, если тесты, включенные в нее, с большой вероятностью обнаружат ошибки тестируемого объекта. Эффективность стратегии зависит от комбинации природы тестов и природы ошибок, на поиск которых эти тесты направлены. Как на войне и в бизнесе, здесь существуют эффективные и неэффективные стратегии. Более того, так как объект изменяется с целью исправления ошибок и увеличения его возможностей, типы ошибок, находимые у объекта, меняются со временем, и, следовательно, меняется эффективность стратегии. В то время как теоретически возможно, что стратегия по отношению к специфическим объектам совершенствуется во времени, на самом деле эффективность большинства стратегий со временем убывает [6].
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
- Афонин В.Л., Моделирование систем: учебно-практическое пособие [Текст] / В.Л. Афонин - М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016. – 232 с.
- Баженова И.Ю., Основы проектирования приложений баз данных [Текст] / И.Ю. Баженова - М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016. – 261 с.
- Базовые средства программирования на Visual Basic в среде VisualStudio Net. Практикум: Учебное пособие. Гриф МО РФ [Текст] - М.: Инфра-М Форум, 2017. – 288 с.
- Голицына О.Л., Основы проектирования баз данных. [Текст]: Учебное пособие / О.Л. Голицына - М.: Форум, 2016. – 416 с.
- Дадян Э.Г., Методы, модели, средства хранения и обработки данных [Текст] / Э.Г. Дадян - М.: Инфра-М, 2017. – 268 с.
- Даниленко А.В., Безопасность систем электронного документооборота. Технология защиты электронных документов [Текст] / А.В. Даниленко - М.: URSS, 2015. – 232 с.
- Джесси Р., Проектирование баз данных [Текст] / Р. Джесси - М.: VSD, 2013.
- Долганова О.В., Моделирование бизнес-процессов. Учебник и практикум для академического бакалавриата [Текст] / О.В. Долганова - М.: Издательство: Юрайт, 2016. – 289 с.
- Иванова Г.С., Объектно-ориентированное программирование [Текст] / Г.С. Иванова - М.: Московский Государственный Технический Университет (МГТУ) имени Н.Э. Баумана, 2014. – 456 с.
- Кагаловский, М.Р. Технология баз данных на персональных ЭВМ [Текст] / М.Р. Кагаловский − М.: Финансы и статистика, 2014. – 224 с.
- Казанский А.П., Объектно-ориентированный анализ и программирование на visual basic 2013. Учебник для прикладного бакалавриата [Текст] / А.П. Казанский - М.: Юрайт, 2016. – 290 с.
- Казиев В.М., Введение в анализ, синтез и моделирование систем. Учебное пособие [Текст] / В.М. Казиев - М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2014. – 244 с.
- Кириллов В.В., Введение в реляционные базы данных. Учебник (+ CD-ROM) [Текст] / В.В. Кириллов - М.: БХВ-Петербург, 2017. – 464 с.
- Козлов В., Системный анализ, оптимизация и принятие решений. Учебное пособие [Текст] / В. Козлов - М.: Проспект, 2016. – 76 с.
- Культин Н.Б., Visual Basic. Освой на примерах (+ CD-ROM) [Текст] / Н.Б. Культин - М.: БХВ-Петербург, 2012. – 288 с.
- Кумскова И.А., Базы данных. Учебник. Гриф МО РФ [Текст] / И.А. Кумскова - М.: КноРус, 2016. – 400 с.
- Лукин С.Н., Visual Basic: самоучитель для начинающих [Текст] / С.Н. Лукин - М.: Диалог-МИФИ, 2012. – 480 с.
- Малкин Г.Е., Учимся моделировать в среде Visual Basic [Текст] / Г.Е. Малкин - М.: Нобель Пресс, 2012. – 210 с.
- Мартишин С.А., Проектирование и реализация баз данных в СУБД MySQL с использованием MySQL Workbench. Учебное пособие. Методы и средства проектирования информационных систем и технологий. Инструментальные средства информационных сетей. Гриф УМО вузов России [Текст] / С.А. Мартишин - М.: Форум, 2017. – 160 с.
- Назаров С.В., Архитектура и проектирование программных систем [Текст] / С.В. Назаров - М.: Инфра-М, 2016. – 376 с.