Ответ
Методика исследовательского тестирования (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 тестирование
- Определение наиболее рискованных областей
- Тестирование граничных значений и ошибок
- Проверка интеграционных точек
- Валидация бизнес-критичных сценариев
6. Инструменты для анализа:
- Swagger/OpenAPI для реконструкции спецификации
- Selenium для исследования UI
- SQL-запросы для анализа данных
- Мониторинг логов (Kibana, Splunk)
Ключевой результат: создание документации в процессе тестирования и постоянная валидация предположений с командой.