Добавлен: 15.06.2023
Просмотров: 292
Скачиваний: 2
СОДЕРЖАНИЕ
1. Основные понятия качества и тестирования программ
1.1. Качество программного обеспечения
1.2. Методы контроля качества программного обеспечения
1.3. Финишные этапы разработки программных систем
1.4. Терминология тестирования
2. Виды тестирования, тестирование надежности, организация процесса тестирования
3. Практические вопросы отладки и автоматизированного тестирования
ВВЕДЕНИЕ
Актуальность темы Любая разработка и внедрение новых программных продуктов требует значительных материальных и временных затрат. Привлекаемые финансовые и материальные средства должны обеспечить надлежащий эффект и отдачу. Именно поэтому возникает необходимость повышения качество выпускаемого ПО, сокращение времени на его разработку, тестирование и сопровождение.
Рыночные отношения требуют, чтобы программное обеспечение для их заказчика было качественным и подготовленное в короткий срок. Следовательно, продуктивно должны работать и разработчики программного обеспечения, то есть программисты, и тестировщики этого программного обеспечения. Добиться продуктивности в этом вопросе (качества, быстроты, минимальных затрат) можно за счет дальнейшей автоматизации и модернизации бизнес-процессов с помощью программных приложений так называемых промежуточных версий программ.
Автоматизация работ по тестированию имеет огромную ценность особенно там, где тестовые скрипты повторяются. Такое тестирование на стадиях разработки и интеграции, когда повторно используемые скрипты могут выполняться много раз, весьма эффективно. Другой пример эффективного использования автоматизированного тестирования - регрессионное тестирование. Регрессионные тесты дают возможность проверить качество функций предоставляемой системы или программного продукта. Автоматизация позволяет выполнить регрессионное тестирование наиболее эффективно. Возможности автоматизированного тестирования продолжают расти, позволяя идти в ногу с растущими потребностями в более быстром создании менее дорогостоящих приложений лучшего качества.
Количество программного обеспечения выпускающегося на рынок IT огромен. И конкуренция между программными продуктами переходит на новый уровень – качества, безошибочности, увеличенной производительности. Данная гонка вызывает повышенное внимания к тестированию программных продуктов и их качеству.
Цель работы – изучить теоретический материал по теме тестирования и отладки программного обеспечения.
Тема данной работы рассматривается в работах как российских, так и зарубежных ученых, таких как Бабенко Л.П., Лавришева Е.М, Борзов Ю. В., Уртанс Г. Б., Шимаров В. А., Канер С., Фолк Д., Нгуен Е.К.,Котляров В.П.,Лаврищева Е.М., Коротун Т.М.,Шимаров В. А., Фаулер М
Для достижения поставленной цели работы необходимо решить следующие задачи:
1. Рассмотреть место процесса тестирования в разработке программного обеспечения
2. Обобщить знания по характеристикам качества программного обеспечения
3. Описать основные определения тестирования и отладки.
4. Рассмотреть основные виды тестирования.
5. Изучить организацию процесса тестирования.
6. Рассмотреть способы отладки программного обеспечения в современной среде программирования.
7. Показать на практике создания скрипта для автоматизированного тестирования.
Структура работы. Работа выполнена на 38листах, содержит 15 рисунков, 1 листинг программ.
1. Основные понятия качества и тестирования программ
Рассматривая вопросы тестирования и отладки программ необходимо понимать, какую цель преследует тестировщик и разработчик программных продуктов, создавая свой продукт и проверяя его. Какие качества программ будут протестированы, и как пользователь может убедиться в том, что именно этот программный продукт он заказывал. То есть перед рассмотрением темы тестирования программного продукта, необходимо выяснить, что же будет пониматься по качественным программным кодом.
1.1. Качество программного обеспечения
В курсовой работе для определения качество программного обеспечения будем использовать определение, данное в стандарте ИСО 9126 [6], который трактует его как сумму характеристик, связанных с возможностью удовлетворения явно выраженных или подразумеваемых потребностей всех заинтересованных сторон.
Принято различать понятия внутреннего качества, связанного с характеристиками самого программного обеспечения, без учета его поведения.[16] И понятие внешнее качество, которое характеризует программное обеспечение с точки зрения его поведения; при использовании в различных контекстах - качество, которое ощущается пользователями в конкретных программных сценариев работы. Для всех этих аспектов качества введены метрики, с помощью которых возможно оценить каждый атрибут. Кроме того, для создания программного обеспечения хорошего качества важно соблюдать процессы его построения. Взаимосвязь между аспектами качества принятой в ISO 9126, показано на рисунке 1.
Стандарт ISO 9126 предлагает использовать для описания внутреннего и внешнего качества программного обеспечения многоуровневую модель. На верхнем уровне выделены 6 основных характеристик качества программного обеспечения. Каждая характеристика описывается несколькими из его атрибутов.[7] Каждый атрибут определяется набором показателей, которые позволяют достоверно его оценивать. Набор характеристик и атрибутов качества в соответствии с ISO 9126, показан на рисунке 2.
Рисунок 1 – Качество программного обеспечения по ISO 9126[6]
Ниже приведены определения характеристик и атрибутов ISO 9126: 2001:[16]
- Функциональность (functionality) – основная характеристика качества программного обеспечения, которая отвечает за решение в определенных условиях задач, нужных пользователям.
- Надежность (reliability)- основная характеристика качества программного обеспечения, которая отвечает за поддержку определенного уровня работоспособности в заданных условиях.
- Удобство использования (usability) или практичность. - характеристика качества программного обеспечения, которая отвечает за удобное в обучении и использовании.
- Производительность (efficiency) или эффективность. - основная характеристика качества программного обеспечения, которая отвечает за обеспечение необходимого уровня работоспособности по отношению к выделяемым для этого ресурсам. [7]
- Удобство сопровождения (maintainability)..
- Переносимость (portability). - характеристика качества программного обеспечения, которая отвечает за сохранение работоспособности при переносе из одного окружения в другое, включая организационные, аппаратные и программные аспекты окружения. [7]
Рисунок 2 - Характеристики и атрибуты качества ПО по ISO 9126[6]
Рассмотренные атрибуты качества закреплены в стандартах, но это не значит, что они вполне исчерпывают понятие качества программного продукта.
1.2. Методы контроля качества программного обеспечения
Методы контроля качества программного обеспечения (рисунок 3) позволяют убедиться, что некоторые характеристики программного обеспечения разработчики программного обеспечения уже были достигнуты.[12] Методы контроля качества помогают определить, можно ли получить в результате то, что хотел заказчик или нет, и найти ошибки, дефекты и отклонения от требований.
• Верификация указывает на то, что программное обеспечение разрабатывается в соответствии со всеми требованиями к нему, или что результаты следующего этапа развития, будут согласованы с ограничениями, изложенными в предыдущих этапах.[12]
• Валидация - контроль, что сам продукт является правильным, то есть подтверждение того, что он действительно отвечает потребностям и ожиданиям пользователей, клиентов и других заинтересованных сторон.[10]
Тестирование программного обеспечения - деятельность в процессе разработки программного обеспечения, которая связана с реализацией процедур, направленных на обнаружение (доказательство) ошибок (несоответствий, неполноты, неясности и т.д.) программного обеспечения.
Процесс тестирования в первую очередь относится к проверке реализации программного обеспечения, которая доказывает ее правильность, соответствие требованиям реализации, то есть тестирование – контролируемая проверка программы с целью выявления несоответствия ее поведения и требований.
Рисунок 3 - Тестирование, верификация и валидация[13]
Цель проверки - добиться гарантий того, что код отвечает требованиям реализуемых без непредусмотренных функций и отвечает проектным спецификациям и стандартам. Процесс проверки включает в себя осмотр, тестирование кода, анализ результатов тестирования, формирования и анализа проблем отчетности.
Цель проверки - доказательство того, что в результате разработки программного обеспечения разработчики достигли цели, которая была запланирована. Валидация - проверка соответствия ожиданиям заказчика.
1.3. Финишные этапы разработки программных систем
Модель жизненного цикла программного продукта – структура, которая определяет последовательность выполнения и взаимосвязи процессов, действий и задач в течении жизненного цикла. [2]
Структура модели жизненного цикла обусловлена спецификой, масштабом и сложностью проекта и специфики условий, в которых программная система разрабатывается и функционирует.
Классическая модель процесса разработки разрабатываемого программного обеспечения является водопадная модель (Waterflow), в котором процесс разработки разрабатываемого программного обеспечения представляет чередования фаз (рисунок 4.): [3, с.22]
- анализ требований разрабатываемого программного продукта,
- проектирование разрабатываемого программного продукта,
- внедрение разрабатываемого программного продукта;
- интеграцию разрабатываемого программного продукта;
- тестирование разрабатываемого программного продукта.
К финишным этапам разработки относят[13]:
- Фазу сопровождения;
- Фазу развития.
Поддержка программного обеспечения или фаза сопровождения- это фаза совершенствование процессов, оптимизации и устранения дефектов программного обеспечения после передачи в эксплуатацию. Программное обеспечение находящиеся на сопровождении - это один из этапов жизненного цикла программного обеспечения, следующий этап передача используемого программного обеспечения. На этом этапе занимаются отслеживанием изменений, внесенных в программу для того, чтобы возможно было исправить любые дефекты в использовании, а также добавить новые функциональные возможности для повышения удобства (юзабилити) и применимости программного обеспечения.[15]
Рисунок 4 – Водопадная модель разработки программного обеспечения[12]
Фаза развития проходит параллельно с его сопровождением, в это время программы могут работать и при отсутствии поддержки или продолжать в случае полной поддержки в течение некоторого времени. После удаления программного обеспечения с продажи на протяжении определенного времени также может быть осуществлена ее поддержка. В процессе эксплуатации программного обеспечения осуществляется решении любых вопросов.
1.4. Терминология тестирования
Если рассматривать программу как аналог формулы в математике[10, с.45], то ее можно записать как
f = f1* f2* f3*... * fn
f1,f2,... fn – операторы языка программирования.
Существует два метода обоснования истинности формул:
- Формальный подход или доказательство осуществляется путем перехода от одних формул к другим по строгим правилам, где процедура перехода от формулы к формуле сводится к последовательности текстовых подстановок: [14]
A**3 = A*A*A
A*A*A = A -> R, A*R -> R, A*R -> R
Преимущество: обращение к конечному множеству символов.
- Интерпретационный подход истинность интерпретируемых формул проверяется на конечных множествах возможных значений. Интерпретационный подход используется при экспериментальной проверке соответствия программы своей спецификации. Применение интерпретационного подхода в форме экспериментов над исполняемой программой составляет суть отладки и тестирования. [7]
Отладка (debug) – процесс локализации и поиска, а также исправления ошибок в программе
Тестирование - процесс выявления расхождений фактов с требованиями (ошибок). [13]
Тестирование можно разделить на статическое и динамическое:
- Статическое тестирование является формальным методом анализа без исполнения тестируемой программы.
- Динамическое тестирование выявление ошибок на исполняемом коде с помощью специальных инструментов автоматизации тестирования.
Выводы по главе 1
1. Рассмотрены основные процессы разработки программного обеспечения.
2. Определенно место тестирования в процессе проверки качества программного обеспечения.
3. Рассмотрены основные характеристики качества программного обеспечения, которые должны быть протестированы:
- Функциональность программного обеспечения;
- Надежность программного обеспечения;
- Удобство использования программного обеспечения;
- Производительность программного обеспечения;
- Удобство сопровождения программного обеспечения;
- Переносимость программного обеспечения.