VB Visual Basic  ·  30 вопросов  ·  ~85 мин  ·  ⏱ Таймер 25:00  ·  Сложный  · 

Расследование сбоя Visual Basic-приложения

Тест по теме «Расследование сбоя Visual Basic-приложения» состоит из 30 вопросов: нужно читать код, сравнивать близкие решения, находить границы применимости правил и разбирать последствия ошибок. Заданий с кодом — 18; после каждого ответа открывается объяснение.

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На тест отведено 85 минут; после ответа можно открыть объяснение.
Вопрос 1 из 30
Не запуская фрагмент, выберите объяснение, которое учитывает весь механизм «Трассировка».
Visual Basic / VB.NETVisual Basic · Расследование сбоя Visual Basic-приложения
Module CrashBoundary
    Sub Main()
        Try
            Application.Run(New MainForm())
        Catch ex As Exception
            CrashReporter.Capture(ex)
            Throw
        End Try
    End Sub
End Module
Вопрос 2 из 30
Раздел «Трассировка»: что должно остаться явным после переработки участка с трассировка?
Visual Basic / VB.NETVisual Basic · Расследование сбоя Visual Basic-приложения
Option Strict On
Namespace ReviewCase30_1
    Module CrashBoundary
        Sub Main()
            Try
                Application.Run(New MainForm())
            Catch reviewEx As Exception
                CrashReporter.Capture(reviewEx)
                Throw reviewEx
            End Try
        End Sub
    End Module
End Namespace
Вопрос 3 из 30
Раздел «Трассировка»: для фрагмента с трассировка добавляют регрессионный тест. Какой контракт он должен защищать?
Visual Basic / VB.NETVisual Basic · Расследование сбоя Visual Basic-приложения
Option Explicit On
Option Infer On
Namespace BoundaryCase30_1
    Module CrashBoundary
        Sub Main()
            Try
                Application.Run(New MainForm())
            Catch edgeEx As Exception
                CrashReporter.Capture(edgeEx)
                Throw
            End Try
        End Sub
    End Module
End Namespace
Вопрос 4 из 30
Раздел «Трассировка»: какой вариант оставляет важное условие явным для следующего разработчика?
Вопрос 5 из 30
Какой принцип по теме «Трассировка» стоит закрепить в командных соглашениях?
Вопрос 6 из 30
Не запуская фрагмент, выберите объяснение, которое учитывает весь механизм «Дамп процесса».
Visual Basic / VB.NETVisual 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.NETVisual 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.NETVisual 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.NETVisual 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
Вопрос 12 из 30
Раздел «Журналы»: перед объединением правки нужно проверить один принцип. Какой именно?
Visual Basic / VB.NETVisual Basic · Расследование сбоя Visual Basic-приложения
Option Strict On
Namespace ReviewCase30_3
    Class OperationLog
        Public Sub Write(reviewOrderId As Integer, reviewStage As String, reviewElapsed As TimeSpan)
            logger.Info(New With {.Operation = "order", .OrderIdHash = Hash(reviewOrderId), .Stage = reviewStage, .ElapsedMs = reviewElapsed.TotalMilliseconds})
        End Sub
    End Class
End Namespace
Вопрос 13 из 30
Раздел «Журналы»: какое допущение стоит нарушить отдельно, чтобы проверка действительно ловила ошибку?
Visual Basic / VB.NETVisual 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
Вопрос 14 из 30
Какое решение соответствует реальному времени жизни объектов и правилам «Журналы»?
Вопрос 15 из 30
Что точнее всего описывает механизм «Журналы»?
Вопрос 16 из 30
Раздел «План восстановления»: что в этом коде определяет результат, а не случайное совпадение тестовых данных?
Visual Basic / VB.NETVisual 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.NETVisual 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.NETVisual 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.NETVisual 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
Вопрос 22 из 30
Раздел «Технический долг»: на ревью предлагают упростить участок с DebtItem. Какое замечание защищает поведение программы, а не стиль записи?
Visual Basic / VB.NETVisual 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
Вопрос 23 из 30
Раздел «Технический долг»: для фрагмента с DebtItem добавляют регрессионный тест. Какой контракт он должен защищать?
Visual Basic / VB.NETVisual 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
Вопрос 24 из 30
Какое решение соответствует реальному времени жизни объектов и правилам «Технический долг»?
Вопрос 25 из 30
Раздел «Технический долг»: какой вывод можно использовать как основание для ревью кода?
Вопрос 26 из 30
Раздел «Эволюция архитектуры»: что в этом коде определяет результат, а не случайное совпадение тестовых данных?
Visual Basic / VB.NETVisual Basic · Расследование сбоя Visual Basic-приложения
Class LegacyGateway
    Public Async Function ExecuteAsync(request As Request) As Task(Of Result)
        If flags.UseNewGateway Then Return Await modern.ExecuteAsync(request)
        Return Await legacy.ExecuteAsync(request)
    End Function
End Class
Вопрос 27 из 30
Раздел «Эволюция архитектуры»: на ревью предлагают упростить участок с LegacyGateway. Какое замечание защищает поведение программы, а не стиль записи?
Visual Basic / VB.NETVisual Basic · Расследование сбоя Visual Basic-приложения
Option Strict On
Namespace ReviewCase30_6
    Class LegacyGateway
        Public Async Function ExecuteAsync(reviewRequest As Request) As Task(Of Result)
            If flags.UseNewGateway Then Return Await modern.ExecuteAsync(reviewRequest)
            Return Await legacy.ExecuteAsync(reviewRequest)
        End Function
    End Class
End Namespace
Вопрос 28 из 30
Какое свойство механизма «Эволюция архитектуры» нужно проверить на редком, но допустимом сценарии?
Visual Basic / VB.NETVisual Basic · Расследование сбоя Visual Basic-приложения
Option Explicit On
Option Infer On
Namespace BoundaryCase30_6
    Class LegacyGateway
        Public Async Function ExecuteAsync(edgeRequest As Request) As Task(Of Result)
            If flags.UseNewGateway Then Return Await modern.ExecuteAsync(edgeRequest)
            Return Await legacy.ExecuteAsync(edgeRequest)
        End Function
    End Class
End Namespace
Вопрос 29 из 30
Какое решение соответствует реальному времени жизни объектов и правилам «Эволюция архитектуры»?
Вопрос 30 из 30
Раздел «Эволюция архитектуры»: какое обобщение не зависит от случайных деталей показанного примера?

Ответьте на все 30 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу