The advent of modern software systems and the rise of system configurability add a new dimension of complexity to the task of ensuring system quality. A single configurable software system encapsulates thousands or millions of unique program configurations or instantiations, and each configuration may behave differently under the same software test sequences acting as a unique program from the tester?s point of view. Testing techniques should not assume configuration heterogeneity, but should instead sample a representative set of program instantiations. This project focuses on the configuration-definition layer (CDL) of software to develop a set of scalable and adaptive configuration-aware testing techniques. It leverages research from combinatorial interaction testing for sampling, and work in satisfiability solving to handle complex dependencies. Specifically, it creates new algorithmic techniques to sample test configurations, creates models for cost-based sampling in time-constrained or risk-based environments, and explores several domain specific customizations. The impact of this work is that it explores a new avenue of research for software testers that focuses on the CDL, while providing theoretical results of interest to a broader community. It includes a tightly woven educational plan that involves both graduate and undergraduate students.