Also, you have to consider that these tests are not very accurate all of the time. If you're using speedtest to measure your internet speeds, then you will also have to consider that the server that you're using to test with could be taking a huge hit. I've seen cases where I was getting only 10mbps on a speedtest server, but then changed to another server and was getting my subscribed 30mbps. I would first find out from your ISP what you're paying for. They should be able to provide you both your Download and Upload speeds. If you go to speedtest and you find that you're not getting anywhere near that then you will want to try a different speedtest server (one of the options before and after running a test). If you constantly find yourself not reaching your subscribed maxes then you will need to consider that you could potentially have an issue with your line. SNR (Signal Noise Ratio) can cause poor internet speeds and/or spontaneous intermittent connections. Your ISP may also be cheating you by throttling down your speed or you just have a plain weak signal. Some technologies like DSL will vary based on your geographical location in reference to the DSL provider. Technically you could reach the max speed, but unfortunately you live out in the sticks. Cable providers are more on a shared bandwidth. Even though you're given the allotment of bandwidth speeds, it may vary based on those around you with the same ISP. If you have 100 neighbors all on cable and slamming the servers, you may notice a hit. To give you a standard (very very loose):
Typical DSL -> 1.5mbps to 6mbps
Typical Cable -> 10mbps to 20mbps
Faster Cable -> 20mbps to 50mbps