Why can't I select a server against which the speed test is performed?
Selecting a single server is unreliable — in the past the app let you select a server at a particular location against which the speed test was performed. However, I was receiving many reports from users who complained about speeds that were too low or no speed results at all. The problem with testing against a single server is that if it's down, overloaded, or the route to it is congested, the reported speed will be incorrect.
This is why the speed tester was changed so that, instead of testing against a single server, the app now connects to several servers in parallel, and the sum of the individual transfer speeds represents the total speed. The big advantage of this approach is that there's a very low probability that all the servers will be down or congested at the same time and limit the resulting speed. Connecting to several servers also makes it easier to saturate fast Internet connections, so if, for instance, you have a 400Mbps connection and there are 8 testing servers used, each allowing a maximum transfer speed of 100Mbps, the sum should be enough to saturate your bandwidth.
The app tries to use the nearest servers for the test — if you allowed the app to access your location, it uses the location data to find the nearest server. Otherwise, it uses your external IP to find your approximate location (which may not be 100% reliable). In addition, the app also uses some CDNs such as Cloudflare, Amazon CloudFront, etc., which by themselves should find the nearest servers against which the speed test is performed.