- •Вопросы к экзамену по курсу "Технология программирования"
- •История развития языков программирования высокого уровня.
- •Архитектура языков программирования (три поколения).
- •Архитектура объектно-ориентированных языков программирования.
- •Сложность, присущая по (основные причины). Проблемы, возникающие при создании сложных систем.
- •Структура сложных систем (пять признаков). Примеры сложных систем (выделить признаки).
- •Основные понятия: метод, методология, технология. Классификация методов проектирования пс. Общая характеристика методов проектирования.
- •Эволюция программного продукта. Основные определения, понятия, отличительные черты.
- •Понятие «модуль» в программировании. Различные виды модулей при использовании основных методов проектирования пс.
- •Case – технологии (инструменты, системы, средства). Эволюция case – средств, их классификация, характеристики современных case – инструментов. Перспективы развития.
- •Роль case – инструментов в объектно-ориентированной методологии разработки пс. Связь case – технологии с методами быстрой разработки приложений (rad).
- •Классификация средств разработки (case - инструментов).
- •Жизненный цикл по (жц). Структура жц, основные фазы жц.
- •Организация процесса разработки пс (методы, средства, процедуры).
- •Модели процесса разработки пс (каскадная, спиральная)
- •Модели процесса разработки пс (компонентно-ориентированная, инкрементная, rad – модель).
- •Тяжеловесные и облегченные процессы разработки пс.
- •Унифицированный процесс разработки пс.
- •Iconix – процесс.
- •Scrum – процесс.
- •Артефакты
- •Встречи
- •Планирование спринта происходит в начале итерации(не более 4-8 часов), выбирается что будет сделано и обсуждается как это будет сделано.
- •Митинг Происходит каждый день в течение спринта(не более 15 минут), ищутся ответы на вопросы: что сделано? Что надо сделать? Какие есть проблемы?
- •Демонстрация проходит в конце спринта(не более 4-8 часов), показывается инкремент.
- •Прототип системы (достоинства и недостатки макетирования).
- •Масштаб проекта и риски
- •Содержание основных рабочих процессов по созданию по (анализ требований, системный анализ, проектирование).
- •Содержание основных рабочих процессов по созданию по (кодирование, тестирование).
- •Изменения в процессе эволюции программных систем, стоимость каждого вида изменения (в смысле затрат).
- •Организационные процессы (распределение ресурсов, управление проектом, организация коллектива разработчиков).
- •Документирование программного продукта. Различные виды документов, их содержание.
- •Виды документов при использовании объектно-ориентированной методологии разработки пс.
- •Временные затраты на реализацию этапов разработки по. Особенности распределения ресурсов при использовании объектно-ориентированной методологии.
- •Методы и средства структурного анализа.
- •Диаграммы потоков данных с расширениями для реального времени.
- •Пример банковской задачи (провести анализ).
- •Средства структурного проектирования (карты Константайна).
- •Методы проведения анализа объектно-ориентированных систем.
- •Типовая и структурная иерархии в объектно-ориентированной методологии.
- •Унифицированный язык моделирования пс (uml). Словарь, достоинства и возможности
- •Механизмы расширения в uml.
- •Диаграммы классов (точки зрения).
- •Отношения в диаграмме классов.
- •Классы ассоциаций.
- •Диаграммы вариантов использования, реализации вариантов использования.
- •Диаграммы взаимодействий.
- •Диаграммы пакетов и компонентов.
- •Диаграммы состояний.
- •Диаграммы активности (деятельностей).
- •Каркасы и паттерны.
- •Основные понятия и определения теории тестирования. Подходы к тестированию. Стратегии тестирования. Критерии тестирования.
- •Критерии тестирования стратегии "черного ящика".
- •1. Эквивалентное разбиение (самый популярный критерий из-за простоты)
- •2. Анализ граничных условий.
- •3. Метод функциональных диаграмм
- •Классический процесс тестирования по.
- •Тестирование модулей (блоков) программы. Тестирование интеграции.
- •Тестирование правильности (функциональное тестирование). Системное тестирование.
- •Особенности тестирования объектно-ориентированных программ. Тестирование классов.
- •Тестирование взаимодействия классов и функционирования компонентов.
- •Вопросы автоматизации тестирования. Инструменты тестирования.
Вопросы автоматизации тестирования. Инструменты тестирования.
Видимо обращайтесь к Марианне.
Автоматизация обходится дорого. Это и более квалифицированные специалисты,
и дополнительное время на разработку. Может уйти от 3-х до 10-ти раз больше
времени на разработку, отладку, проверку и документирование автоматических
тестовых случаев по сравнению с тестовыми случаями для ручного
тестирования. Вот почему так важно просчитывать выгоду, выбирать
правильные типы тестов для автоматизации, и планировать эту деятельность.
В большинстве случаев для оценки выгоды от автоматизации вполне достаточно
простой арифметики и оценки только временных затрат (без расчета общего
экономического эффекта). Если есть существенный выигрыш - значит
автоматизация стоит того, чтобы ей заниматься. При оценке затрат
(подразумевается что тесты для ручного тестирования уже разработаны и
документированы) нужно лишь учитывать следующие величины:
• Время на проход теста вручную
• Количество таких проходов
• Время на разработку и отладку автоматического теста
• Время его работы
• Время на исправление скрипта при изменениях в приложении
И тогда простые арифметические действия дадут нам желаемую картину - стоит автоматизировать или нет.
Капитан не прошёл мимо:
Прежде, чем начинать автоматизацию, нужно определиться с вопросами:
• Что будем тестировать?
• Что нужно для проведения теста?
• Откуда будем брать данные?
• Что проверятся?
• Что ожидается?
• Как узнаем - прошел тест или нет?
Требования, предъявляемые к автоматическим тестам
Тест должен "сам тестировать", то есть не только эмулировать действия
пользователя с программой, но и производить необходимые проверки.
Стоит также упомянуть такой важный аспект, как синхронизация. Когда
человек работает с приложением, он соотносит свои действия с реакцией
приложения - если оно занято, он ждет. Автоматический тест должен уметь
делать то же самое, и к тому же есть дополнительное требование - тест должен
с минимальными изменениями одинаково хорошо работать и на "медленной"
версии приложения, так и на "быстрой".
Инструменты:
1) Прежде всего – это PureCoverage. Этот инструмент позволяет
разработчикам довести собственные программы до состояния эффективности,
избавиться от многих ошибок и неприятностей. Основная функция – выявление
участков кода, которые пропущены при тестировании (ни разу не
выполнялись), или, например, выявить функции, которые не вызывались.
Дополнительно собирается статистика о тестировании.
2). Для высокоуровневого тестирования, такого как: тестирование
интерфейса, тестирование компонент приложений клиент-сервер и т. п.
используются такие продукты как Visual Test, Robot и Load Test.
2.1) Visual Test – интерфейс точно такой же, как в Visual Studio от
Microsoft. Можно тестировать Windows приложения, компоненты ActiveX,
DLL, приложения на основе Web, т.е. практически любые задачи. Тесты
создаются на специальном языке Test Basic (производный от Visual Basic).
2.2) Robot – средство функционального тестирования, которое базируется
на объектно-ориентированной технологии. Можно с его помощью тестировать
отдельные классы, можно группу классов тестировать, можно все объекты
приложения целиком (системное тестирование).
2.3) Load Test – для тестирования характеристик распределенных
сетевых приложений на платформах Windows и Unix. Используется при
тестировании нагрузки сервера большим количеством виртуальных
пользователей и засекается время выполнения каждого запроса пользователя.