Yevgeniy Storozhenko
Front-End Developer & QA Engineer
QA Portfolio

Diya — Ukrainian Government Digital Services Portal & Mobile App

Manual QA testing of a government-grade digital services platform serving millions of Ukrainian citizens.

Period: Dec 2022 – Jan 2023 Role: QA Engineer Platform: Web + iOS + Android Tools: Jira, TestRail, DevTools, Charles Proxy

Testing Scope

🔐

Functional Testing

Login, registration, document viewing, service requests, form validation, OTP flows

🎨

UI/UX Testing

Design spec compliance, dark mode, accessibility, font scaling, tap targets

🛡️

Security Testing

Session timeout, screenshot blocking, biometric auth, HTTPS enforcement, PII redaction

📱

Cross-Platform

iOS 16, Android 10–13, Safari, Chrome WebView, BrowserStack emulators

Performance Testing

Cold start time, scroll performance (60 fps), list rendering, async loading

Accessibility

VoiceOver labels, WCAG AA contrast ratios, color blindness compliance

Test Cases (23 Cases)

Comprehensive test coverage across 8 modules: Login, Registration, Documents, Services, UI/UX, Security, Performance, and Compatibility.

TC-ID Module Test Case Title Priority Status
TC-01 Login Valid login with registered phone High Pass
TC-02 Login Login with unregistered phone number High Pass
TC-03 Login Empty phone field submit Medium Pass
TC-04 Login Invalid OTP code (3 attempts) High Pass
TC-05 Login OTP expiry (> 5 min) Medium Pass
TC-06 Registration New user full registration flow High Pass
TC-07 Registration Duplicate phone registration High Pass
TC-08 Registration Invalid ID photo (blurry/wrong doc) Medium Pass
TC-09 Documents View national ID card High Pass
TC-10 Documents Refresh document data Medium Pass
TC-11 Documents Share document via QR High Pass
TC-12 Documents Access documents offline High Pass
TC-13 Services Submit marriage certificate request High Pass
TC-14 Services Request with incomplete form Medium Pass
TC-15 Services Track request status Medium Pass
TC-16 UI/UX Font scaling accessibility (large text) Low Pass
TC-17 UI/UX Dark mode rendering Low Fail
TC-18 Security Session timeout after 10 min idle High Pass
TC-19 Security Screenshot blocked on sensitive screens High Pass
TC-20 Security Biometric authentication High Pass
TC-21 Cross-Browser App on Android 11 (Chrome WebView) Medium Pass
TC-22 Cross-Browser App on iOS 16 (Safari) Medium Pass
TC-23 Performance App cold start time Medium Pass
22 Passed
1 Failed
23 Total
95.7% Pass Rate

Release Readiness Checklist (20 Items)

# Area Check Item Result Notes / Evidence
01 Functionality All main navigation tabs respond correctly Pass Tested on iOS 16 and Android 12
02 Functionality Login / logout flow works end-to-end Pass OTP received in < 30 sec
03 Functionality Document list loads for authenticated user Pass Avg load 1.8 sec
04 Functionality Service request submission completes Pass Confirmation email received
05 Functionality Push notifications delivered Pass Tested with Firebase test message
06 UI / UX All screens match Figma design spec Fail Dark mode has 2 colour mismatches (TC-17)
07 UI / UX Buttons have correct tap target (≥ 44px) Pass Checked with DevTools overlay
08 UI / UX Error messages are human-readable Pass All tested error flows reviewed
09 UI / UX Loading spinners present on async actions Pass Present on all identified async calls
10 Security HTTPS enforced on all API calls Pass Charles Proxy — no HTTP calls detected
11 Security No sensitive data in plain-text logs Pass Logcat review — PII redacted
12 Security Screenshot restricted on document screens Pass Confirmed on Android 12 & iOS 16
13 Security Session expires after inactivity Pass Timeout triggers at 10 min (TC-18)
14 Accessibility VoiceOver labels on interactive elements Pass Spot-checked 15 elements
15 Accessibility Colour contrast ≥ 4.5:1 (WCAG AA) Fail 2 secondary text colours below threshold
16 Performance Cold start < 3 sec Pass Avg 2.4 sec across 5 launches
17 Performance Scroll performance (no jank) in lists Pass 60 fps maintained on flagship device
18 Localisation Ukrainian language strings complete Pass No missing keys detected
19 Localisation Date / number formats correct (UK locale) Pass dd.mm.yyyy format confirmed
20 Compatibility Android 10, 11, 12, 13 — no crashes Pass Tested on BrowserStack emulators

Bug Reports

BUG-001 Medium High Priority

Dark mode: incorrect background colour on Service Request confirmation screen

Module UI / Theming
Environment iOS 16.4 · iPhone 13 · Diya v3.2.1 · OS Dark Mode: ON
Reporter Yevgeniy Storozhenko
Date 2023-01-12
Status New

Description

On the "Service Request Confirmation" screen, the card background retains the light theme colour (#FFFFFF) when the device is in Dark Mode. The text colour is adjusted for dark mode (#E0E0E0), causing near-zero contrast and making the confirmation details unreadable.

Steps to Reproduce

  1. Enable Dark Mode in iOS Settings → Display & Brightness.
  2. Open Diya app and log in.
  3. Navigate to Services → Marriage Certificate → fill form → tap "Submit".
  4. Observe the confirmation screen.

Expected Result

Card background adapts to dark theme (expected: #1C1C1E or equivalent dark token); text remains readable.

Actual Result

Card background stays white (#FFFFFF) in dark mode. Light-coloured text (#E0E0E0) becomes invisible against the white background.

Attachments

screenshot_BUG001_dark_mode_confirmation.png · video_BUG001_dark_mode_steps.mp4

Notes

Issue reproduced consistently on iOS 16.4. Not reproduced on Android 12 (dark mode renders correctly there). Checklist item #06 flags this defect.

BUG-002 Low Medium Priority

Secondary text colour (#9E9E9E on #FFFFFF) fails WCAG AA contrast ratio (3.04:1 vs required 4.5:1)

Module Accessibility / UI
Environment iOS 16.4 & Android 12 · Diya v3.2.1 · System default font size
Reporter Yevgeniy Storozhenko
Date 2023-01-12
Status New

Description

Secondary labels (e.g., document issuance dates, form field hints) use colour token #9E9E9E on white backgrounds. The measured contrast ratio is 3.04:1, which falls below the WCAG 2.1 Level AA minimum of 4.5:1 for normal text. Affects users with low vision.

Steps to Reproduce

  1. Open Diya app → navigate to "My Documents".
  2. Open any document (e.g., ID Card).
  3. Observe the "Issued:" date label beneath the document number.
  4. Measure colour contrast using a tool such as WebAIM Contrast Checker or browser DevTools accessibility panel.

Expected Result

Secondary text contrast ratio ≥ 4.5:1 against background per WCAG 2.1 AA. Suggested accessible colour: #767676 on #FFFFFF gives exactly 4.54:1.

Actual Result

Measured contrast: 3.04:1 for #9E9E9E / #FFFFFF. Does not meet WCAG 2.1 Level AA. Fails accessibility audit.

Attachments

screenshot_BUG002_contrast_issue.png · contrast_checker_BUG002.pdf

Notes

Found during accessibility checklist review (item #15). Affects all screens using the secondary text token. Recommend updating design tokens system-wide. No functional regression; cosmetic / accessibility defect only.

QA Skills Demonstrated

Test Case Design: Created 23 detailed test cases covering positive, negative, and edge-case scenarios across 8 functional modules.
Checklist Creation: Built a 20-item release readiness checklist spanning functionality, UI/UX, security, performance, accessibility, localisation, and compatibility.
Bug Reporting: Documented defects with clear reproduction steps, environment details, expected vs actual results, severity/priority classification, and supporting evidence.
Cross-Platform Testing: Verified functionality across iOS 16, Android 10–13, Safari, and Chrome WebView using physical devices.
Security Testing: Validated session management, biometric authentication, screenshot blocking, HTTPS enforcement, and PII handling.
Accessibility Testing: Evaluated WCAG AA compliance, VoiceOver support, colour contrast ratios, and dynamic font scaling.
Performance Testing: Measured cold start times, scroll performance (60 fps target), and async loading behaviour.
Tool Proficiency: Jira, TestRail, Chrome DevTools, Charles Proxy.