Apple's TestFlight service isn't perfect, but it does seem to be slowly getting better with time. Last year, Apple introduced TestFlight Groups, but did not provide much in the way of documentation (i.e. none that I can find).
Just the other day, I was trying to figure out how to actually use the feature and it turns out, it doesn't quite work the way you might expect. Instead of selecting a group of your users and sending specific TestFlight builds to the group, you instead use your groups to simply filter the list of all TestFlight External Testers, but you still select specific users to receive your TestFlight build.
I thought I'd record how to configure things for my own future reference and anyone else out there confused. Here is a brief overview of how to use TestFlight Groups:
1. Assign groups to your TestFlight testers.
a. Go to Users and Roles in iTunes Connect
b. Go to the list of external TestFlight users.
c. Assign groups to your users.
2. Assign users to your build.
a. Go to your app's TestFlight external testing area
b. Click the plus button and select "Add External Testers".
c. A modal will appear with a big table of all your testers. Use the drop-down menu to filter the list of users by group.
d. Use the checkboxes on each row to add users to your build.
3. Send out your Build
a. Select a build to deploy and go through the standard TestFlight beta review process to send it to your list of testers.
How is this useful? Well, it's not as useful as I'd like, but it isn't entirely useless, either. You can only send out one build, just like before, but now you can quickly select a bunch of users from a specific group and send a build out to them. Or, you can select individuals from multiple groups. When you want to send out a subsequent build to a different set of testers, you remove all the external testers from this build and add a new set from a different group or groups.
What I really want is to be able to send out multiple builds simultaneously to different groups. But, alas, that does not seem possible. Still, if you have a lot of TestFlight testers, using Groups can help you organize them and quickly select subsets for build distribution.
Many thanks to Kotaro Fujita for helping me understand this slightly convoluted system the other day on the PhillyCocoa Slack. At least we don't have to deal with UDIDs anymore.