Demand-driven structural testing is a new approach that uses dynamic instrumentation guided by program execution to minimize overhead. It inserts and removes test probes only as needed, based on a test plan. This is more efficient than traditional static instrumentation approaches, reducing runtime overhead by 3-4x on average for branch coverage testing of SPECjvm98 benchmarks. The demand-driven approach also uses less memory than static instrumentation due to only instrumenting relevant regions.