Тестирование
Содержание
Лекция для подготовки к экзамену
OBS перепутал красный и синий каналы, не обращайте внимания
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Бонус: теперь вы знаете, как были выбраны цвета интерфейса Microsoft Office
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Вопросы
✔️ 1. Что является объектом тестирования?
Объект тестирования – некоторое Программное Обеспечение или Программный Продукт.
Отличие ПО от Программного Продукта в том, что Программный Продукт реализуется среди пользователей и включает некоторые обязательства перед ними, а Программное Обеспечение может быть просто неким вспомогательным инструментом разработчика.
✔️ 2. Чем отличается коробочный продукт от заказного продукта?
Коробочный программный продукт — это программное обеспечение, предназначенное для неопределённого круга покупателей и поставляемое на условиях «как есть», со стандартными для всех покупателей функциями.
Заказной программный продукт — ПП, появление которого обусловлено требованием конкретного заказчика и продажа которого может, по требованию заказчика, сопровождаться проектной доработкой или разработкой функций, дополняющих стандартные (базовые) возможности.
✔️ 3. Перечислите основные этапы процесса разработки ПП. Какова основная задача каждого из них?
- Планирование — Project Manager разрабатывает план проекта (процесса разработки, включая финансы, риски, ресурсы и прочее). План включает в себя анализ всех последующих этапов.
- Сбор и анализ требований — аналитики формируют требования.
- Проектирование архитектуры — системный архитектор готовит список необходимых технологий, применяемых на уровне реализации.
- Разработка — разработчики создают код и сопровождающую документацию.
- Тестирование — тестировщики создают тест-кейсы и отчеты о найденных дефектах.
- Документирование — технический писатель пишет документацию для конечного пользователя.
- Внедрение и сопровождение — настройка окружения, разворачивание системы в конечном окружении (внедрение), консультации и ответы на вопросы, исправление дефектов, найденных пользователями (сопровождение). За это отвечают почти все в команде (кроме, разве что, технического писателя, если нет ошибок в документации).
- (опционально) Вывод из эскплуатации
Последовательность этапов определяет модель жизненного цикла.
✔️ 4. С какими процессами взаимодействует процесс тестирования?
- Планирование — Выделение времени на тестирование. Тест-лид должен предоставить информацию о плане тестирования
- Сбор и анализ требований — Необходимо знать требования, чтобы их проверять
- Проектирование архитектуры — Спорно, потому что знание архитектуры возможно для серого ящика, для чёрного ящика не нужно
- Разработка — Уточнение реализации, доклады разработчикам о дефектах
- Документирование — Тестировщики могут помочь документаторам разобраться с тем, как работает продукт. Также тестировщики могут заниматься верификацией документации.
- Внедрение и сопровождение — Проверка результата разворачивания системы и работа с дефектами во время сопровождения
В конце она говорит, что пересечения есть со всеми процессами, но подробно говорили о том, что выше написано.
✔️ 5. Что такое проект? Перечислите основные роли в проекте?
Проект — предприятие с определёнными датами начала и завершения, предпринятое для создания продукта или услуги в соответствии с заданными ресурсами и требованиями к качеству.
Основные роли в проекте:
- Product Manager — задает стратегию развития продукта. Работает с пожеланиями потребителей и анализирует рынок.
- Project Manager — руководитель проектной команды, ответственный за управление проектом, достижение целей проекта в рамках бюджета, в срок и с заданным уровнем качества. Отличие Product менеджера от Project менеджера в том, что первый придумывает, какие новые функции добавить в продукт, а второй ставит задачи своим подчиненным реализовать новые функции и сообщает продукт менеджеру о сроках, когда эти функции будут готовы.
- Архитектор — принимает решения относительно внутреннего устройства программной системы и её технических интерфейсов.
- Бизнес аналитик — напрямую общается с заказчиками продукта и выясняет их пожелания и требования.
- Системный аналитик — занимается, в основном, анализом данных и принятием решений о том, как будет работать система, какие методы будут использоваться, а также написанием основных технических документов (техническое задание, спецификации). Важная часть работы — функциональный анализ, в результате которого выделяется перечень функций, которые должна выполнять система, а также определение требований к системе.
- Технический писатель — специалист, который занимается составлением документации для конечного пользователя.
- Проектировщик — занимается построением макетов создаваемой системы с учетом удобства ее использования, превращает описанные в ТЗ функции в панели инструментов, кнопки, поля, таблицы и прочее, что видит и с чем взаимодействует пользователь. Результат его работы — макет, как правило черно-белый без графических элементов, который показывает расположение элементов интерфейса и возможные переходы между элементами и страницами (экранами) продукта.
- Дизайнер — прорабатывает все элементы макетов системы, определяя форму, цвета, размер элементов, шрифты, прорисовывают графические элементы (картинки, баннеры, логотип), которые должны присутствовать в продукте.
- Разработчик — специалист, занимающийся разработкой программного обеспечения.
- Тестировщик — специалист, который занимается тестированием программного обеспечения (ПО) с целью выявления ошибок в его работе для их последующего исправления.
- Локализатор — специалист, занимающийся адаптацией ПО к национальным особенностям страны.
- Заказчик — сторона, заинтересованная в осуществлении проекта и достижении его целей. Будущий владелец результатов проекта.
- Пользователи — юридические и физические лица, являющиеся покупателями и пользователями результата проекта, определяющие требования к производимой продукции и оказываемым услугам, формирующие спрос на них.
✔️ 6. Что такое жизненный цикл ПП?
Жизненный цикл программного обеспечения — это период времени, который начинается с момента принятия решения о создании программного продукта и заканчивается в момент его полного изъятия из эксплуатации. Этот цикл — процесс построения и развития ПО.
✔️ 7. Какие модели жизненного цикла ПП Вы можете назвать (дайте краткую характеристику каждой модели, когда ее можно применять, когда не следует)?
В лекции называли эти три.
-
Каскадная (водопадная) модель (англ. waterfall model) — модель процесса разработки ПО, жизненный цикл которой выглядит как поток, последовательно проходящий фазы анализа требований, проектирования, реализации, тестирования, внедрения и сопровождения. Каскадная модель хорошо зарекомендовала себя при построении относительно простых ПО, когда в самом начале разработки можно достаточно точно и полно сформулировать все требования к продукту.
-
Спиральная (циклическая) модель — на каждом витке спирали выполняется создание очередной версии продукта, уточняются требования проекта, определяется его качество и планируются работы следующего витка. Особое внимание уделяется начальным этапам разработки — анализу и проектированию, где реализуемость тех или иных технических решений проверяется и обосновывается посредством создания прототипов.
Достоинства модели:
- позволяет быстрее показать пользователям системы работоспособный продукт, тем самым, активизируя процесс уточнения и дополнения требований;
- допускает изменение требований при разработке программного обеспечения, что характерно для большинства разработок, в том числе и типовых;
- в модели предусмотрена возможность гибкого проектирования, поскольку в ней воплощены преимущества каскадной модели, и в то же время разрешены итерации по всем фазам этой же модели;
Недостатки модели:
- если проект имеет низкую степень риска или небольшие размеры, модель может оказаться дорогостоящей. Оценка рисков после прохождения каждой спирали связана с большими затратами;
- Жизненный цикл модели имеет усложненную структуру, поэтому может быть затруднено её применение разработчиками, менеджерами и заказчиками;
- спираль может продолжаться до бесконечности, поскольку каждая реакция заказчика на созданную версию может порождать новый цикл, что отдаляет окончание работы над проектом.
Применяется при разработке проектов, использующих новые технологии, новой серии продуктов, продуктов с ожидаемыми обновлениями или требующих демонстрации качества в короткий срок.
-
Итерационные (Agile) методологии — нацелены на минимизацию рисков путём сведения разработки к серии коротких циклов, называемых итерациями, которые обычно длятся две-три недели. Каждая итерация сама по себе выглядит как программный проект в миниатюре и включает все задачи, необходимые для выдачи мини-прироста по функциональности: планирование, анализ требований, проектирование, программирование, тестирование и документирование. Хотя отдельная итерация, как правило, недостаточна для выпуска новой версии продукта, подразумевается, что гибкий программный проект готов к выпуску в конце каждой итерации. По окончании каждой итерации команда выполняет переоценку приоритетов разработки.
Модель выбирается на этапе планирования
✔️ 8. Какую модель ЖЦ можно применять при условии частых изменений в требованиях? Основные принципы Agile методологий?
Итерационную (Agile) модель
Основные идеи:
- Люди и взаимодействие важнее процессов и инструментов
- Работающий продукт важнее исчерпывающей документации
- Сотрудничество с заказчиком важнее согласования условий контракта
- Готовность к изменениям важнее следования первоначальному плану
Основные принципы:
- Наивысшим приоритетом для нас является удовлетворение потребностей заказчика, благодаря регулярной и ранней поставке ценного программного обеспечения.
- Изменение требований приветствуется, даже на поздних стадиях разработки. Agile-процессы позволяют использовать изменения для обеспечения заказчику конкурентного преимущества.
- Работающий продукт следует выпускать как можно чаще, с периодичностью от пары недель до пары месяцев.
- На протяжении всего проекта разработчики и представители бизнеса должны ежедневно работать вместе.
- Над проектом должны работать мотивированные профессионалы. Чтобы работа была сделана, создайте условия, обеспечьте поддержку и полностью доверьтесь им.
- Непосредственное общение является наиболее практичным и эффективным способом обмена информацией как с самой командой, так и внутри команды.
- Работающий продукт — основной показатель прогресса.
- Инвесторы, разработчики и пользователи должны иметь возможность поддерживать постоянный ритм бесконечно. Agile помогает наладить такой устойчивый процесс разработки.
- Постоянное внимание к техническому совершенству и качеству проектирования повышает гибкость проекта.
- Простота — искусство минимизации лишней работы — крайне необходима.
- Самые лучшие требования, архитектурные и технические решения рождаются у самоорганизующихся команд.
- Команда должна систематически анализировать возможные способы улучшения эффективности и соответственно корректировать стиль своей работы.
✔️ 9. Каковы преимущества и недостатки каскадной модели?
Ответ из консультации выделен жирным
Достоинства модели:
- Стабильность требований в течение всего жизненного цикла разработки
- На каждой стадии формируется законченный набор проектной документации, отвечающий критериям полноты и согласованности
- Определенность и понятность шагов модели и простота её применения
- Выполняемые в логической последовательности этапы работ позволяют планировать сроки завершения всех работ и соответствующие ресурсы (денежные. материальные и людские)
- Каскадная модель хорошо зарекомендовала себя при построении относительно простых ПО, когда в самом начале разработки можно достаточно точно и полно сформулировать все требования к продукту
- На выходе получаем законченный продукт высокого качества (Применяется там, где цена ошибки очень велика)
Недостатки модели:
- Сложность чёткого формулирования требований и невозможность их динамического изменения на протяжении всего жизненного цикла
- Низкая гибкость в управлении проектом
- Последовательность линейной структуры процесса разработки, в результате возврат к предыдущим шагам для решения возникающих проблем приводит к увеличению затрат и нарушению графика работ
- Непригодность промежуточного продукта для использования
- Невозможность гибкого моделирования уникальных систем
- Позднее обнаружение проблем, связанных со сборкой, в связи с одновременной интеграцией всех результатов в конце разработки
- Недостаточное участие пользователя в создании системы — в самом начале (при разработке требований) и в конце (во время приёмочных испытаний)
- Пользователи не могут убедиться в качестве разрабатываемого продукта до окончания всего процесса разработки. Они не имеют возможности оценить качество, т. к. нельзя увидеть готовый продукт разработки
- У пользователя нет возможности постепенно привыкнуть к системе. Процесс обучения происходит в конце жизненного цикла, когда ПО уже запущено в эксплуатацию;
- Каждая фаза является предпосылкой для выполнения последующих действий, что превращает такой метод в рискованный выбор для систем, не имеющих аналогов, т. к. он не поддается гибкому моделированию
✔️ 10. Кто определяет цели и задачи тестирования в проекте?
Тест-лид (ну или команда тестирования во главе с тест-лидом). Не менеджер проекта, так как процесс тестирования независим (цели и задачи, конечно определяются с учетом всего проекта, но не более).
✔️ 11. Кто формулирует требования к продукту?
Заказчик. Либо менеджер, если берет ответственность на себя за несогласованность с заказчиком (аналитики только собирают требования и обрабатывают).
✔️ 12. На что влияет качество существующих процессов?
В первую очередь на качество продукта. Затем уже на время и все остальное.
✔️ 13. Что влияет на выбор модели ЖЦ проекта?
- Информация о продукте (масштаб, сложность)
- Ожидания заказчика от проекта
- Ограничения
- Ожидания по качеству (высокие требования)
- Готовность заказчика участвовать в разработке
- Пожелания заказчика
✔️ 14. Что такое «тестирование»?
Тестирование – процесс исследования, испытания программного продукта, имеющий своей целью оценку степени соответствия между реальным поведением программы и её ожидаемым поведением на конечном наборе тестов, выбранных определённым образом.
Процесс тестирования:
- Планирование (Test Planning)
- Разработка тестов (Test Case Design)
- Аудит\Ревью тестов (Test Case Review)
- Выполнение тестов (Test Case Execution)
- Верификация исправленных дефектов (Bug\Defects Fixes Verification)
- Метрики и отчеты (Test Reporting and Metrics Collection)
✔️ 15. Цели и задачи тестирования?
Она не ожидает что мы прям перечислим цели и выделим задачи. Не обязательно между собой разделять. Главный пойнт в том, что мы (тестировщики) не можем обеспечить качество, можем только проверить соответствие уровню качества. Соответсвенно нельзя говорить про обеспечение качества здесь.
Цели тестирования:
- Определение степени соответствия требованиям к функциональности и производительности
- Поиск дефектов
- Предотвращение обнаружения дефектов заказчиком
- Участие в процессе обеспечения качества
- Укладываться в сроки
- Следовать правилам команды тестировщиков
✔️ 16. В чем отличие тестирования от отладки?
Тестирование занимается выявлением ошибок, а отладка выявлением и устранением ошибок.
✔️ 17. Что такое Верификация (verification) и что такое Валидация (validation)?
Верификация — отвечает на вопрос правильно ли мы делаем продукт и все ли в соответствии с требованиями. Убеждаемся, что наш функционал работает правильно. Включает в себя проверку соответствия требованиям, технической документации и корректности выполнения кода. Тестирование входит в верификацию.
Валидация — отвечает на вопрос делаем ли мы продукт правильно с точки зрения ожидания потребности пользователей или заказчика от нашего продукта. Убеждаемся, что функционал соответствует поведению, которое ожидают пользователи и заказчики. Включает в себя оценку продукта в целом и субъективную оценку насколько «хорошо» работает продукт.
Ответ из видео короче, по сути такой же.
✔️ 18. Какие стратегии\подходы тестирования Вы знаете? Перечислите их.
- Тестирование черного ящика (поведенческое тестирование) — стратегия (метод) тестирования, в которой мы не используем знания о внутренней структуре системы для создания тест-кейсов и тестирования.
- Тестирование серого ящика — мы используем часть знаний о системе, но основной подход похож на черный ящик.
- Тестирование белого ящика — мы используем знания о системе при создании тест-кейсов и тестировании.
✔️ 19. Какие уровни тестирования Вы знаете? Перечислите их.
- Модульное(Unit testing) - тестируются отдельные модули системы (модуль это минимальная единица кодирования, которую возможно проверить (метод, класс, функция, процедура)). Используется стратегия белого ящика.
- Интеграционное - тест взаимодействия между этими юнитами. Используется стратегия белого ящика.
- Системное - тестирования всей системы. Используется стратегия черного или серого ящика. В лабораторных у нас системное тестирование.
- Приемочное - как системное, только тестируется в реальном окружении заказчиком/пользователями. Используется стратегия черного ящика.
Может быть ещё Системно-интеграционное - если система взаимодействует с другой системой.
Разделение на уровни производится по степени зрелости продукта.
✔️ 20. Какие виды тестирования Вы знаете? Перечислите их.
По критерию запуска программы:
- Статическое - не запускаем код, просто читаем и ищем баги
- Динамическое - проводим тестирование запуская приложения
По принципу выполнения ТК:
- Ручное - не автоматизируется выполнение ТК
- Автоматизирование - автоматизируется выполнение ТК. Автоматизация может быть на любом уровне тестирования
По атрибутам продукта:
- Функциональное тестирование
- Тестирование пользовательского интерфейса (GUI)
- Нефункциональное тестирование
- Тестирование производительности
- Нагрузочное тестирование
- Стрессовое тестирование
- Юзабилити тестирование (тестирование удобства использования)
- Тестирование безопасности
- Тестирование локализации
- Тестирование совместимости
Еще виды тестирования:
- Тестирование инсталляции
- Тестирование масштабируемости
- Тестирование надежности
Связанные с изменениями виды тестирования:
- Регрессионное тестирование - повторное выполнение тестов, которые были успешно выполнены ранее, при внесении любого изменения кода (новая функциональность, исправление дефектов, рефакторинг). Бывает полное и частичное. Определяете степень влияния изменений на функциональность, находите ТК на затронутую функциональность, тестируете в приоритете от самого важного до не важного пока хватает времени. Выполняется на этапе верификации исправленных дефектов.
- Дымовое тестирование (Smoke testing) — тестирование рассматривается как короткий цикл тестов, выполняемый для подтверждения того, что после сборки кода (нового или исправленного) устанавливаемое приложение, стартует и выполняет основные функции
- Повторное тестирование (Re-testing) — тестирование, во время которого исполняются тестовые сценарии, выявившие ошибки во время последнего запуска, для подтверждения успешности исправления этих ошибок. В отличие от регрессионного, проверяет только то, что баги исправлены. Регрессионное проверяет также что изменения не повлияли на другие модули ПО и не вызвали новые баги.
- Тестирование сборки (Build verification testing) — тестирование направленное на определение соответствия, выпущенной версии, критериям качества для начала тестирования. По своим целям является аналогом Дымового Тестирования, направленного на приемку новой версии в дальнейшее тестирование или эксплуатацию
- Проверка согласованности (Sanity testing) — это узконаправленное тестирование достаточное для доказательства того, что конкретная функция работает согласно заявленным в спецификации требованиям. Является подмножеством регрессионного тестирования
Виды изменений кода:
- Исправление дефектов
- Добавление нового функционала
- Рефакторинг
✔️ 21. Перечислите основные этапы процесса тестирования.
- Планирование
- Разработка ТК
- Аудит ТК
- Выполнение ТК и фиксация результата (успешно/неуспешно + отчёт о дефекте)
- Верификация исправленных дефектов (обычно тут регрессионное тестирование)
- Составление метрик и отчетов
✔️ 22. Что такое требования к ПО?
Задокументированные ожидания заказчика (Спецификации, user story)
✔️ 23. Какие бывают типы требований?
Главные:
- Функциональные - что делает система
- Не функциональные - как быстро/хорошо/красиво
Дополнительно:
- Бизнес требования
- Системные требования
✔️ 24. Что такое Test Case?
Тест-кейс - минимальный элемент тестирования. Отвечает следующим требованиям:
- При разработке ТК мы думаем о том, какой дефект он должен найти (В отличие от тестового сценария - в нем несколько дефектов может быть найдено).
- У ТК ожидаемый результат всегда после последнего шага (В отличие от тестового сценария).
- Тест-кейс всегда имеет отношение к одному требованию или одной фиче (В отличие от сценария, который обычно покрывает несколько требований\фич).
✔️ 25. Что должно быть в описании тест-кейса (приведите пример)?
Обязательно:
- Предусловие
- Шаги
- Ожидаемый результат
Дополнительно:
- ID
- Заголовок
- Приоритет
- Тип
- Статус
✔️ 26. Что такое Test Matrix (Тестовая матрица)?
Набор тест кейсов, структурированный в виде таблицы. Позволяет наглядно отображать тест-кейсы.
✔️ 27. Что является источником\основанием для создания тест-кейсов?
Требования заказчика
✔️ 28. Какие техники создания тест-кейсов Вы знаете? Перечислите и опишите основную идею каждой из них.
Техники Black box:
- Разбиение на классы эквивалентности
- Анализ граничных значений
- Таблица решений
- Метод функциональных диаграмм
- Техника предположения об ошибке
Техники White box:
- Statement coverage – каждый оператор должен быть выполнен хотя бы один раз
- Вranch\Decision coverage – каждое решение должно принять значения истина и ложь по крайней мере один раз и для каждой точки входа должно быть выдано управление хотя бы один раз (IF, CASE, Loop)
- Control-Flow Based Testing – строим блок-схему и проверяем каждый узел
- Condition coverage – все возможные результаты каждого решения в условии выполнялись хотя бы один раз (каждая компонента логического условия в результате выполнения тестовых примеров должна принимать все возможные значения) и каждой точке входа в программу или подпрограмму должно быть передано управление хотя бы один раз. Более сильный критерий, чем покрытие решений.
- Data-Flow testing – анализируем все переменные в коде: их определение (“definitions”\”write”) и использование (“uses”\”read”)
Может ли какой-то набор техник гарантировать полное покрытие тест кейсами? Нет, применяем всё, в том числе и интуицию тестировщика.
✔️ 29. Что такое «ошибка» (дефект, «баг»)?
Несоответствие ПО требованиям заказчика
Несоответствие полученного результата ожидаемому (На языке тест кейсов)
✔️ 30. Какая информация обязательно должна быть в отчете об ошибке, чтобы ее можно было воспроизвести?
Основное:
- Предусловие
- Шаги
- Ожидаемый результат
- Полученный результат
- Окружение
- Версия приложения
Дополнительно:
- Заголовок
- ID
- severity - критичность дефекта (Степень влияния данного дефекта на работоспособость продукта)
- Приоритет
- Связь с требованием
- Связь с ТК
✔️ 31. Приведите пример жизненного цикла ошибки.
- Обнаружение
- Исправляется
- Исправлено
- Тестируется
- Протестировано
- Закрыто
✔️ 32. Что такое Тест План?
Документ, который мы создаем на этапе планирования тестирования. Определяет как мы будем тестировать. Включает в себя:
- цели
- задачи
- стратегию
- описание процесса
- описание ролей
- критерии завершения тестирования
- и т.д.
✔️ 33. Что такое «Качество программного продукта»?
Степень соответствия программного продукта требованиям.
✔️ 34. Как можно описать качество ПП?
Измеряется следующим образом:
- Реализация всех требований
- Допустимое количество дефектов, которое может быть найдено заказчиком, и их критичность
✔️ 35. Назовите характеристики (атрибуты) ПП?
- Функциональность
- Безопасность
- Надежность
- Быстрота
- Производительность
- Масштабируемость
✔️ 36. Что такое «внешнее качество»?
То, что видит заказчик. Тестировщики в основном придают значения внешнему качеству.
✔️ 37. Что такое «внутреннее качество»?
Качество кода - эффективность/переносимость. То, что видит команда разработки.
✔️ 38*. Что такое Quality Assurance (Обеспечение качества)?
Процесс предотвращения дефектов путем улучшения процессов. Охватывает все процессы на всех этапах разработки для обеспечения необходимого уровня качества ПО.
Объектом являются процессы, цель — предотвращение дефектов
✔️ 39*. Каковы основные задачи, цели и Quality Control?
Суть в том, чтобы найти дефект для того, чтобы его исправить.
Объектом является продукт, задача — поиск дефектов с целью дальнейшего устранения
✔️ 40. К чему относится тестирование: Quality Assurance или Quality Control?
Тестирование относится к Quality Control. Вообще говоря, Тестирование входит в QC, QC входит в QA.
✔️ 41. Кто отвечает за качество продукта в проекте?
За принятие решений отвечает менеджер проекта. Но в общем понимании за обеспечение качества отвечает вся команда.
✔️ 42. Что такое «стоимость качества»?
Стоимость плохого качества - затраты на поиск и устранение дефектов.
Вообще говоря стоимость качества (Cost of Quality) - это метод определения затрат, связанных с обеспечением качества. Затраты на профилактику и затраты на оценку (затраты на соответствие) включают стоимость планирования качества, контроля качества и обеспечения качества для соответствия требованиям (т. е. обучение, системы контроля качества и т. д.).
✔️ 43. Какие системы управления качеством вы знаете?
Системы управления качеством содержат описание требований к процессам.
Сказала, что не нужно вдаваться в подробности. Назвала только эти две.
- ISO
- CMMI
🔄 44. Что такое «Комплексная модель производительности и зрелости процессов» (Capability Maturity Model Integration)?
Комплексная модель производительности и зрелости (Capability Maturity Model Integration, CMMI) – набор моделей (методологий) совершенствования процессов в организациях разных размеров и видов деятельности. CMMI содержит набор рекомендаций в виде практик, реализация которых, по мнению разработчиков модели, позволяет реализовать цели, необходимые для полной реализации определенных областей деятельности.
Подробнее тут — https://habr.com/ru/post/79130/
Ответ из видео:
Описание требований к процессу. Есть общая рекомендация но не говорится деталей реализации. Есть 5 уровней. Можно применять как к одному процессу, так и ко всем процессам.
Уровни CMM:
- Initial (Начальный) - успех зависит от героев, нет понимания о разделении на процессы
- Managed - есть понимание основных процессов, которые существуют (прояснение требований, план, разработка, тестирование, контроль прогресса)
- Defined - описаны и стандартизованы процессы, они общие для всех и им все следуют, проводится обучение
- Quantitively managed - собираем метрики, по которым можем оценить процессы
- Optimizing - можем думать о том, как оптимизировать процессы на основании собранных метрик