You should grant following project level permissions to testers, beside permissions they already have:
“Create test runs”
“Manage test configurations”
“Manage test environments”
“View test runs”
Also, be sure that in Area security for specific projects, testers do have “Manage test plans” permissions, beside permissions you have already assigned to them. If you want to be sure that testers do not have access to code, you can always set Deny permissions for specific files in project.