Что такое YAML и где он применяется в разработке и тестировании?

«Что такое YAML и где он применяется в разработке и тестировании?» — вопрос из категории Форматы данных, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

YAML (YAML Ain't Markup Language) — это человеко-читаемый формат сериализации данных, часто используемый для конфигурационных файлов. Он использует отступы для обозначения структуры, что делает его более чистым и понятным по сравнению с JSON или XML для конфигураций.

Синтаксис и пример:

# Конфигурация деплоя в Kubernetes
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3  # Запустить 3 копии (пода)
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.21
        ports:
        - containerPort: 80

Области применения в разработке/тестировании:

  1. Конфигурация CI/CD: Файлы .gitlab-ci.yml, .github/workflows/.
  2. Оркестрация контейнеров: Docker Compose (docker-compose.yml), манифесты Kubernetes.
  3. Конфигурация инфраструктуры как код (IaC): Ansible playbooks, Terraform переменные.
  4. Конфигурация тестов: Настройка фреймворков (например, playwright.config.yml), описание тестовых данных или API-спецификаций (OpenAPI/Swagger).

Важно для QA: Умение читать и валидировать YAML-файлы, понимать структуру конфигураций тестового окружения и пайплайнов. Ошибки в отступах — частая причина проблем.