Курсовая с практикой на тему Тема курсовой на выбор автора (Тема: «7. Отладка и тестирование программ: основные подходы и ограничения.»)
-
Оформление работы
-
Список литературы по ГОСТу
-
Соответствие методическим рекомендациям
-
И еще 16 требований ГОСТа,которые мы проверили
Введи почту и скачай архив со всеми файлами
Ссылку для скачивания пришлем
на указанный адрес электронной почты
Содержание:
ВВЕДЕНИЕ 3
1. Тестирование и отладка программ 5
1.1. Виды тестирования 5
1.2. Тестирование надежности 7
1.3. Организация процесса тестирования 11
2. Финишные этапы разработки программных систем 15
2.1. Рабочая документация 15
2.2. Ввод в действие 16
2.3. Сопровождение 21
3. Оценка качества программных средств 23
3.1. Вычисление метрики SLOC 23
3.2. Вычисление метрик сложности 26
3.3. Оценка экономических параметров 29
ЗАКЛЮЧЕНИЕ 31
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 33
ПРИЛОЖЕНИЕ 35
Введение:
Актуальность выполнения данной работы обусловлена тем, что новые методологии разработки, таких как ускоренная разработка прикладных программных приложений (RAD), привели к стремительным разработкам специализированных средств автоматизированного тестирования программных систем. Среди основных особенностей таких методологий можно выделить возможность получения разных версий разрабатываемой программной системы. Отсюда, современные технологии тестирования приобрели итеративную природу — каждая последующая версия сопровождается большим количеством тестов, а так же необходимости переработки существующих средств тестирования программных систем.
В свою очередь, в процессе разработке программных систем, в целях снижения затрат, активно используются методы и алгоритмы проектирования программных систем. Но не все они могут подойти для разработки средств тестирования, кроме того в условиях изменений тестируемой программной системы возникает необходимость в постоянной переработке существующих средств.
Среди основных видов тестирования программных систем можно отметить следующие: функциональное тестирование; системное тестирование; тестирование производительности программной системы; нагрузочное тестирование компонентов системы; стресс тестирование; регрессионное тестирование разработанных алгоритмов; модульное тестирование структуры программной системы; тестирование безопасности; тестирование локализации; юзабилити тестирование.
Надежность программной системы является гораздо наиболее важной ее характеристикой чем другие время ее выполнения, и в тоже время абсолютная характеристика надежности современной программной системы, по-видимому, является недостижимой, до сих пор нет общепринятых мер по которым можно было бы определить надежность конкретной системы.
Объект исследования – отладка и тестирование программ.
Предмет исследования – виды тестирования, тестирование надежности, организация процесса тестирования. Финишные этапы разработки программных систем.
Целью данной работы является изучение вопросов, связанных с отладкой и тестированием программ: основные подходы и ограничения.
В соответствии с целью была определена необходимость постановки и решения следующих задач:
– изучить виды тестирования;
– изучить тестирование надежности;
– изучить организацию процесса тестирования;
– изучить финишные этапы разработки программных систем;
– изучить программные средства для оценки качества программных систем.
Текст работы:
В процессе выполнения данной работы были получены следующие результаты. C постоянным ростом важности информации для жизни общества возрастает цена ошибок в разрабатываемых программных системах. В таких условиях на первый план выходят технологии и методы тестирования систем, позволяющие выявить и исправить ошибки.
Были описаны следующие виды тестирования программных систем, к которым относятся:
– функциональное тестирование — представляет собой определенную проверку соответствия определенной программной системы некоторым требованиям, которые были заявлены в ее спецификации;
– системное тестирование — представляет собой высокоуровневую проверку функционала всей программно системы или некоторой системы в целом;
– тестирование производительности — предполагает тестирование, которое проводится для определения, насколько быстро будет работать программная система и др.
Более подробно была проанализирована надежность программных систем. Надежность программной системы является гораздо наиболее важной его характеристикой чем другие время ее выполнения, и в тоже время абсолютная характеристика надежности современной программной системы, по-видимому, является недостижимой, до сих пор нет общепринятых мер по которым можно было бы определить надежность конкретной программной системы.
Определены этапы разработки программных систем, согласно ГОСТ 34.601-90, к ним относятся: формирование требований к системе; разработка концепции системы; техническое задание; эскизный проект; технический проект; рабочая документация; ввод в действие; сопровождение системы.
Также, были проанализированы программные средства, предназначенные для тестирования программных систем.
Программная система Locmetrics является очень простым бесплатным продуктом с минималистским пользовательским интерфейсом. К числу поддерживаемых языков программирования относятся – C/C++, C#, Java, php, python, SQL.
Программная система USC Codecount представляет собой бесплатный программный продукт с открытым исходным кодом на языке ANSI C, который был разработан Университетом Южной Калифорнии.
Программная система Verisoft Complexity Measures Tool является коммерческим продуктом с достаточно большой ценой в 1250 евро. Программная система Verisoft Complexity Measures Tool поддерживает только языки C/C++ и Java.
Программная система Borland Together является коммерческим инструментом, используемый для UML-моделирования, дополненный возможностями вычисления метрик исходного кода анализируемой программной системы.
Программная система Eclipse Metrics Plugin представляет собой специальный подключаемый модуль для IDE Eclipse, который был разработан в рамках открытого проекта.
В программной системе Duvessa Estimate Easy UC реализовано множество инструментов для выполнения оценки экономических параметров определенного проекта составляют центральную часть класса Software Estimation, которые используются для выполнения оценки по трудоемкости выполняемых работ, сроков по реализации и стоимости будущей программной системы и часто являются максимально сложными, чем средства по расчету метрик проекта.
Заключение:
Актуальность выполнения данной работы обусловлена тем, что новые методологии разработки, таких как ускоренная разработка прикладных программных приложений (RAD), привели к стремительным разработкам специализированных средств автоматизированного тестирования программных систем. Среди основных особенностей таких методологий можно выделить возможность получения разных версий разрабатываемой программной системы. Отсюда, современные технологии тестирования приобрели итеративную природу — каждая последующая версия сопровождается большим количеством тестов, а так же необходимости переработки существующих средств тестирования программных систем.
В свою очередь, в процессе разработке программных систем, в целях снижения затрат, активно используются методы и алгоритмы проектирования программных систем. Но не все они могут подойти для разработки средств тестирования, кроме того в условиях изменений тестируемой программной системы возникает необходимость в постоянной переработке существующих средств.
Среди основных видов тестирования программных систем можно отметить следующие: функциональное тестирование; системное тестирование; тестирование производительности программной системы; нагрузочное тестирование компонентов системы; стресс тестирование; регрессионное тестирование разработанных алгоритмов; модульное тестирование структуры программной системы; тестирование безопасности; тестирование локализации; юзабилити тестирование.
Надежность программной системы является гораздо наиболее важной ее характеристикой чем другие время ее выполнения, и в тоже время абсолютная характеристика надежности современной программной системы, по-видимому, является недостижимой, до сих пор нет общепринятых мер по которым можно было бы определить надежность конкретной системы.
Объект исследования – отладка и тестирование программ.
Предмет исследования – виды тестирования, тестирование надежности, организация процесса тестирования. Финишные этапы разработки программных систем.
Целью данной работы является изучение вопросов, связанных с отладкой и тестированием программ: основные подходы и ограничения.
В соответствии с целью была определена необходимость постановки и решения следующих задач:
– изучить виды тестирования;
– изучить тестирование надежности;
– изучить организацию процесса тестирования;
– изучить финишные этапы разработки программных систем;
– изучить программные средства для оценки качества программных систем.
Список литературы:
1. Тестирование и отладка программ
1.1. Виды тестирования
Функциональное тестирование.
Проверка функциональности (тестирование методом «черного ящика») представляет собой определенную проверку соответствия определенной программной системы некоторым требованиям, которые были заявлены в ее спецификации. В процессе функционального тестирования могут выполняться как операции полного тестирования заявленной функциональности, так и выполнение проверки только базовой функциональности конечной программной системы.
Тестирование «белого ящика» (white box) представляет собой использование операций тестирования на соответствие программной системы некоторым требованиям с учетом знаний внутренней структуры реализации программной системы (при наличии исходного кода и технической спецификации).
Тестирование «черного ящика» (black box) представляет собой тестирование на соответствие программной системы заявленным требованиям без знания внутренней структуры реализации программной системы [4].
Системное тестирование.
Системное тестирование представляет собой высокоуровневую проверку функционала всей программно системы или некоторой системы в целом.
Тестирование производительности.
Тестирование производительности предполагает тестирование, которое проводится для определения, насколько быстро будет работать программная система или её отдельная часть под определённой функциональной нагрузкой.
Нагрузочное тестирование.
Нагрузочное тестирование предполагает тестирование, которое предназначено для выполнения проверки полной работоспособности программной системы при возможных стандартных нагрузках и для определения наибольшего пика ее непосредственной производительности, при котором программная система будет работать правильно и без некоторых сбоев [1].
Стресс тестирование.
Стресс тестирование представляет собой тестирование, которое предназначено для выполнения проверки полной работоспособности программной системы при наличии нестандартных нагрузок и для выявления максимально возможного пика программной системы, при котором программная система будет работать правильно и без сбоев. Так же стресс тестирование используется для выявления результатов, при которых программная система переходит в нерабочее состояние, т.е. выходит из строя.
Регрессионное тестирование.
Регрессионное тестирование выполняется для проверки влияния новых функций, улучшений и исправлений дефектов на существующую функциональность программной системы и не возникают ли старые дефекты исходной программной системы.
Модульное тестирование.
Каждая достаточно сложная программная система состоит из отдельных программных частей, отдельных модулей, которые выполняют определенные функции в составе программной системы. Для того, чтобы определить правильность и корректность работы всей программной системы, необходимо сперва выполнить тестирование каждого отдельного модуля программной системы по отдельности. Если возникнуть какие-либо проблемы в процессе тестирования программной системы в целом это поможет намного проще выявить программные модули, которые вызвали проблемы, и устранить проблемы обработки информации. Такого рода тестирование программных модулей по отдельности называется модульным тестированием [3].
Тестирование безопасности.
Тестирование безопасности представляет собой стратегию тестирования, которая используется для непосредственной проверки общей безопасности программной системы, а также для выполнения качественного анализа возможных рисков, которые связаны с непосредственным обеспечением целостного подхода к организации защиты прикладного программного приложения, атак хакеров, широкого спектра вирусов, несанкционированного доступа к конфиденциальной информации.
Тестирование локализации.
Тестирование локализации — это процесс тестирования локализованной версии программного продукта. Проверка правильности перевода элементов интерфейса пользователя, проверка правильности перевода системных сообщений и ошибок, проверка перевода раздела «Помощь»/»Справка» и сопроводительной документации [9].
Юзабилити тестирование.
Тестирование удобства пользования — это метод тестирования, направленный на установление степени удобства использования, обучаемости, понятности и привлекательности для пользователей разрабатываемого продукта в контексте заданных условий. Выявлять проблемы, связанные со специфическим механизмом интерфейса определять, существуют ли проблемы с удобностью интерфейса для навигации, использования основного функционала.
1.2. Тестирование надежности
Надежность программной системы является гораздо наиболее важной ее характеристикой чем другие время ее выполнения, и в тоже время