Price: 0
Number of applications: 0
18.12.25 (inclusive)
monetary
MVP
ICT tasks
Media sphere
IT
Mobile app
Let's label the old version as P_old, the new one as P_new. By "scenario" we mean a finite or infinite sequence of events E₁, e₂, ... that arrive at the application (touch, push notifications, network changes, etc.). Formally, this is the input data stream X. The RegDiff(P_old, P_new) algorithm is required, which returns TRUE if X exists such that the observed behavior of P_old(X) and P_new(X) differs by one of the predefined invariants; and FALSE if there are no differences for any X. The task is identical to checking the equivalence of two programs, taking into account their interaction with the environment. The equivalence of general—form programs is an unsolvable problem, which makes it impossible to build a universal RegDiff.
The idea of a "regression oracle", which, according to two versions of the application, is able to strictly answer whether there is at least one problematic scenario, is generally not feasible. Partial solutions can be built.: • model‑based scenario generation (model-based testing); • fuzzing UI‑and events; • property‑based testing of individual modules. But the universal RegDiff with strict guarantees for arbitrary programs and scenarios is another example of a problem that theoretically has no algorithmic solution.
Sergeev I.A.
Purpose and description of task (project)
The customer supports several mobile applications with a common business logic code (Kotlin Multiplatform + Go‑backend). After each release, the QA team spends weeks on regression testing. It was proposed to develop a tool that, according to a pair of versions (old and new), automatically answers the question: "Is there at least one use case (sequence of user actions, background events, network latency, etc.) in which the new version behaves differently from the old one in terms of declared invariants?" Important: the tool must give a **strict** answer (yes/no), without probabilistic assumptions.