• Обеспечение качества кода и код ревью
• Тема 1.1. Понятие и метрики качества программного кода
• Промежуточный тест 1
К целям получения метрических характеристик качества кода относятся
мониторинг разрабатываемого проекта в системе контроля качества
поддержание стандартов кода при коллективном владении
обнаружение потенциально опасного кода
обнаружение узких мест в структуре кода
К способам обфускации относятся
запутывание форматирования исходного текста
запутывание данных
превентивные трансформации
запутывание управления
Основными определениями меры Холстеда являются
теоретическая длина программы
теоретический объем программы
словарь программы
теоретический словарь программы
Временная связность – это вид связности, при котором компоненты
используются в рамках общего функционала, но не связаны между собой
используются в рамках одного сценария, имеют определенный порядок вызова
используются на одной фазе процесса, в один период
не имеют ничего общего, кроме факта нахождения в одном модуле
К основным определениям меры Холстеда относятся
словарь действий
словарь сущностей
количество операторов
количество операндов
Признаками качественного кода являются
читаемость
универсальность
эффективность
невозможность рефакторинга
... – это метафора программной инженерии, обозначающая накопленные в программном коде или архитектуре проблемы, связанные с пренебрежением к качеству при разработке программного обеспечения и приводящие к дополнительным затратам труда в будущем.
Совокупная стоимость кода
Артефакты кода
Технический долг
Качество кода
Обфускация производится
над комментариями
над текстами сообщений
над исходным текстом
над скомпилированным кодом
Логическая связность – это
вид связности, при котором компоненты используются на одной фазе процесса, в один период
вид связности, при котором компоненты не имеют ничего общего, кроме факта нахождения в одном модуле
вид связности, при котором компоненты используются в рамках одного сценария, имеют определенный порядок вызова
вид связности, при котором компоненты используются в рамках общего функционала, но не связаны между собой
Система метрик качества кода характеризует такие аспекты кода, как
парадигма программирования
структурированность
сложность
связность
К стилистике кода причисляют
комментарии по сложным участкам кода
соглашения об именах переменных, методов, интерфейсов и аббревиатуры
форматирование текста программы, соответствующее синтаксической структуре кода
предупреждение возможных ошибок при редактировании кода
Какая мера относится к количественным метрикам?
Мера Лоренца и Кидда
Мера Чидамбера и Кемерера
Мера Холстеда
Мера Мартина
Для оценки качества кода используются разные группы метрик. Укажите их.
Запутывающие преобразования
Стилистические метрики
Количественные метрики
Объектно-ориентированные метрики
Технический долг – это
стандарт измерения степени, в которой код обладает каким-либо свойством
формальное соответствие кода определенному набору правил
систематическая проверка исходного кода программы с целью обнаружения и исправления ошибок
метафора программной инженерии, обозначающая накопленные в коде проблемы, связанные с пренебрежением к качеству при разработке ПО
Укажите верное утверждение о поддержке качества кода.
Поддержка качества кода гарантирует его надежность и отсутствие ошибок в коде
Поддержка качества кода гарантирует его устойчивость
Поддержка качества кода не гарантирует его эксплуатационных свойств
Нет верного утверждения
Какое утверждение является верным?
Покрытие кода является показателем охвата исходного кода классами
Покрытие кода является показателем охвата исходного кода тестами
Покрытие кода является показателем охвата исходного кода функциями
Покрытие кода является показателем охвата исходного кода комментариями
Процедурная связность предполагает, что компоненты
используются в рамках общего функционала, но не связаны между собой
не имеют ничего общего, кроме факта нахождения в одном модуле
используются на одной фазе процесса, в один период
компоненты используются в рамках одного сценария, имеют определенный порядок вызова
Коммуникативная связность – это вид связности, при котором компоненты
работают с общей структурой данных
используются в рамках одного сценария, имеют определенный порядок вызова
используются на одной фазе процесса, в один период
не имеют ничего общего, кроме факта нахождения в одном модуле
Какое утверждение является верным?
Поддержка качества кода не гарантирует его эксплуатационных свойств, но способствует улучшению этих свойств в процессе разработки
Поддержка качества кода не гарантирует его эксплуатационные свойства и не способствует улучшению этих свойств в процессе разработки
Поддержка качества кода гарантирует его эксплуатационные свойства, но не способствует улучшению этих свойств в процессе разработки
Поддержка качества кода гарантирует его эксплуатационные свойства и способствует улучшению этих свойств в процессе разработки
Система метрик качества кода характеризует такие аспекты кода, как
сложность, связность, структурированность, объемные характеристики
сложность, устойчивость, структурированность, язык программирования
структурированность, сложность, объемные характеристики, парадигма программирования
надежность, устойчивость, простота, язык программирования
• Обеспечение качества кода и код ревью
• Тема 1.2. Средства контроля качества кода
• Промежуточный тест 2
Какой показатель в Visual Studio Code Metrics является показателем степени зависимости классов?
Class Coupling
Maintainability
Cyclomatic Complexity
Depth of Inheritance
Какое утверждение об Eclipse Metrics является верным?
Eclipse Metrics не относится к средствам контроля качества кода
Eclipse Metrics представляет собой автономное средство контроля качества кода
Eclipse Metrics – это средство контроля качества кода, встраиваемое в среду разработки
Eclipse Metrics является онлайн-средством контроля качества кода
К средствам, встраиваемым в среду разработки для контроля качества кода, относится
Visual Studio Code Metrics
SourceLevel
TeamCity
SonarQube
Какое утверждение о SourceLevel верно?
SourceLevel – это средство контроля качества кода, встраиваемое в среду разработки
SourceLevel не является средством контроля качества кода
SourceLevel представляет собой онлайн-средство контроля качества кода
SourceLevel – это автономное средство контроля качества кода
К какому классу средств контроля качества кода относится программный продукт Visual Studio Code Metrics?
К средствам, встраиваемым в среду разработки
Ко всем перечисленным одновременно
К онлайн-средствам
К автономным средствам
Какой показатель в Visual Studio Code Metrics является показателем глубины наследования?
Class Coupling
Cyclomatic Complexity
Maintainability
Depth of Inheritance
Maintainability Index в Visual Studio Code Metrics – это
показатель глубины наследования
показатель степени зависимости классов
показатель структурной сложности кода
комплексный показатель качества кода
Codecov является средством оценки
покрытия кода
комментариев
классов
функций
Какой показатель в Visual Studio Code Metrics является показателем количества строк кода?
Maintainability
Cyclomatic Complexity
Depth of Inheritance
Lines of Code
Что такое Depth of Inheritance в Visual Studio Code Metrics?
Показатель степени зависимости классов
Комплексный показатель качества кода
Показатель структурной сложности кода
Показатель глубины наследования
К средствам, встраиваемым в среду разработки для контроля качества кода, относится
CodeMetrics
Codecov
SonarQube
Visual Paradigm
К какому классу средств контроля качества кода относится программный продукт Codecov?
К средствам, встраиваемым в среду разработки
К онлайн-средствам
Ни к какому: Codecov не является средством контроля качества кода
К автономным средствам
На схеме представлен пример
случайного леса
абстрактного синтаксического дерева
дерева разбора
дерева функций
Какое утверждение о Visual Studio Code Metrics является верным?
Visual Studio Code Metrics не является средством контроля качества кода
Visual Studio Code Metrics – это средство контроля качества кода, встраиваемое в среду разработки
Visual Studio Code Metrics представляет собой онлайн-средство контроля качества кода
Visual Studio Code Metrics – это автономное средство контроля качества кода
В показателе Maintainability Index параметр Lines of Code (LoC) может принимать значения
от 0 до 100
от 0 до 50
от 0 до 10
от –100 до 100
Cyclomatic Complexity в Visual Studio Code Metrics представляет собой
показатель глубины наследования
показатель степени зависимости классов
комплексный показатель качества кода
показатель структурной сложности кода
К онлайн-средствам контроля качества кода относится
SonarQube
Visual Paradigm
SourceLevel
Eclipse Metrics
К средствам, встраиваемым в среду разработки для контроля качества кода, относится
Visual Paradigm
SonarQube
SourceLevel
Eclipse Metrics
Багом называется
вид технического долга
запись в журнале аудита
программная ошибка
вид комментария
Абстрактное синтаксическое дерево представляет
локальные переменные программы
структуру программы
глобальные переменные программы
структуру комментариев программы
• Обеспечение качества кода и код ревью
• Тема 2.1. Основы код ревью
• Промежуточный тест 3
В разделе «Код» чек-листа проверяются такие аспекты, как
избыточность кода
независимость кода
корректность обработки исключений
обеспечение безопасности (проверка входных, выходных данных и т. п.)
Запросы на перенос изменений из одной ветки в другую называются
merge request
SQL
pull request
QBE
Ниже представлен фрагмент
стайл-гайда
отзыва ревьюера
чек-листа
отчета о тестировании
Ниже представлен фрагмент:
Он взят из шаблона
отзыва ревьюера
отчета о тестировании
чек-листа
стайл-гайда
В разделе «Код» чек-листа проверяются такие аспекты, как
работоспособность кода
избыточность кода
понятность кода
независимость кода
Типовой процесс проведения код-ревью начинается
с локальных правок
с правок, не требующих внимания
с оценки размера Merge Request
с менее глобальных правок
Каковы цели код-ревью?
Ускорить тестирование кода
Исправить ошибки в коде
Обучить новичков
Унифицировать код
Ниже представлен фрагмент:
Это часть
отчета о тестировании
чек-листа
стайл-гайда
отзыва ревьюера
Каковы рекомендации специалистов по ведению процесса код-ревью?
Обеспечить балансную обратную связь с разработчиком
Договориться о сроках и организации процесса
Использовать префикс NIT для комментариев
Сокращать количество раундов процесса
Как называется средство, позволяющее проверить, не забыл ли ревьюер удостовериться в отсутствии всех потенциальных проблем с исследуемым кодом?
Чек-лист
Отчет о тестировании
Стайл-гайд
Отзыв ревьюера
Валидация кода – это
подтверждение соответствия кода нормам и стандартам
проверка кода на соответствие требованиям заказчика
рефакторинг кода
внеплановая проверка кода
Документ, содержащий свод правил, стандартов и лучших практик, на основе которых будет строиться конкретный проект, называется
чек-листом
отзывом ревьюера
отчетом о тестировании
стайл-гайдом
На рисунке изображена процедура
выбора средства для ревьюирования
создания Merge Request
запуска процесса код-ревью
назначения участников код-ревью
Каковы признаки готовности программного кода?
Отсутствует оверинжениринг
Код пропущен через линтеры, используемые в проекте
Код обладает хорошей читаемостью и пояснением неочевидных мест
Кода покрыт тестами
Оверинжиниринг – это
акт создания продукта с бóльшим количеством возможностей, чем обычно требуется для предполагаемого использования, избыточно сложного или неэффективного
предоставление консультационных инженерных услуг на коммерческой основе
фундаментальное переосмысление и радикальное перепроектирование бизнес-процессов для достижения максимального эффекта в производственно-хозяйственной и финансово-экономической деятельности
область компьютерной науки и технологии, которая занимается построением сложных программных систем
Коммит – это
один из раундов процесса проведения код-ревью
запрос на перенос изменений из одной ветки в другую
раздел чек-листа
сохранение, фиксация (в архиве, репозитории и др.) изменений в программном коде
Что называют раундом в код-ревью?
Этап передачи кода рецензенту
Полный цикл приёма-передачи между автором и рецензентом
Метрика качества
Этап приема отзыва рецензента
Запрос на перенос изменений из одной ветки в другую содержит
SQL-скрипт
описание абстрактного синтаксического дерева
короткое описание изменений и причин, по которым эти изменения вносятся
описание абстрактного стилистического дерева
В разделе «Тестирование» чек-листа проверяется
наличие комментариев в тестах
работоспособность теста
покрытие кода тестами
атомарность теста
Программа, которая проверяет код на соответствие стандартам и правилам, – это
линтер
транслятор
компилятор
интерпретатор
• Обеспечение качества кода и код ревью
• Тема 2.2. Средства для проведения код ревью
• Промежуточный тест 4
Какое средство код-ревью используется для совместной проверки кода?
Veracode
GitHub
Collaborator
Peer Review
Что из перечисленного входит в число средств проведения код-ревью?
CodeScene
Collaborator
Gerrit
Visual Expert
Инструментом код-ревью является
Phabricator
NetBeans
Ranorex
TestComplete
Какое средство код-ревью, разработанное программистом Эваном Пристли (компания Phacility), и содержит ряд инструментов с открытым исходным кодом?
Gerrit
Phabricator
Peer Review
Collaborator
Крупнейшим интернет-сервисом для хостинга ИТ-проектов и их совместной разработки является
Phabricator
GitHub
Crucible
Review Board
Укажите программу для код-ревью.
Collaborator
1C-Битрикс
Selenium
Jupyter Notebook
Что из перечисленного входит в число средств проведения код-ревью?
SonarQube
Review Board
GitHub
Crucible
Для проведения код-ревью используется
SourceLevel
Gerrit
SonarQube
Codecov
Какое средство код-ревью разработано на языке Perl?
Gerrit
Peer Review
Codestriker
Collaborator
Что из перечисленного используется для проведения код-ревью?
Codecov
SourceLevel
TeamCity
GitHub
Для проведения код-ревью используется
Codecov
TeamCity
SourceLevel
Crucible
Авторами какого средства код-ревью являются Christian Hammond и David Trowbridge?
Collaborator
Review Board
Veracode
Reviewable
В программе Crucible окно, представленное ниже, используется
для выбора репозитория и эталонной версии программы
для сравнения версий программного продукта
для представления интерфейса задачи
для сравнения ответвлений программного продукта
Для проведения код-ревью используется
Veracode
всё перечисленное
Codecov
SonarQube
Какое средство позиционируется как решение по безопасности, направленное на поиск уязвимостей в системах пользователя?
Peer Review
GitHub
Collaborator
Veracode
Какое средство код-ревью используется для pull-запросов GitHub?
Peer Review
Gerrit
Reviewable
Collaborator
На рисунке ниже представлены принципы, положенные в основу
Collaborator
Peer Review
GitHub
Veracode
Среди перечисленного инструментом код-ревью является
Spark
MySQL
Jupyter Notebook
GitHub
Какое средство код-ревью является плагином для Trac?
Peer Review
Reviewable
Gerrit
Collaborator
Что из перечисленного входит в число средств проведения код-ревью?
GitHub
TeamCity
Eclipse Metrics
Phabricator
• Обеспечение качества кода и код ревью
• Контрольные мероприятия
• Итоговый тест
Как называется внеплановая проверка кода, выполняемая на компьютере разработчика, при которой опытный член команды изучает новый код, внося предложения в ходе беседы?
Почтовая рассылка
Инструмент-помощник
Парное программирование
Ревью «из-за плеча»
В программе Crucible дискуссия вокруг ревизии – это
операция, позволяющая вставить в специальное поле какой-либо код и тут же обсудить его с коллегами
моделирование кода
функция, позволяющая кому угодно из команды комментировать любую ревизию из репозитория
подробный анализ кода
К способам проведения код-ревью относятся
парное программирование
почтовая рассылка
ревью «из-за плеча»
инструмент-помощник
Какое утверждение является верным?
SonarQube является встраиваемым в среду разработки средством контроля качества кода
SonarQube является онлайн-средством контроля качества кода
SonarQube не является средством контроля качества кода
SonarQube является автономным средством контроля качества кода
Укажите верное утверждение о типовом процессе код-ревью.
Типовой процесс проведения код-ревью предполагает 5 раундов
Типовой процесс проведения код-ревью предполагает 13 раундов
Типовой процесс проведения код-ревью завершается глобальными правками
Типовой процесс проведения код-ревью завершается правками, требующими внимания
К какому классу средств контроля качества кода относится программный продукт TeamCity?
К онлайн-средствам
Ко всем перечисленным
К средствам, встраиваемым в среду разработки
К автономным средствам
В программе Crucible окно, показанное ниже, используется
для представления интерфейса задачи
для сравнения ответвлений программного продукта
для выбора репозитория и эталонной версии программы
для сравнения версий программного продукта
Что из перечисленного относится к принципам код-ревью, предлагаемым компанией Google?
Код улучшает общее состояние системы
Следует обучать и вдохновлять во время проверки кода
Следует обеспечивать быструю проверку кода, ответы и отзывы
При проверке кода следует соблюдать стандарты
Для проведения код-ревью используется
TeamCity
Collaborator
SonarQube
Codecov
Для проведения код-ревью используется
SonarQube
Visual Expert
SourceLevel
Codecov
К средствам оценки качества кода относится
SourceLevel
Drupal
IntelliJ IDE
C#
Для оценки качества кода используется мера
OLAP
SLOC
OLTP
FASMI
Для проведения код-ревью используется
Codestriker
всё перечисленное
SonarQube
TeamCity
Какой показатель в Visual Studio Code Metrics является показателем структурной сложности кода?
Class Coupling
Maintainability
Cyclomatic Complexity
Depth of Inheritance
Укажите верное утверждение о CodeMetrics.
CodeMetrics является онлайн-средством контроля качества кода
CodeMetrics не является средством контроля качества кода
CodeMetrics является встраиваемым в среду разработки средством контроля качества кода
CodeMetrics является автономным средством контроля качества кода
Сохранение, фиксация (в архиве, репозитарии и др.) изменений в программном коде обозначается термином
«комментарий»
merge request
«коммит»
pull request
Программой для код-ревью является
Delphi
SceneCode
CodeScene
JMeter
IL-код – это
код бизнес-логики в платформе .NET
промежуточный язык в платформе .NET
исходный код и одновременно код бизнес-логики в платформе .NET
исходный код в платформе .NET
Контроль качества кода поддерживается такими классами средств, как
офисные приложения
онлайн-сервисы
средства, встраиваемые в среду разработки
автономные программные продукты
В разделе «Документация» чек-листа проверяются такие аспекты, как
соответствующие пометки в WIKI
соответствие комментариев принятым требованиям оформления
атомарность коммита
наличие комментариев в коде
К объектно-ориентированным метрикам качества кода относится мера
Левенштейна
Дамерау
Чидамбера и Кемерера
Холстеда
Возможную связность по управлению отражает
граф связности класса по данным и по методам
граф сцепления и связности
граф потока управления
граф потока данных
При таком виде сцепления компонентов модуля кода, как ..., модули разделяют одну и ту же глобальную структуру данных или используют ссылку на общий объект.
сцепление по внешним ссылкам
сцепление по содержанию
сцепление по управлению
сцепление по общей области
Что из представленного не является разделом чек-листа?
Source Control
Код
Коммит
Документация
Какая формула в мере Холстеда используется для расчета объема программы?
Vў = Nўlog2nў
V = Nlog2(n)
Nў = n1log2(n1) + n2log2(n2)
Количество операторов + количество операндов
К средствам оценки качества кода относится
WordPress
CodeMetrics
Drupal
IntelliJ IDE
Программа Collaborator используется
для поиска уязвимостей в системах пользователя
как плагин для Trac
для совместной проверки кода
для Git-репозиториев, написанных на языке Java
Компания Google предлагает ... принципов код-ревью.
13
8
10
7
Укажите инструмент код-ревью.
Peer-to-Peer
Selenium
JUnit
Peer Review
Что, по мнению разработчиков SonarQube, увеличивает технический долг?
Всё перечисленное
Дублирование кода
Спагетти-дизайн
Плохое распределение сложности
Инструментом код-ревью является
Phabricator
Drupal
Jupyter Notebook
HBase
Типовой процесс проведения код-ревью начинается
с глобальных правок
с правок, требующих внимания
c оценки размера Merge Request
с менее глобальных правок
Метрики Чидамбера и Кемерера включают
количество «детей»
центростремительное сцепление
взвешенные методы на класс
высоту дерева наследования
Что не относится к метрике связности по данным?
Токен
Секция данных
Высота дерева наследования
Склеенный токен
Типовой чек-лист в рамках код-ревью содержит несколько разделов. Укажите их.
Тестирование
Source Control
Документация
Код
Установите соответствие между метриками и их принципами.
ООП-метрики • Связность компонент класса можно оценивать со стороны данных и со стороны методов
Метрики связей модульного кода • Модуль может быть охарактеризован с точки зрения способов взаимодействия компонент между собой
Метрики оценки сложности структуры кода • Поток управления или поток данных программы представляются в виде графа, который оценивается как структура определенной сложности
Мера Холстеда • Символы программы учитываются в мере линейно, а их многообразие – по логарифмической шкале
• Связность компонент класса можно оценивать со стороны данных и со стороны методов
• Модуль может быть охарактеризован с точки зрения способов взаимодействия компонент между собой
• Поток управления или поток данных программы представляются в виде графа, который оценивается как структура определенной сложности
• Символы программы учитываются в мере линейно, а их многообразие – по логарифмической шкале
Для проведения код-ревью используется
SourceLevel
Rhodecode
Codecov
SonarQube
Запутывание данных предполагает
преобразования размещения переменных, изменение их классов памяти и формы кодирования значений
стилистические преобразования – изменение имен, форматирования, удаление комментариев
преобразования, усложняющие декомпиляцию или деобфускацию двоичного представления
преобразование агрегации – вставку и вынос функций, копирование кода, раскрутку цикла в последовательность шагов, изменение порядка операторов
В мере Холстеда словарем действий называют словарь
имен классов
операндов
операторов
комментариев
В архитектуру SonarQube входит
таблица Excel
база данных
репозиторий данных
репозиторий тестов
Отзывы
Отзывов пока нет.