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

ShellCheck и тестирование скриптов

Сложный тест по теме «ShellCheck и тестирование скриптов». Вопросы требуют читать Bash-код, отслеживать расширения, потоки и коды завершения, находить дефекты и выбирать правку с учётом эксплуатации. В серии 30 вопросов, из них 18 содержат полноценные фрагменты кода. Базовая среда — GNU Bash 5.2; внешние GNU-утилиты оговариваются в тексте задания.

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом вопросе верен только один вариант. После завершения вы увидите общий результат, оценки по 6 тематическим шкалам и подробные объяснения.
Вопрос 1 из 30
В служебном сценарии найден следующий фрагмент по теме «Статический анализ». Какой вывод об этом варианте можно сделать без догадок о внешнем контексте?
BashСтатический анализ · вариант A
files=$(find . -type f)
for f in $files; do echo "$f"; done
Вопрос 2 из 30
В служебном сценарии найден следующий фрагмент по теме «Тестирование через Bats». Какой разбор соответствует именно показанной последовательности команд?
BashТестирование через Bats · вариант A
@test "returns 64 without args" {
  run ./script.sh
  [ "$status" -eq 64 ]
}
Вопрос 3 из 30
В служебном сценарии найден следующий фрагмент по теме «Тестовые окружения». Какое описание не приписывает фрагменту лишних гарантий?
BashТестовые окружения · вариант A
fakebin=$(mktemp -d)
printf '#!/bin/sh\nprintf "%s\0" "$@" >"$CALLS"\n' > "$fakebin/curl"
chmod +x "$fakebin/curl"
Вопрос 4 из 30
В служебном сценарии найден следующий фрагмент по теме «Проверка ошибок». Не предполагая намерение автора, что можно утверждать об этой конструкции?
BashПроверка ошибок · вариант A
run env FAIL_STEP=copy ./deploy.sh
[ "$status" -ne 0 ]
[ ! -e "$TARGET/current.new" ]
Вопрос 5 из 30
В служебном сценарии найден следующий фрагмент по теме «Проверка и диагностика». Какое утверждение точно относится к показанному фрагменту?
BashПроверка и диагностика · вариант A
LC_ALL=C TZ=UTC umask 077
./script.sh
Вопрос 6 из 30
В служебном сценарии найден следующий фрагмент по теме «Безопасность и переносимость». Какой вывод об этом варианте можно сделать без догадок о внешнем контексте?
BashБезопасность и переносимость · вариант A
docker run --rm koalaman/shellcheck:latest script.sh
Вопрос 7 из 30
При проверке темы «Статический анализ» в тесте «ShellCheck и тестирование скриптов» нужно оценить именно этот вариант. Какой вывод наиболее точно привязан к показанной реализации?
BashСтатический анализ · вариант B
# shellcheck disable=SC2044
for f in $(find . -type f); do ...; done
Вопрос 8 из 30
При проверке темы «Тестирование через Bats» в тесте «ShellCheck и тестирование скриптов» нужно оценить именно этот вариант. Какое утверждение о поведении кода остаётся точным на граничном входе?
BashТестирование через Bats · вариант B
@test "creates file" { ./script.sh; [ -f /tmp/result ]; }
Вопрос 9 из 30
При проверке темы «Тестовые окружения» в тесте «ShellCheck и тестирование скриптов» нужно оценить именно этот вариант. Что важно заметить в этом фрагменте до его включения в автоматизацию?
BashТестовые окружения · вариант B
alias curl='echo fake'
./script.sh
Вопрос 10 из 30
При проверке темы «Проверка ошибок» в тесте «ShellCheck и тестирование скриптов» нужно оценить именно этот вариант. Что действительно гарантирует или, наоборот, не гарантирует эта конструкция?
BashПроверка ошибок · вариант B
run ./script.sh bad
[ "$status" -ne 0 ]
Вопрос 11 из 30
При проверке темы «Проверка и диагностика» в тесте «ShellCheck и тестирование скриптов» нужно оценить именно этот вариант. Фрагмент запускают как часть служебного сценария. Как его следует оценить?
BashПроверка и диагностика · вариант B
env LC_ALL=C TZ=UTC ./script.sh
Вопрос 12 из 30
При проверке темы «Безопасность и переносимость» в тесте «ShellCheck и тестирование скриптов» нужно оценить именно этот вариант. Какой вывод наиболее точно привязан к показанной реализации?
BashБезопасность и переносимость · вариант B
docker run --rm koalaman/shellcheck:v0.10.0 script.sh
Вопрос 13 из 30
В тесте «ShellCheck и тестирование скриптов» показан фрагмент из блока «Статический анализ». Какое суждение правильно описывает показанную реализацию?
BashСтатический анализ · вариант C
while IFS= read -r -d '' f; do ...; done < <(find . -type f -print0)
Вопрос 14 из 30
В тесте «ShellCheck и тестирование скриптов» показан фрагмент из блока «Тестирование через Bats». Какой ответ учитывает и полезный эффект, и остающееся ограничение кода?
BashТестирование через Bats · вариант C
setup() { TEST_TMP=$(mktemp -d); }
teardown() { rm -rf -- "$TEST_TMP"; }
Вопрос 15 из 30
В тесте «ShellCheck и тестирование скриптов» показан фрагмент из блока «Тестовые окружения». Код предлагают как альтернативу. Какова его точная техническая оценка?
BashТестовые окружения · вариант C
PATH="$fakebin:/usr/bin:/bin" CALLS="$calls" ./script.sh
Вопрос 16 из 30
В тесте «ShellCheck и тестирование скриптов» показан фрагмент из блока «Проверка ошибок». Что является главным свойством этого варианта?
BashПроверка ошибок · вариант C
[ "$status" -eq 64 ]
[[ $output == *"invalid mode"* ]]
Вопрос 17 из 30
В тесте «ShellCheck и тестирование скриптов» показан фрагмент из блока «Проверка и диагностика». Как следует оценить конструкцию, не считая её автоматически исправлением?
BashПроверка и диагностика · вариант C
expected=$(printf 'a\nb')
[ "$output" = "$expected" ]
Вопрос 18 из 30
В тесте «ShellCheck и тестирование скриптов» показан фрагмент из блока «Безопасность и переносимость». Какое суждение правильно описывает показанную реализацию?
BashБезопасность и переносимость · вариант C
shellcheck -S error script.sh
Вопрос 19 из 30
На техническом ревью обсуждают раздел «Статический анализ». На какой границе эта техника перестаёт быть достаточной сама по себе?
Вопрос 20 из 30
На техническом ревью обсуждают раздел «Тестирование через Bats». Где заканчивается защита, которую даёт рассматриваемая конструкция?
Вопрос 21 из 30
На техническом ревью обсуждают раздел «Тестовые окружения». Что способно нарушить ожидаемый результат, хотя основной фрагмент написан корректно?
Вопрос 22 из 30
На техническом ревью обсуждают раздел «Проверка ошибок». Какой эксплуатационный компромисс здесь нельзя скрывать за успешным кодом возврата?
Вопрос 23 из 30
На техническом ревью обсуждают раздел «Проверка и диагностика». Что обязательно нужно проверить в соседнем сценарии, чтобы не получить ложную надёжность?
Вопрос 24 из 30
На техническом ревью обсуждают раздел «Безопасность и переносимость». На какой границе эта техника перестаёт быть достаточной сама по себе?
Вопрос 25 из 30
Для темы «Статический анализ» нужно отделить свойство механизма от удачного примера. Какое утверждение точнее всего описывает контракт рассматриваемого механизма?
Вопрос 26 из 30
Для темы «Тестирование через Bats» нужно отделить свойство механизма от удачного примера. Какое правило позволяет правильно разобрать эту тему до запуска кода?
Вопрос 27 из 30
Для темы «Тестовые окружения» нужно отделить свойство механизма от удачного примера. Какое свойство механизма нельзя подменять удачным примером запуска?
Вопрос 28 из 30
Для темы «Проверка ошибок» нужно отделить свойство механизма от удачного примера. Какая формулировка связывает частные примеры одним проверяемым правилом?
Вопрос 29 из 30
Для темы «Проверка и диагностика» нужно отделить свойство механизма от удачного примера. Что в этой теме является свойством языка, а не случайностью конкретного запуска?
Вопрос 30 из 30
Для темы «Безопасность и переносимость» нужно отделить свойство механизма от удачного примера. Какое утверждение точнее всего описывает контракт рассматриваемого механизма?

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

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

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

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