Образовательная автономная некоммерческая организация высшего образования
«МОСКОВСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ»
Примерный перечень вопросов государственного экзамена по направлению
09.03.02 «Информационные системы и технологии» направленность «Разработка и тестирование программного обеспечения»
Теоретические вопросы на знание базовых понятий и принципов
Готовим ответы на ГОС по направлению «Информационные системы и технологии | Разработка и тестирование программного обеспечения» под конкретный перечень вопросов студента. Материал оформляем понятно и без перегруженных формулировок, чтобы ответы было проще изучить, запомнить и использовать при подготовке к государственному экзамену. Ниже представлены вопросы, по которым мы уже готовили материалы для студентов МТИ. Если вашего вопроса в списке нет, отправьте его менеджеру — подготовим ответ индивидуально.
Основные этапы жизненного цикла программного обеспечения.
Методологии разработки программного обеспечения: Agile, Waterfall и их особенности.
Понятие и роль модульного тестирования в процессе разработки ПО.
Инструменты для управления проектами в разработке ПО и их функциональные возможности.
Современные языки программирования и их применение в разработке ПО.
Понятие объектно-ориентированного программирования и его основные концепции.
Различия между статическим и динамическим тестированием программного обеспечения.
Сетевые устройства: классификация и основные принципы работы.
Понятие системы контроля версий и роль Git в разработке ПО.
Основные принципы проектирования пользовательских интерфейсов.
Основные причины возникновения багов в программном обеспечении: классификация и анализ причин.
Понятие и назначение автоматизированного тестирования ПО.
Роль DevOps в современном процессе разработки ПО.
Понятие и особенности непрерывной интеграции и доставки (CI/CD).
Тестирование производительности: задачи и подходы.
Тестирование безопасности: определение и используемые методы проведения.
Типы тестирования программного обеспечения и их особенности.
Управление требованиями в процессе разработки ПО: основные методы и принципы.
Роль и функции тестировщика в команде разработки.
Понятие и принципы рефакторинга кода.
Современные фреймворки автоматизированного тестирования и их применение.
Понятие и особенности разработки кроссплатформенных приложений.
Основные этапы тест-дизайна и их значимость.
Контейнеризация в разработке ПО: использование и инструменты.
Понятие и роль архитектуры программного обеспечения в процессе разработки.
Основные задачи системного аналитика в проекте разработки ПО: описание и анализ требований, разработка технической документации, взаимодействие с командой разработки и тестирования.
Управление конфигурацией программного обеспечения: способы и методы реализации.
Понятие и особенности разработки мобильных приложений.
Основные инструменты для статического анализа кода: классификация и применение.
Принципы SOLID и их значение в разработке ПО.
Вопросы по направленности «Разработка и тестирование программного обеспечения»
Принципы объектно-ориентированного программирования.
Модульное и системное тестирование: преимущества и недостатки.
Процесс управления требованиями в разработке ПО.
Рефакторинг кода и его значение в разработке ПО.
Контроль качества программного обеспечения: методы и инструменты.
Автоматизация тестирования: инструменты и подходы.
Тестирование производительности программного обеспечения.
Интеграционное тестирование и его важность.
Уровни тестирования программного обеспечения: модульное, интеграционное, системное, приемочное.
Паттерны проектирования в разработке ПО.
Современные языки программирования: классификация и особенности.
Архитектура программного обеспечения и их особенности: микросервисная, монолитная.
Инструменты и системы контроля версий и их отличия: Git, SVN.
Принципы функционального программирования.
Инструменты и методы для управления проектами разработки ПО.
Безопасность программного обеспечения: выявление и устранение уязвимостей.
Разработка мобильных приложений: платформы и инструменты.
Разрешение конфликтов в разработке: подходы и решения.
Ведение документации в процессе разработки ПО.
Принципы разработки пользовательского интерфейса (UI/UX).
Технологии контейнеризации: Docker, Kubernetes.
Практики DevOps и их роль в разработке ПО.
Облачные технологии и их применение в разработке программного обеспечения.
Технологии Continuous Integration и Continuous Deployment (CI/CD).
Способы обеспечения масштабируемости программного обеспечения.
Роль технического долга в разработке ПО.
Технологии обработки и анализа данных в реальном времени.
Основы кроссплатформенной разработки.
Этические вопросы в разработке программного обеспечения.
Будущее разработки ПО: искусственный интеллект и машинное обучение.
Задания на умение использовать полученные знания и навыки для решения профессиональной задачи.
Проанализируйте и обоснуйте выбор системы контроля версий для крупного корпоративного проекта с распределенной командой разработчиков. Сравните Git, Mercurial и SVN, учитывая их особенности и возможности. Обоснуйте ответ.
Выберите и обоснуйте фреймворк для автоматизированного тестирования веб-приложений. Сравните Selenium, Cypress и Playwright по функциональности, простоте использования и поддержке современных веб-технологий. Обоснуйте ответ.
Разработайте стратегию тестирования для проекта с короткими циклами разработки (Agile/Scrum). Обоснуйте выбор методов и подходов, включая автоматизацию, тестирование на основе рисков и парное тестирование.
Проанализируйте преимущества и недостатки модульного и системного тестирования. Приведите примеры ситуаций, где каждый подход наиболее эффективен, и опишите их влияние на качество продукта. Обоснуйте ответ.
Выберите и обоснуйте язык программирования для создания высоконагруженных систем обработки данных. Сравните Java, Python, C++ и Scala по производительности, возможностям параллельной обработки и экосистеме инструментов. Обоснуйте ответ.
Опишите различия и области применения функционального и нефункционального тестирования. Приведите примеры тестовых сценариев и объясните, как они влияют на качество продукта. Обоснуйте ответ.
Разработайте стратегию тестирования пользовательского интерфейса мобильного приложения. Обоснуйте выбор методов тестирования, включая автоматизацию, юзабилити-тестирование и тестирование доступности.
Выберите и обоснуйте архитектурный подход для создания, масштабируемого и надежного облачного приложения. Сравните микросервисную архитектуру, монолит и serverless-архитектуру по ключевым параметрам. Обоснуйте ответ.
Разработайте стратегию внедрения DevOps-практик для улучшения процесса непрерывной интеграции и доставки (CI/CD). Обоснуйте выбор инструментов и методов, включая контейнеризацию, оркестрацию и мониторинг.
Опишите стратегию обеспечения безопасности веб-приложения. Обоснуйте выбор методов защиты от основных угроз и инструментов для тестирования безопасности.
Установите соответствие типов архитектурных стилей и их особенности:
| Архитектурный стиль | Особенность |
| 1. Монолитная | a) Набор независимых сервисов |
| 2. Микросервисная | б) Единая целостная система |
| 3. Клиент-серверная архитектура | в) Использование общих сервисов |
| 4. Сервис-ориентированная архитектура (SOA) | г) Разделение клиента и сервера |
Установите соответствие методов тестирования и их описание:
| Метод тестирования | Описание |
| 1. Черный ящик | a) Тестирование с полным знанием структуры |
| 2. Белый ящик | б) Тестирование без знания внутренней структуры |
| 3. Серый ящик | в) Анализ без выполнения кода |
| 4. Статическое | г) Комбинация методов черного и белого ящика |
Установите соответствие между алгоритмами и их особенностями:
| Алгоритм | Особенность |
| 1. Пузырьковая | a) Подходит для больших массивов |
| 2. Быстрая | б) Разделяй и властвуй |
| 3. Сортировка вставками | в) Простота реализации |
| 4. Сортировка слиянием | г) Разделяй и властвуй |
Установите соответствие между типами данных и их структурами:
| Тип данных | Структура |
| 1. Массив | a) Связанный набор элементов |
| 2. Список | б) Последовательный набор элементов |
| 3. Стек | в) Первый вошел - первый вышел |
| 4. Очередь | г) Последний вошел - первый вышел |
Определите топологии и особенности сетевых технологий:
а) Звезда
б) Кольцо
в) Шина
г) Смешанная
Установите модели жизненного цикла ПО:
| Модель | Особенность |
| 1. Водопадная | a) Повторяющиеся циклы |
| 2. Итеративная | б) Последовательные этапы |
| 3. Спиральная | в) Гибкость и адаптивность |
| 4. Agile | г) Управление рисками |
Установите соответствие между операционными системами и их логотипами:
| Операционная система | Логотип |
| 1. Windows | а) |
| 2. Linux | б) |
| 3. macOS | в) |
| 4. Android | г) |
Установите соответствие между типами данных и их примерами:
| Тип данных | Пример |
| 1. Строка | a) 42 |
| 2. Целое число | б) "Hello" |
| 3. Вещественное | в) true |
| 4. Булево | г) 3.14 |
Установите соответствие между протоколом и их назначением:
| Протокол | Назначение |
| 1. HTTP | a) Протокол передачи файлов |
| 2. FTP | б) Протокол передачи гипертекста |
| 3. SMTP | в) Протокол доменных имен |
| 4. DNS | г) Протокол отправки электронной почты |
Установите соответствие между тестами и их типами:
| Тест | Тип теста |
| 1. Юнит-тестирование | a) Тестирование взаимодействия между компонентами |
| 2. Интеграционное | б) Тестирование отдельных компонентов |
| 3. Системное | в) Тестирование на соответствие требованиям |
| 4. Приемочное | г) Тестирование всей системы в целом |
Установите соответствие между языками программирования и их парадигмами:
| Язык программирования | Парадигма |
| 1. Python | a) Объектно-ориентированная |
| 2. Java | б) Функциональная |
| 3. Haskell | в) Мультипарадигменная |
| 4. JavaScript | г) Скриптовая |
Установите соответствие между шаблоном проектирования и их описанием:
| Шаблон проектирования | Описание |
| 1. Синглтон | a) Структурный шаблон, который позволяет динамически добавлять объектам новую функциональность. |
| 2. Фабричный метод | б) Порождающий шаблон, который позволяет создавать объекты, но делегирует решение о том, какой класс инстанцировать, подклассам. |
| 3. Наблюдатель | в) Поведенческий шаблон, который позволяет объектам оповещать другие объекты об изменениях своего состояния. |
| 4. Декоратор | г) Порождающий шаблон, гарантирующий, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа. |
Установите соответствие между средством разработки и логотипом:
| Средство разработки | Логотип |
| 1. Visual Studio | а) |
| 2. Eclipse | б) |
| 3. IntelliJ IDEA | в) |
| 4. NetBeans | г) |
Установите соответствие между типом кабеля и его областью применения:
| Тип кабеля | Область применения |
| 1. Оптоволоконный кабель | а) Высокоскоростные соединения |
| 2. Коаксиальный кабель | б) Локальные сети |
| 3. Витая пара | в) Телевизионные системы |
Выберите процессор, который совместим с материнской платой GIGABYTE H510M K (LGA 1200, Intel H510).
Установите соответствие между инструментом и его основной функцией:
Установите соответствие между языком программирования и его основной областью применения:
На каком этапе жизненного цикла разработки программного обеспечения чаще всего выявляются ошибки? Обоснуйте ответ.
Каким образом осуществляется тестирование программного обеспечения для выявления уязвимостей при использовании российского криптографического стандарта ГОСТ Р 34.12-2015 в процессе шифрования данных?
Выберите подходящий тип оперативной памяти для следующей материнской платы: Материнская плата ASUS TUF GAMING B550-PLUS [Socket AM4, AMD B550, 4xDDR4-4400 МГц, 2xPCI-Ex16, 2xM.2, ATX]
а) Оперативная память DDR3-1600 МГц
б) Оперативная память DDR4-3200 МГц
в) Оперативная память DDR5-4800 МГц
г) Оперативная память DDR4-2400 МГц
