Как организовать процесс тестирования при отсутствии документации?

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

Ответ

Методика исследовательского тестирования (Exploratory Testing) становится основным подходом.

Пошаговый план действий:

1. Анализ доступных артефактов

Источники информации:
- Исходный код (если доступен)
- Логи приложения
- HTTP-трафик (Charles/Fiddler)
- База данных (схемы, данные)
- Коммиты и история изменений

2. Реверс-инжиниринг через API

import requests
import json

# Исследование endpoint'ов
endpoints = ['/api/users', '/api/orders', '/api/products']

for endpoint in endpoints:
    response = requests.get(f'https://app.com{endpoint}')

    # Анализ структуры ответа
    if response.status_code == 200:
        data = response.json()
        print(f'{endpoint}: {json.dumps(data, indent=2)[:200]}...')

        # Выявление параметров
        if isinstance(data, list) and len(data) > 0:
            print('Пример структуры элемента:', data[0].keys())

3. Создание живой документации

# Найденные endpoint'ы

## GET /api/users
- Параметры: limit, offset
- Ответ: массив объектов User
- Пример: [{"id": 1, "name": "John"}]

## POST /api/orders
- Тело: {"productId": 123, "quantity": 2}
- Ответ: {"orderId": 456, "status": "created"}

4. Привлечение стейкхолдеров

  • Интервью с разработчиками о бизнес-логике
  • Сессии совместного тестирования с продактами
  • Использование прототипов и макетов

5. Risk-Based тестирование

  1. Определение наиболее рискованных областей
  2. Тестирование граничных значений и ошибок
  3. Проверка интеграционных точек
  4. Валидация бизнес-критичных сценариев

6. Инструменты для анализа:

  • Swagger/OpenAPI для реконструкции спецификации
  • Selenium для исследования UI
  • SQL-запросы для анализа данных
  • Мониторинг логов (Kibana, Splunk)

Ключевой результат: создание документации в процессе тестирования и постоянная валидация предположений с командой.