Pull to refresh
1
Мишин Александр@MishinAlex

User

Send message

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

Reading time6 min
Reach and readers5.2K

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

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

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

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

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

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

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

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

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

Читать далее

Information

Rating
Does not participate
Registered
Activity

Specialization

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