An apparatus for performing a remote test of range of motion of a user operating a user device, the apparatus comprising: a transceiver configured to: transmit a range-of-motion test link to the user device, wherein the range-of-motion test link is configured to, upon selection by the user of the range-of-motion test link at the user device, cause the user device to load a range-of-motion test, and receive real-time and continuous motion data from the user device, wherein the motion data are outputted by a sensor of the user device during the range-of-motion test; a processor configured to: calculate in real-time during the range-of-motion test, based on the motion data, the position of the user device to enable display during the range-of-motion test to a test provider of the performance of the test; and determine, in real time during the range-of-motion test, the quality of the test, wherein determining the quality of the test comprises determining if the test was satisfactory using one or more of: a starting position of the user device; a movement orientation of the user device; and a range of movement of the user device; and a display configured to show in real-time a continuous indication of the performance of the test and quality results of the test. a transceiver configured to: transmit a range-of-motion test link to the user device, wherein the range-of-motion test link is configured to, upon selection by the user of the range-of-motion test link at the user device, cause the user device to load a range-of-motion test, and receive real-time and continuous motion data from the user device, transmit a range-of-motion test link to the user device, wherein the range-of-motion test link is configured to, upon selection by the user of the range-of-motion test link at the user device, cause the user device to load a range-of-motion test, and receive real-time and continuous motion data from the user device, wherein the motion data are outputted by a sensor of the user device during the range-of-motion test; a processor configured to: calculate in real-time during the range-of-motion test, based on the motion data, the position of the user device to enable display during the range-of-motion test to a test provider of the performance of the test; and determine, in real time during the range-of-motion test, the quality of the test, wherein determining the quality of the test comprises determining if the test was satisfactory using one or more of: a starting position of the user device; a movement orientation of the user device; and a range of movement of the user device; and calculate in real-time during the range-of-motion test, based on the motion data, the position of the user device to enable display during the range-of-motion test to a test provider of the performance of the test; and determine, in real time during the range-of-motion test, the quality of the test, wherein determining the quality of the test comprises determining if the test was satisfactory using one or more of: a starting position of the user device; a movement orientation of the user device; and a range of movement of the user device; and a starting position of the user device; a movement orientation of the user device; and a range of movement of the user device; and a display configured to show in real-time a continuous indication of the performance of the test and quality results of the test.