test cases are prepared depending upon the functional requirement details for object properties, usecases for functionality flow of the system and sometimes ER diagrams or hierarchical diagrams for navigational flow of the application
The base of any test case is the Requirements documents and specification documents. Understanding the Application properly one can write good test cases, which are used to test the application properly.
Test cades prepared by Test lead or senior Test Engineers.the base of test case is use cases only.use cases are prepared by business analyst or Management people by through understanding of the project specifications and requirements.