Do you have bugs in your mobile apps?

The CUPLV group has been actively developing bug detection tools for mobile applications, including for Android and iOS.

iOS/MacOS

Devin Coughlin has been creating a tool for proving the absence of certain reflection-related bugs.  We're particularly interested in proving the "responds-to" relationship between objects and selectors, so we're looking for bugs where someone has reflectively called a method that doesn't exist, e.g., with -[NSObject performSelectorOnMainThread:], or calling -setTarget and -setAction: on a control where the target does not actually respond to the action selector. Even a simple typo like forgetting the terminal ":" in a selector name or misspelling the selector would a good example for us to run on. Have you seen these kind of bugs in your code or do you worry that you might have some lurking? (These usually manifest with a runtime exception "unrecognized selector sent to instance…").

Android

Sam Blackshear has been creating memory leak detection tools for Android applications.  We believe we have an effective tool for finding and triaging what are known as Activity leaks in Android: where an application holds on to a pointer to a destroyed Activity.  This bug is rather pernicious because it can easily cause a phone to crash because it runs out of memory quickly. Have you seen these kind of bugs in your code or do you worry that you might have some lurking?

Let us help you!

Code at any development stage is of interest to us.  Ideally, we are looking for reasonably-sized examples, but the projects can be in active development or not.  We are particularly interested in seeing how well our tools handle less mature code.  If you would have any code for iOS/MacOS/Android applications that you would like to share, please contact Evan Chang (evan.chang@colorado.edu), Devin Coughlin (devin.coughlin@colorado.edu), or Sam Blackshear (samuel.blackshear@colorado.edu).  Thanks!


© Ken Anderson 2012