Similar presentations:
Общая_структура_качества_программных_продуктов
1.
Общая структуракачества
программных
продуктов
Качество программного продукта - это его способность
удовлетворять определенным требованиям. Структура качества
включает в себя различные аспекты, которые влияют на его
функциональность, надежность, удобство использования и
безопасность.
2.
Методы разработки программныхпродуктов
Существует множество методов разработки программных продуктов. Каскадная
модель, Agile, Scrum и Kanban - это лишь некоторые из них. Выбор метода зависит от
размера и сложности проекта, а также от требований заказчика.
1 Каскадная модель
2 Agile
3 Scrum
4 Kanban
3.
Каскадная модельЭта модель предполагает последовательное выполнение этапов
разработки, начиная от сбора требований и заканчивая
тестированием.
Следуя каскадной модели, разработчик переходит от одной стадии к другой
строго последовательно. Сначала полностью завершается этап
«определение требований», в результате чего получается список
требований к ПО. После того как требования полностью определены,
происходит переход к проектированию, в ходе которого создаются
документы, подробно описывающие для программистов способ и план
реализации указанных требований. После того, как проектирование
полностью выполнено, программистами выполняется реализация
полученного проекта. На следующей стадии процесса происходит
интеграция отдельных компонентов, разрабатываемых различными
командами программистов. После того, как реализация и интеграция
завершены, производится тестирование и отладка продукта; на этой стадии
устраняются все недочёты, появившиеся на предыдущих стадиях
разработки. После этого программный продукт внедряется и
обеспечивается его поддержка — внесение новой функциональности и
устранение ошибок.
Тем самым, каскадная модель подразумевает, что переход от одной фазы
разработки к другой происходит только после полного и успешного
завершения предыдущей фазы, и что переходов назад либо вперёд или
перекрытия фаз — не происходит.
4.
AgileAgile методы отличаются гибкостью и итерационным подходом. Они
основаны на постоянном взаимодействии с заказчиком.
Принципы:
● Конечная цель работы в любой момент может измениться, и
это нормально. Более того, к этому даже нужно стремиться,
так как за несколько месяцев разработки цели и требования
клиентов просто не могут остаться теми же в условиях
постоянно меняющегося мира.
● На аналитику и планирование нужно тратить меньше
времени, поскольку позже их потребуется проводить снова.
Лучше уделить больше внимания техническому
совершенству продукта.
● В результате каждого небольшого цикла должен получаться
готовый продукт, пусть и без некоторых функций.
● Новые требования к продукту обязательно должны быть
учтены и добавлены в следующих рабочих циклах.
● Сроки проекта должны быть гибкими, с запасом на
задержки и изменения.
Agile — идеальный подход для стартапов и небольших
проектов на заказ. Тогда большинство минусов сходят на нет
— отсутствие структуры не мешает, заказчик сам
заинтересован в тесном общении, команда редко меняется, а
внедрение занимает меньше времени
5.
ScrumScrum - это фреймворк для управления проектами, который
использует итерации и команды для достижения целей.
это метод командной работы по установленным
инструментам. Это очень гибкий подход к управлению
командой: сложные процессы разбиваются на мелкие,
управляемые задачи. Это позволяет адаптироваться и
повышает эффективность.
Держать активную связь между всеми участниками команды, быстро
решать проблемы и вместе идти к цели.
Фокусировать команду на одной задаче (или на выбранном
ограниченном списке задач) и не хвататься за всё сразу.
Сделать процесс разработки продукта прозрачным — когда все в курсе,
что происходит и какие задачи в работе.
На ранних этапах определить и минимизировать риски.
При соблюдении условия постоянного контакта и обмена мнениями
стабильно улучшать продукт и оптимизировать процессы.
Быстро адаптироваться к изменениям.
6.
KanbanKanban - это метод визуализации и управления задачами, который помогает улучшить эффективность разработки.
Для упрощения контроля рабочий процесс визуализируют на доске, поделенной на колонки. Каждая колонка — это текущее состояние работ.
Непосредственно задачи отображают в канбан-карточках — там можно прочитать их описание, уровень важности и дополнительную информацию.
Когда задача завершает определенный этап, карточку с её описанием переносят в соответствующую колонку. Взглянув на доску, можно сразу понять,
как обстоит ситуация с проектом.
7.
Средства разработки программныхпродуктов
Современные средства разработки предлагают широкий набор инструментов для
упрощения процесса создания программного обеспечения. В их числе IDE, системы
контроля версий, инструменты тестирования и дебаггинга.
IDE (Integrated Development
Системы контроля версий
Environment)
Системы контроля версий позволяют
Интегрированная среда разработки
отслеживать изменения в коде и
предоставляет все необходимые
восстанавливать предыдущие версии.
инструменты для написания,
компиляции и отладки кода.
Инструменты тестирования
Инструменты дебаггинга
Эти инструменты помогают
Инструменты дебаггинга позволяют
автоматизировать тестирование и
отлаживать код и анализировать
обнаруживать ошибки в коде.
причины ошибок.
8.
IDE (Integrated Development Environment)IDE (от англ. Integrated Development Environment, «интегрированная среда разработки») — это
программа, в которой разработчики пишут, проверяют, тестируют и запускают код, а также ведут
большие проекты. Она включает в себя сразу несколько инструментов: редактор для написания
кода, сервисы для его проверки и запуска, расширения для решения дополнительных задач
разработки.
Его задача — обеспечить программисту удобное пространство для написания кода, с подсветкой
синтаксиса и автозаполнением отдельных функций.
IDE — более комплексный инструмент. Он обязательно включает в себя редактор кода и массу
дополнительных инструментов. В IDE всегда доступен запуск кода сразу, без дополнительных
настроек.
Одноязычные. Поддерживают только один конкретный язык программирования и
оптимизированы именно для него.
Мультиязычные. Поддерживают, конечно, не все, но многие языки программирования.
Дополнительные можно добавлять с помощью устанавливаемых модулей.
9.
Системы контроля версийПрограммное обеспечение контроля версий отслеживает все вносимые в код изменения в специальной базе
данных. При обнаружении ошибки разработчики могут вернуться назад и выполнить сравнение с более ранними
версиями кода для исправления ошибок, сводя к минимуму проблемы для всех участников команды.
● История изменений
СКВ позволяет проследить историю изменений в файлах проекта. Можно легко
узнать, когда, кем и зачем был создан, удален или отредактирован какой-либо файл в
репозитории. Это облегчает процесс поиска ошибок и отладки кода, помогает
избежать путаницы и конфликтов.
● Защита исходного кода
СКВ предотвращает случайное или намеренное удаление, а также изменение
важных файлов или функций, что может привести к нарушению работы программы.
● Возможность отката
СКВ позволяет восстанавливать предыдущие версии кода. Это может быть
необходимо в случае ошибки или для сравнения с текущей версией.
● Командная работа
С помощью СКВ удобно организовывать совместную работу над проектом. Каждый
участник может выполнять свою часть работы, а система помогает объединять
результаты.
10.
Инструменты тестированияИнструменты тестирования ПО предназначены для проверки ИТрешения с целью его улучшения. Они помогают находить и исправлять
дефекты за более короткий срок и проверять работоспособность ПО в
различных сценариях. Инструменты обеспечивают безопасную работу
пользователей, а также повышают эффективность процесса разработки с
помощью автоматизации повторяющихся задач тестирования. Это
приводит к созданию надёжных, удобных и высокопроизводительных
решений.
Инструменты тестирования должны эффективно запускать и выполнять
тесты на различных типах ПО, что позволит сэкономить время по
сравнению с ручным прогоном тест-кейсов.
11.
Инструменты дебаггинга:Отладчики - инструменты, которые позволяют искать и исправлять ошибки в программном коде.
Этапы отладки:
● Запуск программы
● Анализ ошибок
● Повторное тестирование
12.
Методы отладкиМетод ручного тестирования
Отладка программы заключается в тестировании вручную с помощью тестового набора, при работе с которым была допущена
ошибка. Несмотря на эффективность, метод не получится использовать для больших программ или программ со сложными
вычислениями. Ручное тестирование применяется как составная часть других методов отладки.
Метод индукции
В основе отладки системы — тщательный анализ проявлений ошибки. Это могут быть сообщения об ошибке или неверные
результаты вычислений. Например, если во время выполнения программы завис компьютер, то, чтобы найти фрагмент
проявления ошибки, нужно проанализировать последние действия пользователя. На этапе отладки программы строятся
гипотезы, каждая из них проверяется. Если гипотеза подтвердилась, информация об ошибке детализируется, если нет —
выдвигаются новые.
Метод дедукции
Сначала специалисты предлагают множество причин, по которым могла возникнуть ошибка. Затем анализируют их, исключают
противоречащие имеющимся данным. Если все причины были исключены, проводят дополнительное тестирование. В обратном
случае наиболее вероятную причину пытаются доказать.
13.
Критерии качества программныхпродуктов
Критерии качества определяют требования к программному продукту, которые
необходимо удовлетворить. Они могут включать в себя функциональность,
надежность, производительность, безопасность и удобство использования.
Функциональность
Соответствие требованиям
заказчика.
Надежность
Стабильность и отсутствие ошибок.
Производительность
Скорость и эффективность работы.
Безопасность
Защита от несанкционированного
доступа и злоупотреблений.
Удобство использования
Простота и интуитивность
интерфейса.
14.
Процессы обеспечения качестваПроцессы обеспечения качества (QA) направлены на выявление и устранение дефектов в программном продукте. Они включают в себя
тестирование, анализ кода и документирование дефектов.
Планирование
1
Определение целей и стратегии QA.
2
Тестирование
Проведение тестов для выявления ошибок.
Анализ
3
Анализ результатов тестирования и документирование
дефектов.
4
Исправление
Исправление ошибок и реализация необходимых
Верификация
Проверка исправленных дефектов.
5
изменений.
15.
Роль тестирования в обеспечении качестваТестирование является ключевым элементом обеспечения качества. Оно позволяет выявлять ошибки в программном
продукте и улучшать его надежность и функциональность.
Типы тестирования
Цели тестирования
1. Функциональное
1. Выявление ошибок
2. Нагрузочное
2. Проверка соответствия требованиям
3. Интеграционное
3. Улучшение качества
4. Системное
4. Снижение рисков
5. Приемочное
16.
Статические методы анализакачества
Статические методы анализа основаны на исследовании кода без его запуска. Они
позволяют выявить ошибки и уязвимости на ранних этапах разработки.
Анализ кода
Проверка синтаксиса и семантики кода.
Анализ структуры
Проверка организации и структуры кода.
Анализ потока данных
Проверка передачи и обработки данных.
17.
Динамические методы анализакачества
Динамические методы анализа основаны на запуске программного продукта и наблюдении
за его работой. Они позволяют выявить ошибки и проблемы, которые нельзя обнаружить
статическим анализом.
Тестирование
Проведение различных тестов для выявления ошибок.
Профилирование
Анализ производительности и эффективности программы.
Мониторинг
Отслеживание работы программы в реальном времени.
18.
Инструменты управления качествомИнструменты управления качеством помогают автоматизировать процессы QA и обеспечить единый подход к обеспечению
качества программных продуктов.
Инструменты управления проектами
Системы отслеживания ошибок
Помогают планировать и управлять задачами, отслеживать
Позволяют регистрировать, отслеживать и управлять
прогресс и координировать работу команды.
дефектами в программном продукте.
19.
Стандарты качествапрограммных продуктов
Стандарты качества предоставляют наборы правил и рекомендаций
для обеспечения качества программных продуктов. Они помогают
унифицировать подход к разработке и тестированию.
1
3
ISO 9126
2
IEEE
Стандарт управления
Набор стандартов для
качеством для всех видов
разработки программного
организаций.
обеспечения.
CMMI
Модель оценки зрелости качества программного обеспечения.
programming