Test design techniques involve identifying test conditions from a test basis like requirements or code, then specifying test cases with detailed inputs and expected outputs, and finally implementing test procedures or scripts that group related test cases and define the steps to execute them in a logical order according to a test schedule. The level of formality in documentation depends on the context from informal to very formal for safety-critical systems. Test conditions are things that could be tested, while test cases must be very specific with inputs and expected results.