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

Сборка и выпуск приложения

Тест по теме «Сборка и выпуск приложения» охватывает «Варианты конфигурации сборки», «Подпись», «Оптимизация сборки», «Обновление версии», «Качество данных» и «Воспроизводимость результата». В 30 вопросах нужно читать код, различать граничные случаи, выбирать место исправления, формулировать внешний договор и проектировать регрессионную проверку. Заданий с фрагментами кода — 18; в каждом вопросе один правильный ответ из пяти.

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На работу отведено 85 минут. В заданиях с кодом опирайтесь на показанный фрагмент и наблюдаемое поведение; в ситуационных — на публичный договор и последствия решения.
Вопрос 1 из 30
Код проходит обычный сценарий. Какие проверки по теме «Варианты конфигурации сборки» нужны, чтобы разные граничные исходы не слились в один?
DartDart · Варианты конфигурации сборки · границы
enum AppFlavor { development, staging, production }

final class AppConfig {
  const AppConfig({required this.flavor, required this.apiBase});
  final AppFlavor flavor;
  final Uri apiBase;

  static AppConfig fromEnvironment() => AppConfig(
    flavor: AppFlavor.values.byName(const String.fromEnvironment('FLAVOR')),
    apiBase: Uri.parse(const String.fromEnvironment('API_BASE')),
  );
}

// Контекст задания: анализ граничных входов.
Вопрос 2 из 30
Локальная заплатка помогла только одному клиенту этого кода. Какая правка устраняет причину в теме «Варианты конфигурации сборки»?
DartDart · Варианты конфигурации сборки · исправление
enum AppFlavor { development, staging, production }

final class AppConfig {
  const AppConfig({required this.flavor, required this.apiBase});
  final AppFlavor flavor;
  final Uri apiBase;

  static AppConfig fromEnvironment() => AppConfig(
    flavor: AppFlavor.values.byName(const String.fromEnvironment('FLAVOR')),
    apiBase: Uri.parse(const String.fromEnvironment('API_BASE')),
  );
}

// Контекст задания: выбор места исправления.
Вопрос 3 из 30
Какой вывод о фрагменте «Варианты конфигурации сборки» останется верным после безопасного рефакторинга?
DartDart · Варианты конфигурации сборки · семантика
enum AppFlavor { development, staging, production }

final class AppConfig {
  const AppConfig({required this.flavor, required this.apiBase});
  final AppFlavor flavor;
  final Uri apiBase;

  static AppConfig fromEnvironment() => AppConfig(
    flavor: AppFlavor.values.byName(const String.fromEnvironment('FLAVOR')),
    apiBase: Uri.parse(const String.fromEnvironment('API_BASE')),
  );
}

// Контекст задания: проверка семантики фрагмента.
Вопрос 4 из 30
Одна реализация темы «Варианты конфигурации сборки» заменяется другой. Что внешний код вправе ожидать после замены?
Вопрос 5 из 30
Как проверить тему «Варианты конфигурации сборки» через публичный результат, не цепляясь за устройство реализации?
Вопрос 6 из 30
Команда хочет сократить набор проверок для «Подпись» до одного сценария. Какой вариант сохраняет важные различия?
BashКомандная строка · Подпись · границы
: "${ANDROID_KEYSTORE:?missing keystore}"
: "${ANDROID_KEY_ALIAS:?missing alias}"
flutter build appbundle --release --dart-define=FLAVOR=production
sha256sum build/app/outputs/bundle/release/app-release.aab

# Контекст задания: анализ граничных входов.
Вопрос 7 из 30
Какое утверждение о показанном фрагменте и теме «Подпись» опирается на реальную гарантию Dart или используемого интерфейса?
BashКомандная строка · Подпись · семантика
: "${ANDROID_KEYSTORE:?missing keystore}"
: "${ANDROID_KEY_ALIAS:?missing alias}"
flutter build appbundle --release --dart-define=FLAVOR=production
sha256sum build/app/outputs/bundle/release/app-release.aab

# Контекст задания: проверка семантики фрагмента.
Вопрос 8 из 30
Локальная заплатка помогла только одному клиенту этого кода. Какая правка устраняет причину в теме «Подпись»?
BashКомандная строка · Подпись · исправление
: "${ANDROID_KEYSTORE:?missing keystore}"
: "${ANDROID_KEY_ALIAS:?missing alias}"
flutter build appbundle --release --dart-define=FLAVOR=production
sha256sum build/app/outputs/bundle/release/app-release.aab

# Контекст задания: выбор места исправления.
Вопрос 9 из 30
Какой тест действительно поймает возврат дефекта в теме «Подпись»?
Вопрос 10 из 30
Одна реализация темы «Подпись» заменяется другой. Что внешний код вправе ожидать после замены?
Вопрос 11 из 30
Какой тезис о коде «Оптимизация сборки» можно защитить без ссылки на удачный тестовый запуск?
BashКомандная строка · Оптимизация сборки · семантика
flutter build appbundle --release --analyze-size
flutter build apk --release --split-per-abi
# Keep --split-debug-info output with the release artifacts.

# Контекст задания: проверка семантики фрагмента.
Вопрос 12 из 30
Какой вариант правки убирает источник дефекта «Оптимизация сборки» и не заставляет клиентов дублировать защиту?
BashКомандная строка · Оптимизация сборки · исправление
flutter build appbundle --release --analyze-size
flutter build apk --release --split-per-abi
# Keep --split-debug-info output with the release artifacts.

# Контекст задания: выбор места исправления.
Вопрос 13 из 30
Код проходит обычный сценарий. Какие проверки по теме «Оптимизация сборки» нужны, чтобы разные граничные исходы не слились в один?
BashКомандная строка · Оптимизация сборки · границы
flutter build appbundle --release --analyze-size
flutter build apk --release --split-per-abi
# Keep --split-debug-info output with the release artifacts.

# Контекст задания: анализ граничных входов.
Вопрос 14 из 30
Внутреннее устройство решения «Оптимизация сборки» меняется. Какой внешний договор обязан сохраниться?
Вопрос 15 из 30
Какой тест действительно поймает возврат дефекта в теме «Оптимизация сборки»?
Вопрос 16 из 30
Что здесь следует считать правилом «Обновление версии», а что — лишь деталью текущей реализации?
HTML/XMLКонфигурация · Обновление версии · семантика
name: client_app
version: 4.7.0+318

environment:
  sdk: ^3.8.0

# Контекст задания: проверка семантики фрагмента.
Вопрос 17 из 30
Код прошёл демонстрационный пример, но границы не разобраны. Что нужно проверить отдельно в теме «Обновление версии»?
HTML/XMLКонфигурация · Обновление версии · границы
name: client_app
version: 4.7.0+318

environment:
  sdk: ^3.8.0

# Контекст задания: анализ граничных входов.
Вопрос 18 из 30
Какой вариант правки убирает источник дефекта «Обновление версии» и не заставляет клиентов дублировать защиту?
HTML/XMLКонфигурация · Обновление версии · исправление
name: client_app
version: 4.7.0+318

environment:
  sdk: ^3.8.0

# Контекст задания: выбор места исправления.
Вопрос 19 из 30
После исправления темы «Обновление версии» нужен тест, который переживёт рефакторинг. Что следует закрепить?
Вопрос 20 из 30
Внутреннее устройство решения «Обновление версии» меняется. Какой внешний договор обязан сохраниться?
Вопрос 21 из 30
Какое изменение показанного кода исправляет правило «Качество данных», а не маскирует один его симптом?
DartDart · Качество данных · исправление
Future<void> preflight(ReleaseConfig config) async {
  await verifyDatabaseMigrations();
  await verifyBackendEnvironment(config.apiBase);
  await verifyAnalyticsSchema();
  await verifyNoDemoAccounts();
}

// Контекст задания: выбор места исправления.
Вопрос 22 из 30
Для показанного решения написали один тест на успех. Какой набор граничных сценариев по теме «Качество данных» должен появиться рядом?
DartDart · Качество данных · границы
Future<void> preflight(ReleaseConfig config) async {
  await verifyDatabaseMigrations();
  await verifyBackendEnvironment(config.apiBase);
  await verifyAnalyticsSchema();
  await verifyNoDemoAccounts();
}

// Контекст задания: анализ граничных входов.
Вопрос 23 из 30
Какой тезис о коде «Качество данных» можно защитить без ссылки на удачный тестовый запуск?
DartDart · Качество данных · семантика
Future<void> preflight(ReleaseConfig config) async {
  await verifyDatabaseMigrations();
  await verifyBackendEnvironment(config.apiBase);
  await verifyAnalyticsSchema();
  await verifyNoDemoAccounts();
}

// Контекст задания: проверка семантики фрагмента.
Вопрос 24 из 30
Какой договор позволяет тестировать «Качество данных» через результат, а не через приватные детали?
Вопрос 25 из 30
После исправления темы «Качество данных» нужен тест, который переживёт рефакторинг. Что следует закрепить?
Вопрос 26 из 30
Фрагмент допускает частный обход спорного случая. Как перенести ответственность туда, где определяется правило «Воспроизводимость результата»?
BashКомандная строка · Воспроизводимость результата · исправление
git diff --exit-code
dart pub get --enforce-lockfile
flutter analyze
flutter test
flutter build appbundle --release --obfuscate --split-debug-info=artifacts/symbols
sha256sum build/app/outputs/bundle/release/app-release.aab > artifacts/checksums.txt

# Контекст задания: выбор места исправления.
Вопрос 27 из 30
Какое описание семантики показанного решения по теме «Воспроизводимость результата» является точным?
BashКомандная строка · Воспроизводимость результата · семантика
git diff --exit-code
dart pub get --enforce-lockfile
flutter analyze
flutter test
flutter build appbundle --release --obfuscate --split-debug-info=artifacts/symbols
sha256sum build/app/outputs/bundle/release/app-release.aab > artifacts/checksums.txt

# Контекст задания: проверка семантики фрагмента.
Вопрос 28 из 30
Для показанного решения написали один тест на успех. Какой набор граничных сценариев по теме «Воспроизводимость результата» должен появиться рядом?
BashКомандная строка · Воспроизводимость результата · границы
git diff --exit-code
dart pub get --enforce-lockfile
flutter analyze
flutter test
flutter build appbundle --release --obfuscate --split-debug-info=artifacts/symbols
sha256sum build/app/outputs/bundle/release/app-release.aab > artifacts/checksums.txt

# Контекст задания: анализ граничных входов.
Вопрос 29 из 30
Что добавить в набор тестов, чтобы ошибка по теме «Воспроизводимость результата» не вернулась незаметно?
Вопрос 30 из 30
Какой договор позволяет тестировать «Воспроизводимость результата» через результат, а не через приватные детали?

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

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

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

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