Тапсырыс беруші
... дейн шешім қабылдау

18.12.25

Марапаттау нысаны

денежная

Өнім күйі

MVP

Тапсырма түрі

Задачи ИКТ

Сфера применения

Медиасфера

Область задачи

IT

Tech-тапсырма
Өнім түрі

Мобильді қосымша

Мәселенің сипаттамасы

Обозначим старую версию как P_old, новую как P_new. Под «сценарием» понимаем конечную или бесконечную последовательность событий e₁, e₂, …, которые поступают в приложение (тачи, push‑уведомления, изменения сети и т. д.). Формально это поток входных данных X. Требуется алгоритм RegDiff(P_old, P_new), который возвращает TRUE, если существует X, такой что наблюдаемое поведение P_old(X) и P_new(X) различается по какому‑то из заранее заданных инвариантов; и FALSE, если различий нет ни для одного X. Задача тождественна проверке эквивалентности двух программ с учётом их взаимодействия с окружением. Эквивалентность программ общего вида — неразрешимая задача, что делает невозможным построение универсального RegDiff

Күтілетін әсер

Идея «оракула регрессий», который по двум версиям приложения способен строго ответить, есть ли хоть один проблемный сценарий, в общем случае не реализуема. Можно строить частичные решения: • генерацию сценариев на основе моделей (model‑based testing); • fuzzing UI‑и событий; • property‑based тестирование отдельных модулей. Но универсальный RegDiff с жёсткими гарантиями для произвольных программ и сценариев — ещё один пример задачи, теоретически не имеющей алгоритмического решения.

Жауапты тұлғаның ТАӘ

Сергеев И.А.

Тапсырманың (жобаның) мақсаты мен сипаттамасы

Заказчик поддерживает несколько мобильных приложений с общим кодом бизнес‑логики (Kotlin Multiplatform + Go‑бэкенд). После каждого релиза QA‑команда тратит недели на регрессионное тестирование. Было предложено разработать инструмент, который по паре версий (старой и новой) автоматически отвечает на вопрос: «Существует ли хоть один сценарий использования (последовательность действий пользователя, фоновые события, сетевая задержка и т. п.), при котором новая версия ведёт себя иначе, чем старая, в части задекларированных инвариантов?» Важно: инструмент должен давать **строгий** ответ (да/нет), без вероятностных допущений.