A key trait of modern cyber-physical systems (CPS) is complexity due to the number of components and layers in these systems. Unlike in traditional software development, where the device layer is essentially completely abstracted away by an operating system, CPS components include low-power edge nodes, gateways, and servers that together provide sensing, actuation, communication, model and state inference, and autonomous or user-driven control. Moreover, the CPS design process involves implementation of these functions at different levels of abstraction, from high-level computational models to bare-mental implementations. Unfortunately, even when advanced testing or verification methods are applied only to low level system aspects, those efforts are separated from high-level tests of a CPS, which are often produced by a different team, and do not stress the low-level system. Effective automated test composition would make it possible to automatically produce integration/system tests for CPS, even with extremely heterogeneous aspects, where individual elements have effective tests but the interactions between the sub-systems are untested. Because of the size of the search space involved and the complexity of modeling and designing CPS, we also propose in the long term a move towards system architectures to support testing across both system layers and levels of abstraction.