Go-Oracle: Automated Test Oracle for Go Concurrency Bugs
Foivos Tsimpourlas, Chao Peng, Carlos Rosuero, Ping Yang, Ajitha Rajan

TL;DR
Go-Oracle introduces an automated test oracle for Go concurrency bugs by leveraging execution traces and transformer neural networks, significantly aiding developers in accurately classifying test outcomes.
Contribution
This work is the first to address automatic classification of Go program test executions for concurrency bugs using a transformer-based approach.
Findings
High classification accuracy achieved with limited data
Developers prefer Go-Oracle over manual inspection
Effective detection of pass/fail in Go concurrency tests
Abstract
The Go programming language has gained significant traction for developing software, especially in various infrastructure systems. Nonetheless, concurrency bugs have become a prevalent issue within Go, presenting a unique challenge due to the language's dual concurrency mechanisms-communicating sequential processes and shared memory. Detecting concurrency bugs and accurately classifying program executions as pass or fail presents an immense challenge, even for domain experts. We conducted a survey with expert developers at Bytedance that confirmed this challenge. Our work seeks to address the test oracle problem for Go programs, to automatically classify test executions as pass or fail. This problem has not been investigated in the literature for Go programs owing to its distinctive programming model. Our approach involves collecting both passing and failing execution traces from…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Video Analysis and Summarization · Network Packet Processing and Optimization
