Hi Jennah.
For your first question:
If you wanted to get a list of defects "loosely associated" with a given milestone, which means they belong with stories that are associated with that milestone, what you can do is: Use the Custom List app (available in App Catalog) then in the Settings set the object to be 'Defect'. In the Query field add this filter:
(Requirement.Milestones.FormattedID = "<Use The Milestone Formatted ID Here>")
This filter basically says: Get all the defects linked to stories (Requirement object), which are associated with a milestone that has that formatted id.
On your second question:
To find TestCases that are directly associated with milestones AND have no attachments, you can also use the Custom List, set your object type to 'Test Case' and include this query filter:
((Milestones.FormattedID = "<your milestone formatted id here>") and (Attachments.ObjectID = ""))
This basically will get you test cases which directly associated to that milestone and do not have attachments.
I hope this helps. Please let us know.
Thanks,
Sagi