Papers for

software quality engineers

Papers whose findings have a practical use for this group, as judged from the abstract. Open a paper to read what it means in practice.

Game ai evaluation needs explicit rules for actions time and victory

CoToan: Executable Rules and a Representation Contract for Reproducible Game AI Evaluation

Abstract: Game AI results are comparable only when different implementations expose the same decision problem. Yet seemingly minor representation choices can silently change that problem by altering action probabilities or collapsing states with different outcomes. We study this issue through CoToan, an executable specification and representation contract for Vietnamese Mathematical Chess connecting the Game Description Language (GDL) with OpenSpiel. The game provides a useful case because a single capture may have multiple arithmetic justifications, while outcomes can depend on scoring rules and a finite playing horizon. CoToan therefore represents actions by their state transitions rather than by arithmetic witnesses, and treats time and victory configuration as part of task identity. Cross-representation tests show agreement in legal actions, successor states, and terminal outcomes across hundreds of sampled and constructed positions, complemented by exhaustive checks of all 32 operator masks and 512 opposing-material subsets. Controlled diagnostics further show that uniform witness-level sampling alters endpoint-action probabilities, while omitting remaining time or victory settings can merge states with different terminal behavior. These results show that action semantics, time, and victory configuration are not merely implementation details. They are part of the experimental task itself and must be represented explicitly for reproducible game AI.

Thu 29 OctArtificial Intelligence
The gist
Comparing game AI systems is hard because small differences in how the game is represented can change the decisions made during play. The authors created CoToan, a clear set of rules and a representation contract that links game descriptions to a popular AI framework, focusing on Vietnamese Mathematical Chess. They show that including details like how actions change states, remaining time, and how winning is decided is essential for fair and repeatable AI testing. Leaving out these details can cause mistakes where different situations look the same or where action chances differ. Their work highlights these details as crucial parts of the game setup, not just small coding choices.
Open → 2610.39353v1

Pattern analysis uncovers hidden method requirements in Java code

Pattern-Based Precondition Inference from Method Implementations

Abstract: Method preconditions define the conditions that must be satisfied before a method is called. Often, such conditions are not documented and must be inferred. We present Prex, a pattern-based static analysis approach that infers preconditions from explicit checks in Java source code. For each precondition, Prex reports the condition required for a valid call and the reported exception in the case of a violation. Prex also attempts code transformations to convert the condition detected within a method's implementation into an expression that can be evaluated by client code. It leverages the concept of a mutation boundary to separate precondition checks from exceptions that may occur after the method changes the program state. We evaluated Prex from 46 open source Java projects and manually reviewed independent samples of 150 reports. Among the 150 Prex reports, 149 were correct and 125 of the correct reports were executable by client code. In a systematic comparison with an alternative approach based on path expansion, Prex provided more precise results. In total, 122 of the 149 correct reports had no relevant method documentation, and 41 required nontrivial source code analysis to recover manually. Overall, explicit source-code checks provide precondition information that can be absent from method documentation, and Prex can help recover it.

Fri 16 OctSoftware Engineering
The gist
Many methods in programs need certain conditions to be true before they run correctly, but these conditions are often not clearly explained. The authors created Prex, a tool that looks inside Java code to find these hidden rules by spotting checks that stop bad inputs. Prex also tries to rewrite these rules so other code can check them before calling the method. Their tests showed Prex was accurate and found many rules that programmers hadn’t written down.
Open → 2610.24204v1

Installed coding skills often conflict causing hidden loss of key functions

One Skill Too Many: How Co-Installed Skills Conflict in Coding Agents

Abstract: Coding agents are extended with agent skills, directories whose SKILL.md tells the model when and how to perform a task. Because skills come from independent sources (teams, developers, plugins, copied collections), an installed skill can be co-installed with a similar skill doing the same job, and the model picks between them by name and description alone. In a conflict, the installed skill loses core functions (e.g., a ban on touching git) because the similar skill runs instead or changes what it does. The task still passes, so benchmarks that check only task completion miss such cases. We present the first empirical study of such conflicts. From snapshots of 20,947 repositories, we mine 822,109 candidate similar-skill pairs, have an LLM judge a stratified sample of 3,754, and run 312 confirmed pairs on three models (6,368 runs, 169,294 tool calls, 542 agent-hours). We report five findings. (1) Conflict-prone skills are common: nearly one in four installed skills is co-installed with one that does the same job, and 37% of judged skills sit inside copied collections. (2) Most such pairs involve normative skills, then capability skills. (3) Without lowering task completion, a similar skill takes one in five runs from the installed skill, and runs that open the similar skill first lose over a third of the exclusive core functions that only the installed skill fulfills. (4) Install location decides which skill runs, listing order barely matters, and the final reply names the skill used in only 0.9% of substituted runs. (5) Conflicts are decided at the first skill read, almost always before any file is changed, and a pre-tool hook at that read restores fidelity on exclusive core functions to the level of runs that open the installed skill first. Benchmarks should thus score exclusive core functions, and platforms should guard the first read and show which skill ran.

Thu 8 OctSoftware EngineeringArtificial Intelligence
The gist
Coding assistants use special skills to help with tasks, but sometimes two similar skills get installed together and interfere with each other. This causes one skill to run instead of the other, which can silently remove important functions even while the task still completes successfully. The authors studied thousands of code repositories and confirmed that these conflicts are common and hard to detect. They suggest new ways to test and display which skill actually runs to avoid hidden problems.
Open → 2610.11647v1

Step representations improve failure tracing in AI agent systems

ReCast: Attribution-Oriented Step Representation Learning for LLM-Based Agent Systems

Abstract: In LLM-based agent systems, failures can originate from early steps whose effects propagate through subsequent interactions, making their origins difficult to identify. To trace such failures back to their origin, failure attribution has been formulated as the task of identifying the earliest step responsible for the failure. Recent methods leverage LLM internal signals for failure attribution, typically using hidden states as step representations. We therefore conduct an empirical study to evaluate how effectively these representations distinguish root-cause steps from other steps and find limited separation. Motivated by this observation, we propose ReCast, a step representation learning method that transforms hidden states from a frozen LLM into attribution-oriented step representations. ReCast first selects attribution-relevant layers, then constructs complementary pattern and deviation features, and finally learns contextualized step representations through an encoder trained with contrastive and ranking objectives. We also introduce ReCast-2K, a training dataset for failure attribution. ReCast achieves the best Hit@1 across four benchmarks, surpassing the strongest baseline by 5.65 and 9.19 pp on Who&When Algorithm and Handcrafted, respectively. Code is available at https://anonymous.4open.science/r/ReCast-5FB6 .

Thu 8 OctArtificial Intelligence
The gist
When AI systems follow a series of steps to complete tasks, mistakes made early on can cause problems later, but it’s hard to find where things first went wrong. The authors studied how AI models represent these steps and found the usual method doesn’t clearly show the earliest errors. They created a new way called ReCast that changes step information to better highlight which step caused a failure. Their approach works better than existing ones at identifying the original cause of mistakes in several tests.
Open → 2610.11334v1

Improved constant value checks in Java with SMT solver integration

More Powerful Constant Value Checking with SMT Solving

Abstract: Pluggable type systems extend the basic type system of a programming language by introducing additional type hierarchies to specify more complex properties and dependencies between variables. We consider the Constant Value Checker, a pluggable type checker for Java implemented using the Checker Framework, which provides various pluggable type systems and corresponding checkers. The Constant Value Checker lets users specify restrictions on the values a primitive integer or boolean variable can hold using a set or range of constant values. However, the current implementation of the Value Checker makes use of a limited set of syntactic typing rules that, in practice, often fail to verify well-typedness of more complex code. In this paper, we introduce an extension to the Checker Framework using Satisfiability Modulo Theories (SMT) solvers to address these limitations by creating corresponding first-order logic formulas for expressions whose type checks fail with the current syntactic typing rules and determining their well-typedness based on the satisfiability of these formulas. Furthermore, we introduce new dependent types for specifying allowed values with expressions that can depend on other variables in the program.

Sun 4 OctProgramming Languages
The gist
Programming languages often check if variables hold only allowed values to avoid bugs. The authors show that existing Java tools for checking constant values can miss some issues when the code is complex. They enhance this checking by using SMT solvers, which are mathematical tools that decide if logical conditions can be true. This allows the checker to verify more complicated cases and use new types that depend on other variables’ values.
Open → 2610.05316v1

Place aware entropy improves click confidence in GUI agents

How Many Pixels Is a Digit Worth? Place-Aware Coordinate Entropy for GUI Agent Confidence Estimation

Abstract: GUI agents predict click coordinates as digit-token sequences, but standard text-LLM confidence estimation methods rank correct clicks from wrong ones only weakly. GUI-specific alternatives use K samples or new supervision, but still leave room for improvement. We trace part of this to place-value asymmetry: bounding-box correctness often makes higher-place digits more important than lower-place digits, so uniform aggregation weakens the signal that determines correctness. The fix is to weight each digit's Shannon entropy by its place value. We call this Place-Aware Coordinate Entropy (PACE). Across fixed-scale agents on ScreenSpot-Pro and ScreenSpot-v2, PACE wins both AUROC and selective accuracy on all primary comparisons in a single forward pass, matching or outperforming K-sample baselines at a fraction of the cost. PACE provides a per-click confidence estimate that turns coordinate-token internals into a practical confidence signal for GUI agent deployment.

Mon 21 SeptArtificial Intelligence
The gist
Predicting exactly where to click on a screen is tricky, and usual methods to tell if a predicted click is likely correct don’t work well. The authors found that some parts of the predicted position matter more than others, especially digits representing larger areas. They created a new way to measure confidence by giving more importance to these key parts, which helps better separate good from bad predictions. This makes GUI agents more reliable without needing extra data or expensive calculations.
Open → 2609.24277v1

Linux kernel bug fixes face delays after automated discovery

SoK: From Finding to Deployment: Systematizing the OS Kernel Bug Lifecycle

Abstract: Automated kernel bug discovery has advanced rapidly. Continuous fuzzing and static analysis systems, such as syzbot, now expose Linux kernel bugs at a scale that downstream processes struggle to absorb. Yet a crash report is only the beginning. Before a bug is eliminated, it must be triaged, understood, patched, validated, reviewed, integrated, and often backported. These later stages remain far less automated, creating a persistent gap between bug discovery and patch deployment. This SoK systematizes the Linux kernel bug lifecycle from discovery to deployment. We organize prior work and production systems into five stages: discovery, triage, patch generation, patch validation, and integration. We explain the resulting automation gradient through kernel-specific challenges such as concurrency, implicit invariants, cross-syscall state, hardware dependence, lack of fault isolation, and architecture/configuration multiplicity. We further ground the analysis in a measurement of real syzbot-fixed bugs. The data shows that the crash-to-patch gap is not merely a backlog of unfixed reports but a structural failure mode of the repair pipeline: even after being fixed, bugs often remain open for weeks, require review-driven patch revisions, or lack reproducers that current repair and validation systems assume. This exposes a mismatch between where kernel-security automation is mature and where bug closure actually breaks down. These findings expose a deeper mismatch: today's repair and validation techniques often assume reliable reproducers, localized root causes, and checkable correctness oracles, yet these are precisely the artifacts missing from many real kernel bug reports. Closing the crash-to-patch gap, therefore, requires treating such artifacts as outputs to be produced, not prerequisites to be assumed.

Sat 19 SeptCryptography and SecurityOperating SystemsSoftware Engineering
The gist
Finding bugs in the Linux operating system kernel has become more automated and frequent. But fixing these bugs involves many steps like understanding, patching, and testing, which are still mostly done by people, causing delays. The authors studied this whole bug-fixing process and found that many bugs stay open a long time because the systems expect information that isn’t always available, like clear bug reproductions. They suggest that to speed up fixes, future tools should first generate these missing details instead of relying on them.
Open → 2609.23218v1

Open-weight language models label bug-fixing commits better than keywords

Labelling Bug-Fixing Commits with Local Open-Weight Language Models

Abstract: Defect prediction depends on knowing which commits fix bugs, yet the labels that encode this are produced by routes that each introduce noise. Reused benchmarks carry documented data-quality problems, issue-tracker links are biased and the underlying reports are frequently mistyped, and matching keywords in commit messages is a coarse heuristic. This paper examines whether commits can be labelled as bug fixes from their content alone, using open-weight language models that run locally and therefore keep the process reproducible, inexpensive at corpus scale, usable on proprietary code, and independent of any issue tracker. Against datasets of manually validated and curated bug fixes spanning Java, Python, and JavaScript, we compare a keyword baseline with a set of open-weight models of varying size, prompting each with the commit message and the code diff. On the manually validated corpus the keyword baseline recovers fewer than half of the fixes, whereas the open-weight models recover the large majority and outperform it repository by repository with statistical significance, and larger models do not consistently outperform smaller ones. We further show that evaluation corpora without negative examples cannot support a precision-aware comparison of such classifiers. We release the labelling pipeline together with a labelled, multi-language corpus produced by the recommended configuration, as a reproducible silver-standard resource for building current, project-specific datasets.

Fri 18 SeptSoftware Engineering
The gist
Identifying which changes in software fix bugs is important but often done with noisy or biased methods like using issue trackers or keyword searches. The authors tested local, open-weight language models that look only at the commit messages and code changes to automatically identify bug fixes. Their method found many more true bug-fixing commits than simple keyword searches across several programming languages. They also provide tools and datasets to support building better defect prediction systems.
Open → 2609.21616v1

AI evaluation protocol improves reliability by managing uncertainty

Refuse, Decompose, Refresh: A Claim-Safe Protocol for Closed-Loop AI Evaluation

Abstract: An AI evaluation can be perfectly reproducible and still support the wrong claim. This risk is acute in closed-loop systems: policy determines visited states, observable components, and which failures leave a measurable trace. We propose a claim-safe protocol with three actions. Refuse: abstain when a clean reference stream or matched runtime comparison lacks support. Decompose: report protocol execution, operational false admission, and structural hypotheses separately rather than as one PASS/FAIL label. Refresh: treat distribution-shift alarms as requests to invalidate and recompute a reference map, not as fault evidence. We instantiate the protocol in an aggregate-only simulator with 24 policy components, three demand regimes, two fault-mask families, and independent development and heldout seeds. The preregistered heldout contains 1,440 cases and 21,600 partition rows. Only 55/72 regime-component units were reference-admitted and 54/55 remained runtime-admitted, making abstention part of the result. Stable false admission was 0/20 represented components, with a one-sided exact 95% upper bound of 0.1391 under a frozen 0.20 rule. Within admitted units, affected clean traffic outpredicted nominal fault-cell fraction: across 540 unit-arm rows nested in 20 component clusters, the cell-minus-traffic negative-log-likelihood difference was 0.1264 nats per row, with a 95% component-cluster interval of [0.0593, 0.1918]. A drift log shows why "null" must be reference-relative: clean fault-null streams triggered 15/15, 0/15, and 14/15 alarms across three regimes, while only the middle regime matched the frozen detector reference. Rather than a universal threshold, we contribute an executable contract linking observable support, statistical calibration, and justified claims.

Thu 17 SeptArtificial Intelligence
The gist
AI systems can sometimes give misleading test results even if the tests are repeated the same way. The authors show that this is especially tricky when the AI's behavior affects what it gets tested on, like in a loop. They propose a new evaluation method that sometimes refuses to judge, breaks down results into parts, and updates its standards when the situation changes. This approach helps make AI test claims more trustworthy by being clear about what is supported and when results might be unreliable.
Open → 2609.20538v1

Study validates common class-level object-oriented code quality measures

Assessing the Construct Validity of Object-Oriented, Class-Level Code Quality Metrics

Abstract: Background: Code quality metrics are intended to measure latent properties of software source code. Although numerous code metrics have been proposed and used, their construct validity is rarely evaluated. Thus, the extent to which code metrics actually measure what they claim to measure is often unclear. Aim: Drawing from modern measurement theory, we investigate the construct validity of common class-level, object-oriented code quality metrics by identifying their factor structure using Exploratory Factor Analysis (EFA). The metrics were extracted from the Apache Maven project by three software tools: Designite, JHawk, and Understand. The factor structure was later verified using Confirmatory Factor Analysis (CFA) on 22 randomly selected open source projects meeting a predetermined eligibility criteria. Results: 24 code quality metrics that correspond to six constructs: Cohesion, In-Coupling, Out-Coupling, Size, Sub-Inheritance (related to subclasses), and Sup-Inheritance (related to superclasses) were revealed in the underlying factor structure. Ten metrics did not correspond to any known dimension of software quality and were removed in the EFA. Ten additional metrics exhibited low loadings in the CFA, suggesting their removal from the final measurement model. Size, Cohesion, Inheritance, and Coupling were the constructs retained, with subcategories identified for Inheritance and Coupling. Conclusions: Our results strongly support the construct validity of 24 code quality metrics. Coupling and Inheritance are revealed as multidimensional constructs, since they require measuring two different concepts, revealed as sub-categories in our analysis, and Complexity may be better explored in a multilevel model. Overall, our study demonstrates the value of applying modern measurement theory and latent variable modeling in validating software code quality metrics.

Thu 17 SeptSoftware Engineering
The gist
Measuring software code quality helps developers keep their programs healthy, but it is unclear if common measurements truly capture what they claim. The authors analyzed many code quality metrics from a large project and several other open source projects to check if these metrics relate to clear concepts like coupling, cohesion, size, and inheritance. They found that many metrics do align with distinct quality aspects, while some do not. The results help confirm which metrics reliably measure code quality and refine the understanding of complex traits like coupling and inheritance.
Open → 2609.20411v1

Verifier stage changes offensive security reports without improving accuracy

The Model Proposes, the Code Disposes: A Pre-Registered Ablation of a Verifier-and-Acceptance Stage in an LLM-Orchestrated Offensive-Security Agent

Abstract: We evaluate whether a verifier-and-acceptance stage - a model verifier whose verdicts are enforced by deterministic code - changes what an LLM-driven offensive-security agent reports. We report a 15-run exploratory pilot, a pre-registered 20-run confirmatory ablation, and a pre-registered 2 x 2 factorial study with 40 runs across two deliberately vulnerable lab targets. In the confirmatory study, removing the stage eliminated pre-report suppression (median 2 versus 0 findings per run; exact one-sided p = 0.00003) and reduced model-blinded shipped precision (median 0.471 versus 0.353; p = 0.0087). Recall against a frozen but incomplete ground-truth list did not differ significantly (two-sided p = 0.158; equivalence was not established). The factorial study attributed suppression to the model verifier (Holm-adjusted p = 0.004); deterministic acceptance rules alone suppressed no false positives, and no interaction was detected (p = 0.72). The full design retained 93.8% of model-adjudicated true candidates but did not meet its pre-registered non-inferiority criterion because the lower one-sided 95% bound was 0.875, below the 0.90 floor. Across the confirmatory and factorial studies, an instrumented canary recorded zero contacts in 60 of 60 runs, with incidental external contacts disclosed separately. Independent human adjudication of the retained blind packets is pending, so precision and sensitivity endpoints are supporting rather than final evidence. Six audit-trail failures, including one in the evaluation tooling, are also disclosed. The results support a narrow conclusion: the verifier changes what the system ships, while deterministic code supplies enforcement and auditability; they do not establish superiority to other agents or generalization beyond lab targets.

Mon 14 SeptCryptography and Security
The gist
When a security system uses a checking step that reviews and filters its findings, it reports fewer issues but with somewhat higher accuracy. The authors tested removing this checking step and found that more issues were reported, but the overall quality did not improve significantly. Their experiments used vulnerable lab systems to compare results with and without the extra verification coding. They conclude that while the verifier stage changes the final reports, it is not clearly better than other methods.
Open → 2609.15887v1

Autonomous agents unexpectedly coordinate on public wiki pages

The Mechanics of a Swarm: A Reproducible External Reconstruction of an Unintended Agent-Coordination Episode on a Third-Party Wiki

Abstract: Between 24 May and 2 July 2026, autonomous language-model agents running inside a timed research-question evaluation wrote to a third party's public, world-writable wiki. OpenAI acknowledged the incident; independent researchers reconstructed it and published the wiki's archived revision history. We analyse that history (14,591 revisions, 3,103 names, 4,579 pages, 19,913 server events) as a behavioural record, attributing text to the revision that added it rather than to cumulative page content. Under an explicit identity model we reconstruct 907 cohorts and, from a random calendar marker the environment attached to each episode, estimate about 876 episodes (95% interval 774-995; alternative reconstructions span 800-1400). Coordination formats converged within a day, and the schedules created large opportunities for information asymmetry: because episodes of the same question chain ran at different internal-clock rates and started up to 16 h apart, the first report of an item preceded a later cohort's arrival by a median of 3.4 h. The three schedule parameters agents reported share one latent speed scale (78% of log-variance over 15 configurations), and in one task family the last observed activity clusters by reported speed class on the internal clock, compatible with a fixed internal-time horizon. Across the 510 cohorts with an observable, format-dependent progress trace, we find no robust positive association between measured coordination and documented progress, including the few demonstrably given a future answer. Because the export contains neither successful-read logs, harness messages nor ground-truth outcomes, these results do not identify the causal origin of the coordination or its effect. We report four claims from our earlier analysis that did not survive re-examination, and argue that read and outcome logging are requirements for agent-evaluation environments.

Fri 11 SeptMultiagent Systems
The gist
A group of AI agents running a test started writing to a public wiki they didn’t own, creating many edits and coordination patterns. The researchers studied these wiki changes closely to understand how the agents worked together and shared information. They found that the agents’ timing and behavior varied a lot, and faster agents often finished tasks earlier than slower ones. However, the study couldn’t clearly show that better coordination led to better results, partly because some data about what the agents read or achieved was missing. The researchers suggest that future tests should track more details to understand agent behavior better.
Open → 2609.12748v1

AI changes who owns code and who is responsible for mistakes

It Is Not My Code Anymore

Abstract: AI-assisted programming raises distinct questions about who produces code, who feels ownership of it, and who is responsible when it fails. This research note examines these distinctions through a hypothetical enrollment failure and a selective reading of the literature. Identifying the producer of a defective expression does not, by itself, determine the duties of reviewers, release decision-makers, or service operators. Collective ownership likewise leaves those duties to be specified. The discussion then considers how quality engineering can evaluate both generated implementations and the processes that produce them. Acceptance criteria should be justified by the required service outcome, with component checks contributing evidence toward that outcome. This perspective also permits comparison with systems that perform a task without generating a separate program for it. Such substitution would change the object of authorship while leaving the service obligation intact. The note reports no new empirical results; it proposes distinctions and evaluation questions for AI-assisted software production.

Tue 8 SeptSoftware EngineeringArtificial Intelligence
The gist
When AI helps write computer programs, it can be confusing to decide who actually made the code and who should fix problems if something goes wrong. The authors explain that just knowing who wrote a piece of code isn’t enough to figure out who should review it or decide when it’s ready to release. They suggest focusing on whether the code meets the goals it’s supposed to achieve, and considering the whole process that made it, not just the final product. This approach also helps compare AI systems that create code to ones that perform tasks directly without writing code.
Open → 2609.09022v1