Software applications are developed to be executed in a specific environment. This environment includes external/ native libraries to add functionality to the application and drivers to fire the application execution. For testing and verification, the environment of an application is simplified/abstracted using models or stubs. Empty stubs, returning default values, are simple to generate automatically, but they do not perform well when the application expects specific return values. Symbolic execution is used to find input parameters for drivers and return values for library stubs, but it struggles to detect the values of complex objects. In this work-in-progress paper, we explore an approach to generate drivers and stubs based on values collected during runtime instead of using default values. Entry-points and methods that need to be modeled are instrumented to log their parameters and return values. The instrumented applications are then executed using a driver and instrumented libraries. The values collected during runtime are used to generate driver and stub values on-the-y that improve coverage during verification by enabling the execution of code that previously crashed or was missed. We are implementing this approach to improve the environment model of JPF-Android, our model checking and analysis tool for Android applications.
Reference:
Van der Merwe, H., Thachuk, O., Nel, S., Van der merwe, B., and Visser, W. 2015. Environment modeling using runtime values for JPF-Android. ASI SIGSOFT Software Engineering Notes, v.40(6), pp 1-5.
Van der Merwe, H., Thachuk, O., Nel, S., Van der Merwe, B., & Visser, W. (2015). Environment modeling using runtime values for JPF-Android. http://hdl.handle.net/10204/9578
Van der Merwe, H, O Thachuk, S Nel, B Van der Merwe, and W Visser "Environment modeling using runtime values for JPF-Android." (2015) http://hdl.handle.net/10204/9578
Van der Merwe H, Thachuk O, Nel S, Van der Merwe B, Visser W. Environment modeling using runtime values for JPF-Android. 2015; http://hdl.handle.net/10204/9578.
2015: Copyright ACM. Due to copyright restrictions, the attached PDF file only contains the abstract of the full text item. For access to the full text, please contact the publisher.