🤖 AI Summary
Traditional testing approaches rely on command-line interfaces, operate at coarse granularity, and lack runtime context—causing isolation from highly interactive development environments (HIDEs) and introducing disruptive context switches that exceed developers’ attention thresholds. This paper proposes a runtime-aware testing library that deeply integrates unit testing into HIDEs via three core mechanisms: (1) runtime code instrumentation, (2) dynamic test registration, and (3) a context-aware execution engine. These enable immediate invocation of interactive debugging capabilities—including value inspection and stack trace visualization—upon test failure. The approach achieves sub-second test re-execution with end-to-end response times under the critical 2-second threshold, substantially reducing context-switching overhead and enhancing development continuity and debugging efficiency. Its principal contribution is the first semantic-level coordination mechanism between testing infrastructure and the HIDE toolchain, enabling bidirectional, context-rich interaction between tests and the live development environment.
📝 Abstract
Highly interactive development environments (HIDEs) enable uninterrupted development flow through continuous program evolution and rapid hypothesis checking. However, traditional testing approaches -- typically executed separately via CLI -- isolate tests from HIDE tooling (interactive debuggers, value and stack inspectors, etc.) and introduce disruptive delays due to coarse execution granularity and lack of runtime context. This disconnect breaks development flow by exceeding critical attention thresholds. In this paper we present a library that provides runtime representation for tests, allowing tight integration with HIDEs, and enabling immediate access to HIDE tooling in the context of test failure. We then describe development workflows enhanced with testing and demonstrate how they achieve subsecond test reexecution times crucial for maintaining developer focus.