Refinement and Testing