RESEARCH
Research
Our research spans AI for software engineering, program comprehension and testing, and programming education. We combine program analysis, data analysis, AI, and tool development to support people who develop and learn software.
We also explore questions across these areas and develop new research themes. The following projects illustrate our work.
AI × Software Engineering
We explore how AI can support software development, from understanding and generating code to testing, debugging, and maintenance. We investigate what information AI needs, how its outputs can be evaluated, and how developers can use them.
Examples of past research
Giving generative AI runtime evidenceChatGPT × Execution Traces / 2023
- Question
- How does providing execution information change AI-generated explanations of failures?
- Approach
- We constructed prompts combining a program and its execution trace and examined ChatGPT’s explanations of possible fault causes.
- Contribution
- A case study of real bugs identified cases where execution traces made explanations of fault causes more concrete.
ICSME 2023, pp.397–402 · Paper / project ↗
Finding overlooked bugs with AI-generated testsLLM-generated Testing / 2025
- Question
- How can tests uncover failures at boundary values and unusual inputs in AI-generated code?
- Approach
- We compared LLM-generated example-based tests with property-based tests, which check expected properties over a range of generated inputs.
- Contribution
- Evaluation on a code-generation benchmark showed complementary strengths: combining the two approaches detected bugs missed by either approach alone.
AIware 2025, pp.11–18 · Paper / project ↗
Understanding collaboration between AI agents and developersAI Coding Agent Analysis / 2026
- Question
- How do AI agents explain proposed changes, and how do people review them?
- Approach
- We analyzed pull requests from five AI coding agents, examining description styles alongside human review activity, response times, and merge outcomes.
- Contribution
- The study identified differences between agents in communication styles and reviewer interaction, informing human–AI collaboration in software development.
MSR 2026, pp.878–882 · Paper / project ↗
Program Comprehension & Testing
We study methods for understanding program behavior and evaluating the effects of changes. Topics include source-code and execution analysis, visualization, testing, debugging, and code review.
Examples of past research
Tracing failures through execution historyNOD4J / 2021
- Question
- How can we inspect variable values after a program has finished running?
- Approach
- We developed a tool that records Java execution information within bounded storage and displays it alongside source code.
- Contribution
- The tool combines recording, processing, and visualization to help developers inspect runtime values.
Science of Computer Programming, 206, 102630 (2021) · Paper / project ↗
Reviewing changes through execution pathsJCompaths / 2025
- Question
- How does a code change affect the paths taken during execution?
- Approach
- We studied JCompaths, a code review tool for comparing and visualizing execution paths.
- Contribution
- The tool supports examining the relationship between source-code changes and program behavior.
コンピュータソフトウェア / Computer Software, 42(3), pp.23–39 (2025) · Paper / project ↗
Programming Education
We investigate how people learn to program and how tools can support that process. Topics include learning and editing activities, error correction, exercises, and feedback for learners and instructors.
Examples of past research
Helping novices find their next correctionProbabilistic Syntax-Error Support / 2025
- Question
- Compiler messages can leave beginners unsure where and how to fix their code.
- Approach
- We proposed using an N-gram model of token sequences to locate unusual code fragments and suggest corrections.
- Contribution
- The method was evaluated on data from introductory programming exercises for fault localization and correction suggestions.
情報処理学会論文誌 / IPSJ Journal, 66(11), pp.1486–1496 (2025) · Paper / project ↗