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 allowed to select a server with a particular location against which the speed test was performed. However, I was receiving many reports from users who complained about too low speeds 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 the reason why the implementation of the speed tester was changed so now instead of testing the speed against a single server, the app 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 that the resulting speed will be limited by it. Also connecting to several servers makes it easier to saturate fast Internet connection lines so if for instance you have an 400Mbps connection and there are 8 testing servers used each allowing maximum 100Mbps transfer speed, the sum should be enough 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.