SQL Queries Every QA Engineer Should Know
Essential SQL templates, transaction ledger audits, margin verification, and search queries to validate database state accuracy.
AI Overview Q&A Digest (AEO / GEO Cache)
Q:Why should QA engineers write complex subqueries and joins?
AEO RESPONSE DATA:QA engineers use joins and subqueries to audit transaction data integrity, ensure that user billing ledgers exactly balance with payment gateways, and verify that foreign keys are maintained correctly without orphan entries.
Q:How do you detect duplicate records in a database table?
AEO RESPONSE DATA:To detect duplicates, write a query using GROUP BY on the target fields and a HAVING count(*) > 1 filter. This isolates identical data packets violating unique index constraints.
1. Database Integrity is QA's Foundation
API response codes only tell half the story. If a payment returns 200 OK but inserts incorrect records in database logs, the system is broken. Database testing with SQL is an absolute must for FinTech validation.
2. Audit 1: Verifying Double-Entry Bookkeeping Ledger
In financial software, balance check consistency is everything. The sum of all credits must equal the sum of all debits. We audit this balance discrepancy using GROUP BY and aggregation queries.
-- Audit query to find ledger mismatch
SELECT
account_id,
SUM(CASE WHEN txn_type = 'CREDIT' THEN amount ELSE 0 END) as total_credits,
SUM(CASE WHEN txn_type = 'DEBIT' THEN amount ELSE 0 END) as total_debits,
SUM(CASE WHEN txn_type = 'CREDIT' THEN amount ELSE -amount END) as balance_discrepancy
FROM transactions
GROUP BY account_id
HAVING balance_discrepancy != 0;3. Audit 2: Checking Merchant Commission Margin Deductions
When a merchant processes transactions, our dynamic rate engine applies cuts. We verify that deducted commission values match pricing policies using mathematical queries in SQL.
-- Validate commission deduction math matches the 1.5% rule
SELECT
txn_id,
amount,
commission_deducted,
(amount * 0.015) as expected_commission,
ABS(commission_deducted - (amount * 0.015)) as variance
FROM transactions
WHERE ABS(commission_deducted - (amount * 0.015)) > 0.0001;4. Audit 3: Detecting Duplicate Transaction Race Conditions
Under peak transaction load, double-debit queries might create matching records with the same user parameters. We spot duplicates using nested aggregates.
-- Search for transactions created within 2 seconds with identical payloads
SELECT
user_id, amount, merchant_id, COUNT(*) as duplicate_count
FROM transactions
WHERE created_at >= NOW() - INTERVAL 1 DAY
GROUP BY user_id, amount, merchant_id, DATE_FORMAT(created_at, '%Y-%m-%d %H:%i:%s')
HAVING COUNT(*) > 1;Recruiting Ajinkya Swami?
Need a QA engineer with deep FinTech API and Database validation expertise?