  Dealing with the evolution of operating systems is challenging for developers
of mobile apps, who have to deal with frequent upgrades that often include
backward incompatible changes of the underlying API framework. As a consequence
of framework upgrades, apps may show misbehaviours and unexpected crashes once
executed within an evolved environment. Identifying the portion of the app that
must be modified to correctly execute on a newly released operating system can
be challenging. Although incompatibilities are visibile at the level of the
interactions between the app and its execution environment, the actual methods
to be changed are often located in classes that do not directly interact with
any external element. To facilitate debugging activities for problems
introduced by backward incompatible upgrades of the operating system, this
paper presents FILO, a technique that can recommend the method that must be
changed to implement the fix from the analysis of a single failing execution.
FILO can also select key symptomatic anomalous events that can help the
developer understanding the reason of the failure and facilitate the
implementation of the fix. Our evaluation with multiple known compatibility
problems introduced by Android upgrades shows that FILO can effectively and
efficiently identify the faulty methods in the apps.
