LOADING
0
QA Engineer · Software Developer · Mumbai, India

QA Engineer & Software Dev

Computer Engineering undergraduate specialising in manual & API testing, defect analysis, and end-to-end quality assurance — with a strong background in the systems I test.

SCROLL
01 — About

Hi, I’m Aniruddha — a Computer Engineering undergraduate at Vidyavardhini’s College of Engineering and Technology, Vasai (graduating 2027). I combine a strong development background with a systematic, detail-oriented approach to Quality Assurance — building and testing AI-powered wearable systems, real-time lecture platforms, and full-stack web apps. My experience with REST APIs, WebSocket, and end-to-end pipelines gives me deep insight into how systems behave and fail.

01
Testing
Manual Testing Test Case Design Functional Testing Regression Testing Smoke & Sanity Exploratory Testing API Testing Defect Reporting SDLC STLC Agile / Scrum
02
Tools
Jira Postman Selenium Browser DevTools Git / GitHub VS Code Firebase Docker
03
Languages
Python SQL C++ C JavaScript FastAPI Next.js React REST APIs WebSocket JWT OAuth 2.0
02 — QA Case Studies
✓ QA Case Study · 001

AI Wearable Smart Pendant

End-to-end AI wearable system that records conversations, converts speech to text, identifies speakers, and supports natural language search across recordings.

What I Tested
Transcription accuracy across varied audio inputs
Speaker diarization — single, multi, overlapping speech
Semantic search via Pinecone vector embeddings
Mobile app UI flow — recording → summary → search
End-to-end pipeline: audio capture to search results
API response times and payload correctness
App behaviour on large audio files (>30 min)
How I Tested
Manual testing on real Android device across environments
Postman — validated FastAPI endpoints, auth, response schemas
Varied audio: accents, noise levels, simultaneous speakers
Edge cases: empty recordings, corrupt audio, network drop mid-upload
Search testing: short queries, partial matches, no-result scenarios
Regression testing after each bug fix
Key Bugs Found
Speaker Identification
Overlapping speech fully attributed to last speaker
→
Boundary detection fixed; overlap flagged correctly
Semantic Search — Short Queries
Queries <4 chars returned empty results silently
→
Min query length enforced with clear user message
Large File Handling
App crashed on audio files >30 min
→
Chunked processing implemented; memory issue resolved
Environment
Android device (real device testing)
Postman v10 — API collection with auth flows
FastAPI backend — local + staged
Pinecone sandbox environment
Network: Wi-Fi, 4G, throttled via DevTools
Outcome

Identified and resolved 3 critical defects — speaker boundary detection, semantic search on short queries, and memory management on large files. Validated the complete user journey (record → process → search) end-to-end across multiple audio conditions. All API endpoints verified for correct response schemas, status codes, and error handling.

✓ QA Case Study · 002

LectureMind — Real-Time Lecture Companion

Real-time lecture platform with live audio capture over WebSocket, live transcript rendering, slide synchronisation, and timestamped Q&A.

What I Tested
WebSocket streaming — stability, reconnection, latency
File upload — format validation, size limits, edge cases
SSE-based Q&A streaming — response correctness and timing
Input validation — empty inputs, special chars, long strings
Slide sync accuracy against audio timestamps
Quiz auto-grade across varied answer formats
Review module — note generation accuracy
How I Tested
Manual functional testing: Chrome, Firefox, Edge
Browser DevTools — Network tab: WebSocket frames, SSE streams
Postman — upload, Q&A, and review API endpoints
Network throttling (Slow 3G) for streaming edge cases
Boundary testing: empty, 0-byte, and max-size uploads
Exploratory testing of full session lifecycle
Regression testing after each defect fix
Key Bugs Found
WebSocket — Silent Disconnect
Connection drops on poor network — no reconnect, no alert
→
Auto-reconnect added with visible status indicator
File Upload — No Format Validation
.txt / .doc accepted; transcript fails silently
→
Client + server validation added with clear error
Empty File Upload — App Freeze
0-byte upload froze browser tab; force-refresh needed
→
Empty file guard added; graceful error returned
Environment
Chrome 134, Firefox 136, Edge 134 — Windows 11
Postman v10 — full API collection
Browser DevTools — Network, Console, Performance
Next.js dev server + FastAPI backend
Network: Normal, Slow 3G, Offline simulation
Outcome

Identified and resolved 3 critical defects — WebSocket silent disconnection, missing file format validation, and browser-freeze on 0-byte upload. Confirmed all streaming (WebSocket + SSE) correct under normal and degraded network conditions. Validated file upload, Q&A, and review generation across Chrome, Firefox, and Edge with no regressions after fixes.

03 — Sample Test Artifacts
LectureMind — File Upload Feature · 12 Test Cases (Positive, Negative & Edge)
TC #TitleExpected ResultActual ResultTypeStatus
TC-001Upload valid .mp3 fileUpload succeeds, transcript starts processingUpload succeeded, transcript startedPositivePASS
TC-002Upload valid .mp4 fileUpload succeeds, transcript starts processingUpload succeeded, transcript startedPositivePASS
TC-003Upload valid .wav fileUpload succeeds, transcript starts processingUpload succeeded, transcript startedPositivePASS
TC-004Upload .txt file (unsupported)Error: "Unsupported format. Upload .mp3, .mp4, or .wav".txt accepted; transcript silently failsNegativeFAIL
TC-005Upload file larger than 500 MBError: "File too large. Max 500 MB"Error shown correctlyNegativePASS
TC-006Upload 0-byte empty fileError: "File is empty. Upload a valid file"Browser tab froze; force refresh requiredNegativeFAIL
TC-007Upload filename with special charsFile uploads; filename sanitisedServer 500 error on filenames with spaces or &Edge CaseFAIL
TC-008Cancel upload mid-wayUpload cancelled, no partial file savedUpload cancelled, no partial file savedEdge CasePASS
TC-009Upload on throttled network (Slow 3G)Progress shown; upload completes or times out gracefullyNo feedback; upload fails silently after 30sEdge CaseFAIL
TC-010Upload same file twiceDuplicate warning before overwriteSecond upload replaces first silentlyEdge CaseFAIL
TC-011Upload without being logged inRedirect to login pageRaw 401 JSON error shown to userSecurityFAIL
TC-012Upload .mp4 with no audio trackError: "No audio detected in file"Empty transcript returned with no messageEdge CaseFAIL

6 / 12 test cases failed. All failures reported, root-caused, and fixes verified in regression.

BR-001
LectureMind — File upload accepts invalid formats (.txt, .doc); transcript generation fails silently
HighP1
Steps to Reproduce
1. Navigate to Upload page   2. Select a .txt or .doc file   3. Click Upload   4. Observe behaviour
Expected
Error: "Unsupported format. Upload .mp3, .mp4, or .wav."
Actual
.txt accepted. Upload completes. Transcript fails silently after ~30s with no error shown.
Environment
Chrome 134 · Windows 11 · localhost:3000 · Next.js + FastAPI
Root Cause
No MIME type or extension validation on client or server upload handler.
BR-002
LectureMind — Application freezes and becomes unresponsive when a 0-byte file is uploaded
CriticalP0
Steps to Reproduce
1. Create an empty .mp3 file (0 bytes)   2. Navigate to Upload page   3. Select the empty file   4. Click Upload
Expected
Validation error: "File is empty. Upload a valid audio or video file."
Actual
Browser tab becomes completely unresponsive. Spinner loops indefinitely. Force-close required.
Environment
Chrome 134 · Firefox 136 · Windows 11 · localhost:3000
Root Cause
Upload handler does not check file.size. Zero-byte buffer triggers infinite loop in audio chunking logic.
BR-003
LectureMind — WebSocket connection drops silently on poor network; no reconnection or user notification
HighP1
Steps to Reproduce
1. Start a live session   2. Open DevTools → Network → Throttle to Slow 3G   3. Wait 15–20s and observe the transcript
Expected
Connection drop alert shown. Auto-reconnect attempted. "Reconnecting…" status visible.
Actual
Transcript stops updating. No error shown. No reconnect. User unaware until they notice frozen transcript.
Environment
Chrome 134 · DevTools Slow 3G throttle · Windows 11 · localhost:3000
Root Cause
WebSocket onclose/onerror handlers not implemented. No heartbeat or reconnection logic in session manager.
BR-004
Kairo — Speaker diarization misidentifies speakers when two people speak simultaneously
MediumP2
Steps to Reproduce
1. Record conversation with overlapping speech (3–5s)   2. Wait for processing   3. Open summary   4. Review speaker labels on overlapping segment
Expected
Overlap labelled "Multiple speakers" or attributed to dominant speaker with confidence flag.
Actual
Entire overlapping segment attributed to last identified speaker. Previous speaker's dialogue lost from transcript.
Environment
Android device · Kairo mobile app · FastAPI + Pinecone backend
Root Cause
Speaker boundary detection ignores overlap windows; last-speaker-wins logic applied without confidence scoring.
BR-005
Kairo — Semantic search returns no results for queries shorter than 4 characters
MediumP2
Steps to Reproduce
1. Record conversation mentioning "API"   2. Open search   3. Type "API" (3 chars)   4. Observe results   5. Type "APIs" (4 chars) and compare
Expected
Relevant conversation segments returned for "API" — acronyms and short terms must be supported.
Actual
"No results found" for "API". Adding one char ("APIs") returns results correctly. Consistent for all queries ≤3 chars.
Environment
Android device · Kairo mobile app · Pinecone sandbox
Root Cause
Min token length constraint in embedding pipeline filters queries <4 chars before reaching vector search.
LectureMind — Live Session Feature · Test Plan Checklist
WebSocket connection established on session start without errors
Transcript renders in real-time as audio is captured — no manual refresh needed
Slide synchronisation matches audio timestamp accurately (±2s tolerance)
Q&A submission creates a timestamped entry in the session log
SSE stream delivers Q&A response within 5 seconds on normal network
Review module generates accurate, relevant notes from session content
Quiz auto-grade marks correct answers across varied answer formats
Session ends cleanly — no orphaned WebSocket connections after end
Session file saved correctly and retrievable from session history
Works on Chrome, Firefox, Edge — no browser-specific failures
Works on slow network (3G) — graceful degradation or reconnection
Works with 60–90 min recordings — no timeout or memory issues
Empty transcript guard — quiz generation does not break on empty sessions
Unauthorised access blocked — endpoints return 401 without valid token

14 / 14 checklist items verified. All passed after defect resolution and regression testing.

GT-001
Stealth Platformer (PC Demo) — Enemy AI permanently stops pursuing player after interacting with a pushable crate
HighP1
Steps to Reproduce
1. Enter Level 3 with an enemy guard in patrol state   2. Push a crate across the guard’s line of sight   3. Allow guard to enter “Alert” state   4. Hide behind wall until alert timer expires   5. Walk directly in front of guard
Expected
Guard re-enters patrol state and resumes normal detection behaviour after alert timer expires.
Actual
Guard freezes in idle pose after interacting with crate physics. Detection cone disappears. Guard does not react to the player for the remainder of the level.
Environment
Windows 11 · Chrome 134 (WebGL build) · GTX 1660 · 1080p
Root Cause
Guard AI state machine transitions to “idle” on rigidbody collision event but never transitions back; alert timer callback not registered after physics interrupt.
GT-002
Mobile Endless Runner — Infinite score exploit via rapid double-tap item collect and immediate app background
CriticalP0
Steps to Reproduce
1. Start a run   2. Approach a coin cluster   3. Rapidly double-tap the screen at the moment of collection   4. Immediately press the home button to background the app   5. Return to app within 1–2 seconds   6. Observe score counter
Expected
Score increments by the correct coin value once. App resume restores accurate game state.
Actual
Score increments 8–12× the correct value on resume. Score persists to leaderboard. Reproducible consistently with correct timing.
Environment
Android 14 · Samsung Galaxy A55 · Game v2.4.1
Root Cause
Coin collection event fires from both the touch input handler and the collision callback; backgrounding app pauses deduplication timer, allowing both events to resolve on resume.
GT-003
2D Action RPG (Itch.io) — Player health bar does not update visually until the next damage event after healing from a potion
MediumP1
Steps to Reproduce
1. Take damage until player HP is below 50%   2. Use a Health Potion from the inventory   3. Observe the health bar in the HUD   4. Do not attack or take damage for 5–10 seconds
Expected
Health bar fills immediately to reflect restored HP when the potion is consumed.
Actual
Health bar remains at pre-potion level. Internal HP value is correctly updated (confirmed via debug overlay), but the HUD bar only refreshes when the player takes or deals damage next.
Environment
Windows 11 · Chrome 134 (HTML5/Canvas build) · 1920×1080
Root Cause
HUD update function only subscribed to damage events; heal event does not call the HUD refresh callback.
GT-004
Open-World RPG (PC Demo) — Completed quest marker persists on minimap after quest is finished and save is reloaded
MediumP2
Steps to Reproduce
1. Accept the “Lost Shipment” quest   2. Complete all objectives and trigger the completion dialogue   3. Save the game   4. Exit to main menu   5. Load the saved game   6. Open the minimap
Expected
Quest marker removed from minimap on completion. Marker does not reappear after loading the save.
Actual
Quest marker reappears on the minimap after loading. Approaching the quest location shows no interaction prompt. Marker cannot be dismissed. Does not affect other quests.
Environment
Windows 11 · Demo Build v0.9.2 · Keyboard + Mouse · 1920×1080
Root Cause
Quest completion sets in-memory flag correctly but does not write marker removal to save data; on load, marker re-renders from stale save state.

4 bugs found across 3 game builds during exploratory testing sessions. Reported via each project’s itch.io / GitHub issues page.

04 — Awards & Achievements
2026
🏆 1st Place

VNPS National Product Showcase

Awarded 1st Place for presenting the AI Wearable Smart Pendant at the VNPS National Product Showcase (2026).

2026
🏆 1st Place

Oscillations ‘26 — Technical Paper Presentation

Secured 1st Place at the national level for presenting a technical paper at Oscillations ‘26.

05 — Contact

Let’s build
something right.

yadavaniruddha700@gmail.com
© 2026 Aniruddha Yadav Mumbai, Maharashtra · Built with Three.js + GSAP