Degradation of performance between different release versions of a software is termed as regression. Establishing the specific feature(s) that cause regression requires time-consuming manual work of sifting through numerous code change requests. This disclosure describes techniques to enable testing for regression in a given software version based on dynamic analysis of traces of end-to-end method-level call stacks of the software at runtime. Iterative automated tests can be set up on real devices to mimic critical user journeys to ensure that the regression testing captures the features of interest during runtime tracing of the call stack. Analysis of the granular method-level data can serve to profile every feature in the code and help readily identify the feature(s) causing regression. The described techniques described in this disclosure can be employed for regression testing in a variety of ways, such as feature analysis, daily checking, and release comparison. Implementation of the techniques can avoid or minimize the time-consuming manual work required to identify regression-causing features, and can save substantial time, helping speed up the software development pipeline.

Creative Commons License

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.