Test analysis involves deriving test information from various sources called the "test basis", which can include system requirements, specifications, code, or user knowledge. From the test basis, test conditions are identified - things that could be tested. Good test conditions cover different inputs, outcomes, data types, and edge cases. Identifying many test conditions upfront allows testers to prioritize the most important ones to develop test cases from. Traceability between tests and their test basis is important for change impact analysis and verifying requirements coverage.