•

Drizz raises $2.7M in seed funding •

•

Featured on Forbes

•

Drizz raises $2.7M in seed funding •

•

Featured on Forbes

Logo

Schedule a demo

Blog
>
How to Test Prescription Uploads, Lab Reports, and Sensitive Documents in Mobile Apps

How to Test Prescription Uploads, Lab Reports, and Sensitive Documents in Mobile Apps

A practical guide to testing file uploads, privacy, security, edge cases, and real-world document workflows in healthcare mobile apps.
Author:
Asad Abrar
Posted on:
October 6, 2026
Read time:
8 minutes

An upload test passes. The patient still receives the wrong information. 

A patient uploads a prescription, opens the file, and sees no error. The automated test passes because the upload completed successfully. 

On the screen, though, the dosage is cut off. The same risk appears in other document workflows. A lab report renders without its reference range. OCR changes “180 mg/dL” to “100 mg/dL.” 

A notification exposes medical information on the lock screen. An unauthorized user downloads a document through a copied link. These failures do not always stop the workflow.

They change the information a patient or clinician receives. Testing prescriptions, lab reports, insurance documents, and referral letters requires more than checking whether a file is uploaded. Your tests must verify document accuracy, readability, accessibility, privacy, authorization, and recovery behavior. 

This guide explains how to build a reliable test strategy for sensitive documents in mobile healthcare apps.

Start With Safe, Controlled Test Data 

Use synthetic prescriptions, lab reports, insurance records, and referral letters. Do not use real patient information in test files, screenshots, videos, logs, or analytics events. Create test files with fictional patient details and controlled values. Use various file types, such as:

  • PDFs
  • JPGs
  • TIFFs
  • Office docs
  • Zip files
  • Encrypted files

Use files of various sizes (big and small). Use files containing:

  • Text
  • Charts
  • Diagrams
  • Decimal values
  • Tables (spanned/unspanned)
  • Columns
  • Symbols

Use files that represent the expected behaviors of the application. Anticipated values can vary within a file. For example, within a source document, a value of “0.5 mg” can be anticipated. Expected application behavior can vary based on the value, the unit associated with the value, and the role(s) within the application that is/are permitted to view the value.

Define the Required Fields 

Be cognizant of variation within documents of the same type. 

For prescription documents, the variation can include the name of the medicine, the strength, the dose, the route of administration, the frequency, and instructions. 

For laboratory documents, variation can include the name of the test, the value, the unit, the reference range, the collection date, and a flag. 

For insurance documents, variation can include the name of the insurance company, the ID of the policy, the date the coverage begins and ends, and the status of the coverage. 

For referral documents, variation can include the name of the person to whom the document is referenced, the person who signed the document, and the date the document was signed. 

Explicitly state the fields that are required. Do not create field requirements that do not exist.

Verify the Rendered Document Against the Source 

Just because a document uploads successfully, does not mean that the document can be used to complete a task. Ensure that the application correctly interprets and renders documents. Check each page and element of a document, including text, images, symbols, and tables. Test the application’s ability to render documents of varying sizes and in different orientations. Test the application’s ability to render different fonts at various sizes. Check for:

  • Instructions that are too short
  • Missing pages
  • Names that are cut off
  • Hidden measurements
  • Incorrect breaks cause lines to wrap to the next line
  • Text that overlaps with other text
  • Low contrast (text and background are same color or very similar)
  • Broken (incomplete) symbols
  • Empty (or partially filled in) forms
  • Text upside-down (in the wrong orientation)
  • Text that is covered up by other text entry fields

Raise the font size to the largest available size. See if any important information, like the date, time, dose, instruction or warning, is hidden behind the smaller font size. In general, a screen should fail the test if the user is left with many questions and is left to make inferences about the missing information.

Validate OCR With a Reviewed Source 

Compare OCR output to the Source Document and ensure:

  • Numeric values are correct (includes decimal places and unit of measure)
  • Symbols are correct
  • Dates are correct
  • Strength of the Medicine (e.g. dosage) is correct
  • Frequency of dose is correct
  • ID of the patient (or other identifier) is correct

The same compared values on a screen may represent different values in reality (could be a range). If the app says a value is unreadable, trigger a manual review by a clinician, require explicit re-entry with safeguards, or reject the document. Do not let the user guess the value. Verify that the safely corrected values are kept for subsequent reviews.

Check Laboratory Results and Reference Ranges 

Review alignment of results, units, and reference ranges. If a result is incorrect or out of range, a value in a different range may be shown. For example, a value that should be displayed in milligrams (mg) may be shown in micrograms (mcg). 

Use the proper range for the report and patient. Do not use the same range for all lab tests. Do not interpret a missing range as a normal value. For each boundary, use a value that is below, at or above, and test for expected flags. 

Check the explanation and next step for flags that indicate the value is too high (or low). The test in no way substitutes its judgment for a physician’s judgment. Trending of lab test data requires three or more test dates. 

Lab test data should be tested for missing test values and changes in unit of measure prior to performing a trend analysis. Lab test data should be plotted in the order in which it was obtained. A line on a trend chart should be plotted accurately against established reference ranges. 

Do not label data trajectories as clinical improvements unless the application is strictly regulated and cleared as Software as a Medical Device (SaMD) operating on approved clinical guidelines.

Test Offline, Timeout, and Recovery States 

Mobile document workflows often fail. Turn off Wi-Fi to prevent an upload. Background the application and wait for the application to time out and reconnect. Repeat the workflow. Perform a forced application reset. The test should verify:

  • The availability of the document to be uploaded
  • The app does not create more than one copy of the same document
  • The document upload status is accurate
  • The app does not modify the original document

Both the app and the server have the most up-to-date, pertinent information to the case and a clear next step. An unsupported or unreadable document should be rejected and a next step should be provided. An oversized image should be automatically resized and provide the next step. 

The app should display a processing state if there are still extracts being processed by OCR. Empty fields should not be displayed, as that would imply that extraction has been completed. Empty fields should be identified and displayed accordingly by the app.

Test Accessibility and Mobile Layout 

Supported mobile devices with operating systems across all versions should be tested. Additionally, both Android and iOS devices should be tested. The app should be tested while zoomed and in both light and dark modes. 

The app should be tested to determine if content is understood while the screen is rotated to other orientations. There should be sufficient color contrast between the background and text of status indicators. Urgent and important information should be contained in the text and not solely dependent upon graphic representations. Text should be displayed in a logical order and in a format understood by a screen reader. 

If keyboard accessibility is supported, it should be determined if focus is moved to hidden or unavailable content. It should also be determined if focus is lost after an invalid input. It should also be verified that all actions are supported by the keyboard.

Verify Exported Documents 

If the app supports downloads or exports, verify every exported field against the source and the on-screen version. Check patient identifiers, dates, values, units, ranges, instructions, page count, diagrams, charts, and guidance. Open the downloaded file in a separate viewer and check for:

  • Clipped columns
  • Blank pages
  • Missing symbols
  • Incorrect page order
  • Missing images
  • Unreadable text
  • Incorrect file names
  • Unexpected metadata

The exported document should follow the same access rules as the document inside the app.

Test Authorization and Privacy 

Verify that the uploaded document is pertinent to the correct patient. When a document is uploaded using account A, the document should be inaccessible to account B even if account B uses a copied download link or the server’s direct download link. Test the document’s authorization at the server and the user interface (UI). 

Test caregiver permissions and access revocation if the product supports these features. Check cached documents and other areas of the product that temporarily store or allow access to product documents. 

Test the lock screen, app switcher and other areas that allow access to protected health information. Consult the OWASP Mobile Application Security Verification Standard for other types of tests. Remove protected health information from testing artifacts.

Separate API and UI Responsibilities 

Test the completed document’s existence on the server and other stored attributes using the API.

Test rendering of data and other aspects of the UI. A perfectly rendered UI might mask underlying data corruption or missing server-side validation, allowing an invalid value to still be set by the server.

Using Drizz for Visual Mobile Checks

Drizz allows product teams to write test cases in English and test mobile applications on real devices. Further, tests can be run on simulators and real devices. 

Drizz shows the automation flow in several steps. First, the flow is simulated on a device. Finally, Drizz captures video of the flow being simulated. Automation flow videos, step-level screens and videos, and other pertinent artifacts are posted on the product web page and are run evidence. 

One type of test is to describe a flow to the test team like the following: “On the synthetic lab report, locate the result for glucose. Ensure that the value, unit, and range, as well as the flag and editing guidance, are displayed.” 

Use this type of test to validate user flows and visible elements of the application. Keep validation of editable and non-editable fields in the application and interaction with the server to authorize/validate changes in the stored data in the API/back end of the application. 

It is outside the scope of this type of test to prove the correctness or accuracy of the measured lab data. The test only validates if the application displays the value in question along with the related information, if any, in the correct format.

Build Release-Blocking Rules 

Intentionally add controlled failures to the test environment:

  • A lab test with an out of range value
  • A lab test with an OCR value that does not match the text
  • A chart that is upside down
  • A dose that is clipped
  • A request for a document that was not authorized
  • A document upload that failed
  • A time-stamped alert that is hidden by an interruption

If the above are found in the test environment, the test must be stopped. Block all tests if an unauthorized document is requested, an urgent action is missing, or medical information is exposed. Save all evidence of a test failure.

Conclusion 

Testing of the application should determine if the application is securing and preventing unauthorized access to restricted data and if the application is protecting the privacy of the patient. 

The testing should determine if the application is enforcing range restrictions. Drizz provides the capability to perform test authoring in English. Tests can be executed on a physical device or emulator. Tests can capture evidence of mobile application interactions, including video of the mobile application. 

The combined capabilities of Drizz and other tools enable testing of mobile application interactions with protected health information and testing of integrity, accuracy, and authorization of data.

‍

About the Author:

Asad Abrar
LinkedIn logo white letters in a blue rounded square background.
Co-founder & CEO, Drizz
Ex-Coinbase PM and IIT Kharagpur grad killing flaky mobile tests by day, and obsessing over F1 lap timings by night.