If a development team hands you a software component with vague requirements, how do you construct a comprehensive test plan?