Введение 3
Глава 1 Теоретические аспекты тестирования и обеспечения качества программного продукта 8
1.1 Значение качества разработки программного обеспечения в каскадной
методологии 8
1.2 Основные концепции оценки качества программного обеспечения 15
1.3 Классификация методов тестирования программного обеспечения 22
Глава 2 Практические методы обеспечения качества программного обеспечения
31
2.1 Влияние технической документации на обеспечение качества программного
продукта 31
2.2 Классификация дефектов релиза и процесс их устранения 41
2.3 Принципы и алгоритм тестирования новых функциональностей и
выполнения регрессивного тестирования 48
Глава 3 Реализация оценки качества релиза на примере приложения «Menu 1.0»
57
3.1 Формирование технической документации приложения «Menu 1.0» 57
3.2 Планирование этапа тестирования приложения «Menu 1.0» 65
3.3 Оценка качества релиза приложения «Menu 1.0» 74
Заключение 83
Список используемых источников 86
Приложение А 89
Приложение Б 92
Возникновение темы тестирования программного обеспечения пришлось на конец XX века. Бурное развитие различных технологий привело к росту рынка производства программного обеспечения и к пересмотру вопросов обеспечения качества и надёжности разрабатываемых программных обеспечений.
Актуальность исследования магистерской диссертации определяется несогласованностью общепринятых теоретических концепций о классической подготовке технической документации проекта по разработке программного обеспечения, а также организации и реализации этапа тестирования как оценки качества планируемого продукта и применения методик устранения найденных дефектов продукта.
Научная проблема исследования заключается в том, что современному специалисту предоставлена широкая база классических сочинений по теории о процессе тестирования программного обеспечения на основе спецификаций и дизайнов, сформированных по собранным требованиям заказчика к продукту, однако возникают значительные трудности с поиском практического решения возникающих проблем, связанных непосредственно с процессом обращения к документации на каждом этапе разработки проекта.
Цель исследования в рамках данной магистерской диссертации состоит в изучении практических методов и инструментов многокритериального оценивания качества релизов программного обеспечения и в их применении в разработке и тестировании приложения «Menu 1.0», необходимого для автоматизации деятельности организации общественного питания.
Объектом исследования в данной работе выступает процесс планирования и реализации тестирования релиза программного обеспечения.
Предметом исследования являются методы и инструменты многокритериального оценивания качества релиза программного обеспечения, используемые в процессе тестирования.
Гипотеза исследования состоит в предположении, что применение выявленных методов и инструментов в рамках данной магистерской диссертации позволит облегчить процесс тестирования программного обеспечения и улучшить качество выдаваемого релиза программного обеспечения, в том числе обеспечить разработку приложения «Menu 1.0» для автоматизации деятельности организации общественного питания.
Для достижения поставленной цели данной магистерской диссертации необходимо решить следующие задачи:
• проведение анализа литературы и источников, соответствующих выбранной теме исследования;
• формирование теоретических знаний о процессе тестирования как этапа методологии разработки программного обеспечения;
• рассмотрение основных концепций оценки качества релиза;
• изучение классификации методов тестирования программного обеспечения и их особенностей;
• формирование знаний о технической документации проекта разработки программного обеспечения;
• проведение анализа основных методик разработки плана и стратегии тестирования программного обеспечения;
• изучение классификации дефектов программного обеспечения, найденных в процессе тестирования;
• выявление эффективных методов и способов устранения дефектов релиза программного обеспечения;
• рассмотрение возможных последствий и влияния на программное обеспечение, возникших при упущении дефектов на различных этапах разработки;
• применение выявленных методов и инструментов на примере реализации оценки качества релиза приложения для предприятия общественного питания....
Практические методы и инструменты оценки качества релиза программного обеспечения рассмотрены в магистерской работе на примере реализации приложения «Menu 1.0» через призму знаний, полученных при прохождении преддипломной практики в компании ООО «НетКрэкер». В ходе проведенного исследования были изучены концепции оценки и обеспечения качества программного продукта, разработанного при прохождении основных этапов каскадной методологии разработки, а также проанализированы распространенные методы тестирования и классификация дефектов, найденных по результатам реализации тестирования.
В ходе исследования были выявлены и сформулированы следующие выводы:
• тестирование как этап разработки в каскадной модели является ключевым, потому как именно команда по обеспечению качества может сделать вывод о соответствии программного обеспечения требованиям заказчика и выдвинуть решение о допуске программного обеспечения к эксплуатации. Процесс тестирования позволяет избежать негативных последствий как для проекта, так и для бизнеса, а также обеспечить соответствующее качество, исключая человеческий фактор в лице команды разработчиков бизнес-аналитиков;
• тестирование представляет собой процесс на основе исследовательского метода, позволяющий проводить испытание программного обеспечения с целью реализации проверки соответствия подготовленных требований проекта с фактическим состоянием разработанного программного обеспечения, а также устранения найденных несоответствий. Следует учитывать, что процесс обеспечения качества и процесс тестирования отличаются базовыми концепциями. Концепция тестирования заключается в улучшении качества программного обеспечения путем обнаружения дефектов фактически разработанного продукта, а концепция обеспечения качества направлена на улучшение процесса разработки продукта с первого этапа жизненного цикла с целью предотвращения возможных дефектов на этапе тестирования;
• важную роль в разработке и обеспечении качества проекта играет техническая документация. Спецификация представляет собой документ, в котором собраны детальные описания каждого модуля и каждой функции программы. В дизайне описываются расположения модулей, кнопок, ссылок, картинок, а также их определенные сочетания цветов и размеров, которые должны быть созданы в конечном итоге проекта. Вышеуказанная техническая документация формируется по требованиям заказчика проекта. Разработка требований к программному обеспечению — это процесс, состоящий из мероприятий, необходимых для создания и утверждения документов, содержащих системные, функциональные, пользовательские требования, а также бизнес-требования заказчика проекта;
• одним из общепринятых определений дефекта программного обеспечения является расхождение между фактически готовым проектом и его спецификацией, только при условии, что спецификация существует и её содержимое сформулировано детально и правильно. Основным критерием при определении бага выступает наличие или отсутствие реализации проектом требований, которые ожидают получить пользователи;
• существуют различные виды дефектов как со стороны самого решения и имплементации, так и сторонние дефекты тестовой среды, интеграции компонентов, инструментов автоматизированного тестирования или даже в технической документации. Каждый найденный баг обладает жизненным циклом в процессе устранения и должен быть описан максимально детально для дальнейшего устранения разработчиками;
• регрессивное тестирование программного обеспечения представляет собой повторную проверку уже подготовленного релиза после каждого создания новой версии, предназначенную для подтверждения того, что внесенные изменения и добавления в код не повлияли на ту часть проекта, в которой не изменялся код. Чтобы гарантировать высокое качество выпускаемой версии программы при сохранении оптимальных сроков и стоимости, необходим продуманный подход для определения стратегии и достаточного регрессивного покрытия;
• с целью наглядного представления эффективности метода поиска всех возможных покрытий решений в программном обеспечении в данном исследовании был предоставлен пример кода и необходимые вычисления на основе формулы цикломатической сложности Маккейба;
• процесс формирования требований к приложению «Menu 1.0», реализованного для предприятия общественного питания, и планирование его тестирования в данной работе основаны на теоретических знаниях и практических навыках, приобретенных во время прохождения производственной практики в компании ООО «НетКрэкер»;
• для эффективности реализации обеспечения качества приложения «Menu 1.0» применены различные методы тестирования, благодаря которым обнаружены дефекты, упущенные при разработке или не предусмотренные в логике обработке запросов и кода приложения. Список и содержание тестовых сценариев для выполнения тестирования сформирован и отображен в плане тестирования;...
1. Баркалов С.А., Азарнова Т.В., Полухин П.В. Управление процессом тестирования веб-приложений методом фаззинга на основе динамических байесовских сетей // Вестник ЮУрГУ. Серия: Компьютерные технологии, управление, радиоэлектроника. 2017. №2. 51-64 с.
2. Блэк Р. Ключевые процессы тестирования. Планирование, подготовка, проведение, совершенствование. «Лори»: 2006. 544 с.
3. Вигерс К., Битти Дж. Разработка требований к программному обеспечению. 3-е издание, дополненное. СПб.: «БХВ-Петербург», 2019. 736 с.
4. ГОСТ Р 53622-2009. Информационные технологии. Информационновычислительные системы. Стадии и этапы жизненного цикла, виды и комплектность документов. Information technologies. Informationcomputing systems. Life cycle stages and steps, kinds and completeness of the documents. ОКС 03.120.10: утв. и введен в действие Приказом Федерального агентства по техническому регулированию и метрологии от 15 декабря 2009 г. N 964-ст. // Консорциум кодекс.
5. ГОСТ Р 56922-2016/ISO/IEC/IEEE 29119-3:2013. Национальный стандарт Российской Федерации. Системная и программная инженерия. Тестирование программного обеспечения. ОКС 35.080: утв. и введен в действие Приказом Федерального агентства по техническому регулированию и метрологии от 18 мая 2016 г. N 333-ст. // Консорциум кодекс.
6. Канер С., Фолк Дж., Нгуен Е.К. Тестирование программного обеспечения. Фундаментальные концепции менеджмента бизнес-приложений. К.: «ДиаСофт», 2001. 544 с.
7. Качество программного обеспечения (Software Quality) // Бизнес-
Анализ в России. [Электронный ресурс]. URL:
https://analytics.infozone.pro/software-quality/ (дата обращения: 22.10.2022).
8. Кон М. Пользовательские истории. Гибкая разработка программного обеспечения. М.: «Диалектика», 2020. 258 с.
9. Корнипаев И. Требования для программного обеспечения: рекомендации по сбору и документированию. М.: «Книга по требованию», 2013. 118 с.
10. Котляров В.П. Основы современного тестирования программного обеспечения, разработанного на C#: Учебное пособие. СПб.: СПбГПУ, 2016. 334 с.
11. Криспин Л., Грегори Дж. Гибкое тестирование. М.: «Вильямс», 2010.
12. Кулаков К.А., Димитров В.М. Основы тестирования программного обеспечения. Петрозаводск: «ПетрГУ», 2018.
13. Майерс Г., Баджетт Т., Сандлер К. Искусство тестирования программ. Спб.: «ДиаСофт», 2014.
14. Майерс Г.Дж. Надежность программного обеспечения. (Software Reliability. Principles and Practices, 1976 [перевод с англ.]). М.: «Мир».
15. Макконнелл С. Совершенный код. Мастер-класс. М.: «Русская редакция», 2017....32