Обновить
1
Мишин Александр@MishinAlex

Пользователь

Отправить сообщение

Как я тестирую крупные системы, которые невозможно протестить на статичных данных

Время на прочтение6 мин
Охват и читатели5.2K

Например, в управлении транспортом статичные данные (например, сет за «типичный вторник») не дают протестировать систему в условиях праздника, крупной аварии, сессии у студентов, скидки 99% на Лабубу в крупном супермаркете и так далее. 

Что мы сделали:

Стали брать реальные данные с прода, которые выбиваются за стандартные представления.

Обезличивать их.

Использовать ML-модель для генерации сценариев, где эти данные увязываются с остальными в системе. Это типа генерации новых данных с усилением трендов и их пересечением.

То есть фактически по модели швейцарского сыра — мы имеем один статичный срез, а затем начинаем ходить в прод и искать новые дырки. Потом соединяем несколько дырок в новом слое и накладываем слои друг на друга, чтобы посмотреть, не будет ли сквозного отверстия. 

Цель — не просто нагрузить систему, а протестировать жизнеспособность архитектуры в похожих на реальные условиях. 

Очень упрощая, наши наборы тестов учатся нестандартным ситуациям с прода и включают их и в тестовые выборки данных, и в юнит-тесты, и такие ситуации не только покрываются как частные случаи, но и включаются в сложные сценарии, где 3 малозначимых отказа могут привести к аварии.  

Я думаю, что это будущее тестирования сложных систем, и мы с командой уже затащили это в автоматический пайплайн. 

Читать далее

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Архитектор программного обеспечения