The SDET Playbook

← All questions

How do you design an end-to-end test strategy and platform architecture for a photo-sharing application?

Asked Sep 28, 2026Viewed 1 time

1 Answer

Sign in to answer and to vote.

  • 0
    The SDET PlaybookSep 28, 2026

    In a test-strategy design round, start from risks and the system's parts, then place each check at the cheapest level that can catch the problem. A structure that works:

    1. Clarify and list the risks. Ask about scale, platforms (iOS, Android, web) and what hurts most if it breaks. For a photo app, the top risks are usually: uploads that fail or lose photos, broken privacy (a private photo shown to the wrong person), a slow or broken feed, and bad releases to mobile clients you can't roll back quickly.

    2. Map tests to components.

    • Media pipeline: unit and integration tests for format handling (JPEG, PNG, HEIC), EXIF orientation, stripping location metadata, huge and zero-byte files, and resizing into each rendition. Include a corpus of real, awkward sample images.
    • Services and APIs: API tests for upload, follow, like, comment and feed pagination, including authorization checks (user A can't read user B's private post), plus contract tests between the mobile clients and the backend, because old app versions stay installed for months.
    • Feed and ranking: deterministic tests with seeded data, and checks for the edge cases: an empty feed, deleted posts, blocked users.
    • Clients: a small set of end-to-end journeys (sign up, post a photo, see it in a follower's feed) on real devices through a device cloud, with network throttling for slow connections and interrupted uploads.

    3. Non-functional testing. Load test the upload and feed endpoints to your expected peak (k6 or similar), soak test the media pipeline, and run a resilience test where the storage or CDN is slow or unavailable.

    4. Release and production. Staged rollouts behind feature flags, crash-rate and upload-success monitoring with rollback thresholds, and synthetic checks that post and fetch a photo every few minutes.

    Close with trade-offs: what you'd automate first, what stays exploratory (camera and gallery flows, new UI), and how you'd know the strategy is working (escaped defects, crash-free sessions, upload success rate).

    Sources: Fowler, Spotify Engineering, k6 test types, Pact docs