Erros em condições binárias são uma fonte de erros em muitos sistemas de software. Eles acontecem quando os desenvolvedores usam, por exemplo, < or > em vez de <= or >=. Esses erros de limite são difíceis de encontrar e impõem trabalho manual e trabalhoso para desenvolvedores de software. Embora pesquisas anteriores tenham proposto soluções para identificar erros nas condições de contorno, o problema permanece em aberto.

Neste artigo, exploramos a eficácia dos modelos de aprendizagem profunda na aprendizagem e na previsão de erros em condições de contorno. Treinamos diferentes modelos em aproximadamente 1,6 milhões de exemplos com falhas em diferentes condições de contorno.

Alcançamos uma precisão de 85% e um recall de 84% em um conjunto de dados balanceado, mas números mais baixos em um conjunto de dados desequilibrado. Também realizamos testes em 41 bugs de condições de contorno do mundo real encontrados no GitHub, onde o modelo mostra apenas um desempenho modesto. Por fim, testamos o modelo em uma base de código Java em larga escala da Adyen, nosso parceiro industrial. O modelo relatou 36 métodos com bugs, mas nenhum deles foi confirmado pelos desenvolvedores.