Test design techniques