Test conditions are derived from specifications including requirements documents, design specifications, and functional specifications. These conditions identify what needs to be tested, serving as the foundation for creating detailed test cases. Test cases are then developed FROM test conditions, making B incorrect, while test data supports test case execution rather than deriving conditions.