Ayudante: Identifying Undesired Variable Interactions

Irfan Ul Haq, Juan Caballero, and Michael D. Ernst
WODA 2015 13th International Workshop on Dynamic Analysis (WODA)
October 26, 2015, Pittsburgh, PA, USA.

Abstract: A common programming mistake is for incompatible variables to interact, e.g., storing euros in a variable that should hold dollars. This paper proposes a novel approach for identifying undesired interactions between program variables. Our approach uses two different mechanisms to identify related variables. Natural language processing (NLP) identifies variables with related names that may have related semantics. Abstract type inference (ATI) identifies variables that interact with each other. Any discrepancies between these two mechanisms may indicate a programming error.

We have implemented our approach in a tool called Ayudante. We evaluated Ayudante using two open source programs: the Exim mail server and grep. Although these programs have been extensively tested and in deployment for years, Ayudante’s first report for grep revealed a programming mistake.


  author = {Irfan Ul Haq, Juan Caballero, and Michael D. Ernst},
  title = {Ayudante: Identifying undesired variable interactions},
  booktitle = {13th International Workshop on Dynamic Analysis},
  address = {Pittsburgh, PA, USA},
  month = {October~26},
  year = {2015}
This entry was posted in Debugging, Software Engineering, Testing and tagged , , , , , , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s