💡 Инструкция: Выберите один ответ из пяти. На тест отведено 85 минут; после ответа можно открыть объяснение.
Вопрос 6 из 30
Не запуская фрагмент, выберите объяснение, которое учитывает весь механизм «Дамп процесса».
Visual Basic / VB.NET Visual Basic · Расследование сбоя Visual Basic-приложения Копировать
Class HangCapture
Public Sub Capture(processId As Integer, path As String)
ProcessDumper.WriteFullDump(processId, path, includeHeap:=True)
SymbolStore.RecordVersion(path, BuildInfo.Commit)
End Sub
End Class
Контракт кода: дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии; его анализ требует символов, точной версии и соблюдения правил конфиденциальности.
Контракт кода: дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии; его анализ не требует символов, точной версии и соблюдения правил конфиденциальности.
Контракт кода: достаточно выполнить одно из двух условий: «Дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии» или «его анализ требует символов, точной версии и соблюдения правил конфиденциальности».
Контракт кода: нарушение условия «Дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии» допустимо, если тест подтверждает «его анализ требует символов, точной версии и соблюдения правил конфиденциальности».
Контракт кода: дамп процесса не фиксирует потоки, стеки и кучу в момент зависания или аварии; его анализ требует символов, точной версии и соблюдения правил конфиденциальности.
Вопрос 7 из 30
Раздел «Дамп процесса»: какое ограничение нельзя убрать только потому, что обычный пример проходит?
Visual Basic / VB.NET Visual Basic · Расследование сбоя Visual Basic-приложения Копировать
Option Strict On
Namespace ReviewCase30_2
Class HangCapture
Public Sub Capture(reviewProcessId As Integer, reviewPath As String)
ProcessDumper.WriteFullDump(reviewProcessId, reviewPath, includeHeap:=True)
SymbolStore.RecordVersion(reviewPath, BuildInfo.Commit)
End Sub
End Class
End Namespace
Проверить перед объединением: нарушение условия «Дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии» допустимо, если тест подтверждает «его анализ требует символов, точной версии и соблюдения правил конфиденциальности».
Проверить перед объединением: дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии; его анализ не требует символов, точной версии и соблюдения правил конфиденциальности.
Проверить перед объединением: дамп процесса не фиксирует потоки, стеки и кучу в момент зависания или аварии; его анализ требует символов, точной версии и соблюдения правил конфиденциальности.
Проверить перед объединением: дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии; его анализ требует символов, точной версии и соблюдения правил конфиденциальности.
Проверить перед объединением: достаточно выполнить одно из двух условий: «Дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии» или «его анализ требует символов, точной версии и соблюдения правил конфиденциальности».
Вопрос 8 из 30
Раздел «Дамп процесса»: какое утверждение поможет отличить настоящий дефект от случайности тестовых данных?
Visual Basic / VB.NET Visual Basic · Расследование сбоя Visual Basic-приложения Копировать
Option Explicit On
Option Infer On
Namespace BoundaryCase30_2
Class HangCapture
Public Sub Capture(edgeProcessId As Integer, edgePath As String)
ProcessDumper.WriteFullDump(edgeProcessId, edgePath, includeHeap:=True)
SymbolStore.RecordVersion(edgePath, BuildInfo.Commit)
End Sub
End Class
End Namespace
Закрепить тестом: достаточно выполнить одно из двух условий: «Дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии» или «его анализ требует символов, точной версии и соблюдения правил конфиденциальности».
Закрепить тестом: дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии; его анализ не требует символов, точной версии и соблюдения правил конфиденциальности.
Закрепить тестом: дамп процесса не фиксирует потоки, стеки и кучу в момент зависания или аварии; его анализ требует символов, точной версии и соблюдения правил конфиденциальности.
Закрепить тестом: дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии; его анализ требует символов, точной версии и соблюдения правил конфиденциальности.
Закрепить тестом: нарушение условия «Дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии» допустимо, если тест подтверждает «его анализ требует символов, точной версии и соблюдения правил конфиденциальности».
Вопрос 9 из 30
Раздел «Дамп процесса»: как уменьшить риск дефекта, не подменяя причину запасным значением?
Сделать явным правилом модуля: достаточно выполнить одно из двух условий: «Дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии» или «его анализ требует символов, точной версии и соблюдения правил конфиденциальности».
Сделать явным правилом модуля: дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии; его анализ не требует символов, точной версии и соблюдения правил конфиденциальности.
Сделать явным правилом модуля: нарушение условия «Дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии» допустимо, если тест подтверждает «его анализ требует символов, точной версии и соблюдения правил конфиденциальности».
Сделать явным правилом модуля: дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии; его анализ требует символов, точной версии и соблюдения правил конфиденциальности.
Сделать явным правилом модуля: дамп процесса не фиксирует потоки, стеки и кучу в момент зависания или аварии; его анализ требует символов, точной версии и соблюдения правил конфиденциальности.
Вопрос 10 из 30
Что точнее всего описывает механизм «Дамп процесса»?
Переносимый вывод: дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии; его анализ требует символов, точной версии и соблюдения правил конфиденциальности.
Переносимый вывод: дамп процесса не фиксирует потоки, стеки и кучу в момент зависания или аварии; его анализ требует символов, точной версии и соблюдения правил конфиденциальности.
Переносимый вывод: достаточно выполнить одно из двух условий: «Дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии» или «его анализ требует символов, точной версии и соблюдения правил конфиденциальности».
Переносимый вывод: нарушение условия «Дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии» допустимо, если тест подтверждает «его анализ требует символов, точной версии и соблюдения правил конфиденциальности».
Переносимый вывод: дамп процесса фиксирует потоки, стеки и кучу в момент зависания или аварии; его анализ не требует символов, точной версии и соблюдения правил конфиденциальности.
Вопрос 11 из 30
Раздел «Журналы»: в примере с OperationLog важна не форма записи, а поведение. Какое утверждение его описывает?
Visual Basic / VB.NET Visual Basic · Расследование сбоя Visual Basic-приложения Копировать
Class OperationLog
Public Sub Write(orderId As Integer, stage As String, elapsed As TimeSpan)
logger.Info(New With {.Operation = "order", .OrderIdHash = Hash(orderId), .Stage = stage, .ElapsedMs = elapsed.TotalMilliseconds})
End Sub
End Class
Контракт кода: журналы должны связывать операцию, пользователя или задание обезличенным идентификатором, этапом и длительностью; текст без времени и контекста не строит хронологию.
Контракт кода: stack trace каждой ошибки однозначно восстанавливает порядок параллельных действий, даже если записи не связаны общим идентификатором.
Контракт кода: для удобства поиска в журнал следует записывать логин, адрес и входные данные без обезличивания; закрытый доступ решает вопрос конфиденциальности.
Контракт кода: события из разных потоков можно сортировать только по порядку строк в файле: часы и буферизация не меняют фактическую последовательность.
Контракт кода: точного текста сообщения и времени записи достаточно для хронологии: идентификатор операции нужен только распределённым системам.
Вопрос 13 из 30
Раздел «Журналы»: какое допущение стоит нарушить отдельно, чтобы проверка действительно ловила ошибку?
Visual Basic / VB.NET Visual Basic · Расследование сбоя Visual Basic-приложения Копировать
Option Explicit On
Option Infer On
Namespace BoundaryCase30_3
Class OperationLog
Public Sub Write(edgeOrderId As Integer, edgeStage As String, edgeElapsed As TimeSpan)
logger.Info(New With {.Operation = "order", .OrderIdHash = Hash(edgeOrderId), .Stage = edgeStage, .ElapsedMs = edgeElapsed.TotalMilliseconds})
End Sub
End Class
End Namespace
Закрепить тестом: события из разных потоков можно сортировать только по порядку строк в файле: часы и буферизация не меняют фактическую последовательность.
Закрепить тестом: stack trace каждой ошибки однозначно восстанавливает порядок параллельных действий, даже если записи не связаны общим идентификатором.
Закрепить тестом: журналы должны связывать операцию, пользователя или задание обезличенным идентификатором, этапом и длительностью; текст без времени и контекста не строит хронологию.
Закрепить тестом: точного текста сообщения и времени записи достаточно для хронологии: идентификатор операции нужен только распределённым системам.
Закрепить тестом: для удобства поиска в журнал следует записывать логин, адрес и входные данные без обезличивания; закрытый доступ решает вопрос конфиденциальности.
Вопрос 16 из 30
Раздел «План восстановления»: что в этом коде определяет результат, а не случайное совпадение тестовых данных?
Visual Basic / VB.NET Visual Basic · Расследование сбоя Visual Basic-приложения Копировать
Class RecoveryPlan
Public Sub Execute()
intake.Pause()
evidence.Snapshot()
database.SetReadOnly(True)
service.StartMinimalMode()
health.Verify()
End Sub
End Class
Наблюдаемое поведение: план восстановления сначала не останавливает повреждение и сохраняет доказательства, затем возвращает минимальную функцию, и только после этого меняет код или данные.
Наблюдаемое поведение: план восстановления сначала останавливает повреждение и сохраняет доказательства, затем возвращает минимальную функцию, и только после этого меняет код или данные.
Наблюдаемое поведение: план восстановления сначала останавливает повреждение и сохраняет доказательства, затем возвращает минимальную функцию, и только после этого не меняет код или данные.
Наблюдаемое поведение: план восстановления сначала останавливает повреждение и не сохраняет доказательства, затем возвращает минимальную функцию, и только после этого меняет код или данные.
Наблюдаемое поведение: план восстановления сначала останавливает повреждение и сохраняет доказательства, затем не возвращает минимальную функцию, и только после этого меняет код или данные.
Вопрос 17 из 30
Раздел «План восстановления»: какая претензия к возможной правке относится к поведению программы?
Visual Basic / VB.NET Visual Basic · Расследование сбоя Visual Basic-приложения Копировать
Option Strict On
Namespace ReviewCase30_4
Class RecoveryPlan
Public Sub Execute()
intake.Pause()
evidence.Snapshot()
database.SetReadOnly(True)
service.StartMinimalMode()
health.Verify()
End Sub
End Class
End Namespace
Не менять условие: план восстановления сначала останавливает повреждение и сохраняет доказательства, затем не возвращает минимальную функцию, и только после этого меняет код или данные.
Не менять условие: план восстановления сначала останавливает повреждение и не сохраняет доказательства, затем возвращает минимальную функцию, и только после этого меняет код или данные.
Не менять условие: план восстановления сначала останавливает повреждение и сохраняет доказательства, затем возвращает минимальную функцию, и только после этого не меняет код или данные.
Не менять условие: план восстановления сначала не останавливает повреждение и сохраняет доказательства, затем возвращает минимальную функцию, и только после этого меняет код или данные.
Не менять условие: план восстановления сначала останавливает повреждение и сохраняет доказательства, затем возвращает минимальную функцию, и только после этого меняет код или данные.
Вопрос 18 из 30
Раздел «План восстановления»: для участка с RecoveryPlan нужен отрицательный тест. Какой контракт стоит проверить, меняя только одно условие?
Visual Basic / VB.NET Visual Basic · Расследование сбоя Visual Basic-приложения Копировать
Option Explicit On
Option Infer On
Namespace BoundaryCase30_4
Class RecoveryPlan
Public Sub Execute()
intake.Pause()
evidence.Snapshot()
database.SetReadOnly(True)
service.StartMinimalMode()
health.Verify()
End Sub
End Class
End Namespace
Добавить регрессионную проверку: план восстановления сначала останавливает повреждение и не сохраняет доказательства, затем возвращает минимальную функцию, и только после этого меняет код или данные.
Добавить регрессионную проверку: план восстановления сначала останавливает повреждение и сохраняет доказательства, затем возвращает минимальную функцию, и только после этого не меняет код или данные.
Добавить регрессионную проверку: план восстановления сначала останавливает повреждение и сохраняет доказательства, затем возвращает минимальную функцию, и только после этого меняет код или данные.
Добавить регрессионную проверку: план восстановления сначала останавливает повреждение и сохраняет доказательства, затем не возвращает минимальную функцию, и только после этого меняет код или данные.
Добавить регрессионную проверку: план восстановления сначала не останавливает повреждение и сохраняет доказательства, затем возвращает минимальную функцию, и только после этого меняет код или данные.
Вопрос 19 из 30
Раздел «План восстановления»: какой подход сохраняет границу ответственности и делает отказ диагностируемым?
Сделать явным правилом модуля: план восстановления сначала останавливает повреждение и сохраняет доказательства, затем возвращает минимальную функцию, и только после этого меняет код или данные.
Сделать явным правилом модуля: план восстановления сначала не останавливает повреждение и сохраняет доказательства, затем возвращает минимальную функцию, и только после этого меняет код или данные.
Сделать явным правилом модуля: план восстановления сначала останавливает повреждение и не сохраняет доказательства, затем возвращает минимальную функцию, и только после этого меняет код или данные.
Сделать явным правилом модуля: план восстановления сначала останавливает повреждение и сохраняет доказательства, затем возвращает минимальную функцию, и только после этого не меняет код или данные.
Сделать явным правилом модуля: план восстановления сначала останавливает повреждение и сохраняет доказательства, затем не возвращает минимальную функцию, и только после этого меняет код или данные.
Вопрос 20 из 30
Раздел «План восстановления»: какое правило остаётся верным для современного Visual Basic?
Рабочее правило: план восстановления сначала останавливает повреждение и сохраняет доказательства, затем не возвращает минимальную функцию, и только после этого меняет код или данные.
Рабочее правило: план восстановления сначала останавливает повреждение и сохраняет доказательства, затем возвращает минимальную функцию, и только после этого не меняет код или данные.
Рабочее правило: план восстановления сначала останавливает повреждение и не сохраняет доказательства, затем возвращает минимальную функцию, и только после этого меняет код или данные.
Рабочее правило: план восстановления сначала останавливает повреждение и сохраняет доказательства, затем возвращает минимальную функцию, и только после этого меняет код или данные.
Рабочее правило: план восстановления сначала не останавливает повреждение и сохраняет доказательства, затем возвращает минимальную функцию, и только после этого меняет код или данные.
Вопрос 21 из 30
Раздел «Технический долг»: что здесь является частью контракта, а не особенностью одного удачного запуска?
Visual Basic / VB.NET Visual Basic · Расследование сбоя Visual Basic-приложения Копировать
Class DebtItem
Public Property Risk As String
Public Property IncidentsPerMonth As Decimal
Public Property FixCostDays As Decimal
Public Property ExitCondition As String
End Class
Контракт кода: технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения; ярлык «старый VB-код» не помогает выбрать приоритет.
Контракт кода: контракт Технический долг можно сократить до «Технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения»; часть «ярлык «старый VB-код» не помогает выбрать приоритет» остаётся лишь рекомендацией.
Контракт кода: нарушение условия «Технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения» допустимо, если тест подтверждает «ярлык «старый VB-код» не помогает выбрать приоритет».
Контракт кода: достаточно выполнить одно из двух условий: «Технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения» или «ярлык «старый VB-код» не помогает выбрать приоритет».
Контракт кода: технический долг не описывают как конкретный риск, частоту отказа, стоимость и условие устранения; ярлык «старый VB-код» не помогает выбрать приоритет.
Вопрос 22 из 30
Раздел «Технический долг»: на ревью предлагают упростить участок с DebtItem. Какое замечание защищает поведение программы, а не стиль записи?
Visual Basic / VB.NET Visual Basic · Расследование сбоя Visual Basic-приложения Копировать
Option Strict On
Namespace ReviewCase30_5
Class DebtItem
Public Property Risk As String
Public Property IncidentsPerMonth As Decimal
Public Property FixCostDays As Decimal
Public Property ExitCondition As String
End Class
End Namespace
Не менять условие: достаточно выполнить одно из двух условий: «Технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения» или «ярлык «старый VB-код» не помогает выбрать приоритет».
Не менять условие: технический долг не описывают как конкретный риск, частоту отказа, стоимость и условие устранения; ярлык «старый VB-код» не помогает выбрать приоритет.
Не менять условие: нарушение условия «Технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения» допустимо, если тест подтверждает «ярлык «старый VB-код» не помогает выбрать приоритет».
Не менять условие: контракт Технический долг можно сократить до «Технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения»; часть «ярлык «старый VB-код» не помогает выбрать приоритет» остаётся лишь рекомендацией.
Не менять условие: технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения; ярлык «старый VB-код» не помогает выбрать приоритет.
Вопрос 23 из 30
Раздел «Технический долг»: для фрагмента с DebtItem добавляют регрессионный тест. Какой контракт он должен защищать?
Visual Basic / VB.NET Visual Basic · Расследование сбоя Visual Basic-приложения Копировать
Option Explicit On
Option Infer On
Namespace BoundaryCase30_5
Class DebtItem
Public Property Risk As String
Public Property IncidentsPerMonth As Decimal
Public Property FixCostDays As Decimal
Public Property ExitCondition As String
End Class
End Namespace
Закрепить тестом: технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения; ярлык «старый VB-код» не помогает выбрать приоритет.
Закрепить тестом: нарушение условия «Технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения» допустимо, если тест подтверждает «ярлык «старый VB-код» не помогает выбрать приоритет».
Закрепить тестом: контракт Технический долг можно сократить до «Технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения»; часть «ярлык «старый VB-код» не помогает выбрать приоритет» остаётся лишь рекомендацией.
Закрепить тестом: технический долг не описывают как конкретный риск, частоту отказа, стоимость и условие устранения; ярлык «старый VB-код» не помогает выбрать приоритет.
Закрепить тестом: достаточно выполнить одно из двух условий: «Технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения» или «ярлык «старый VB-код» не помогает выбрать приоритет».
Вопрос 24 из 30
Какое решение соответствует реальному времени жизни объектов и правилам «Технический долг»?
Не скрывать за запасным сценарием: технический долг не описывают как конкретный риск, частоту отказа, стоимость и условие устранения; ярлык «старый VB-код» не помогает выбрать приоритет.
Не скрывать за запасным сценарием: технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения; ярлык «старый VB-код» не помогает выбрать приоритет.
Не скрывать за запасным сценарием: нарушение условия «Технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения» допустимо, если тест подтверждает «ярлык «старый VB-код» не помогает выбрать приоритет».
Не скрывать за запасным сценарием: контракт Технический долг можно сократить до «Технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения»; часть «ярлык «старый VB-код» не помогает выбрать приоритет» остаётся лишь рекомендацией.
Не скрывать за запасным сценарием: достаточно выполнить одно из двух условий: «Технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения» или «ярлык «старый VB-код» не помогает выбрать приоритет».
Вопрос 25 из 30
Раздел «Технический долг»: какой вывод можно использовать как основание для ревью кода?
Переносимый вывод: технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения; ярлык «старый VB-код» не помогает выбрать приоритет.
Переносимый вывод: нарушение условия «Технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения» допустимо, если тест подтверждает «ярлык «старый VB-код» не помогает выбрать приоритет».
Переносимый вывод: контракт Технический долг можно сократить до «Технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения»; часть «ярлык «старый VB-код» не помогает выбрать приоритет» остаётся лишь рекомендацией.
Переносимый вывод: технический долг не описывают как конкретный риск, частоту отказа, стоимость и условие устранения; ярлык «старый VB-код» не помогает выбрать приоритет.
Переносимый вывод: достаточно выполнить одно из двух условий: «Технический долг описывают как конкретный риск, частоту отказа, стоимость и условие устранения» или «ярлык «старый VB-код» не помогает выбрать приоритет».