In ALM the requirement type is what dictates what fields are seen per type, along with if required or not. With other ALM modules, the entities have that check box as you are aware. And workflow can be used to set visibility and other aspects, even setting required for a condition.
Requirements though use in Project Customization the Requirement Types configuration. In Customization, in the left hand side list, is Requirements Type.
This will show you each of the Requirement Types (match your drop down for Type field when you open a requirement on the top right in the details window). If you say wish to add a UDF field and make it required for the ''Testing'' type, you go to Requirements Types and pick Testing from the list of types. You will see the on the right some menu tabs. Details, System Fields, User Defined Fields, and Rich Text Template. Select the User Defined Fields tab. Here you will see your list of created UDFs. Next to the names are 2 columns, In Type and Required. Put a check in the box for In Type and the UDF will appear on the details page for the Testing type (as that is what we selected). Put a check in the Required box and the field will show in red and be required for the requirement details page.
Save your changes and do minor change. Open a new requirement and pick Testing as the type and you will see your added field and it will be in red.