Professional Summary

pyavchik@gmail.com
+380 63 997 78 74
portfolio.pyavchik.space

Professional Profile

Software QA Engineer specializing in iGaming and betting platforms automation testing. Experienced in Java, Playwright, TestNG, REST Assured, and comprehensive test automation frameworks.

Technical Skills

  • Automation: Java, Playwright, TestNG, REST Assured
  • API Testing: Postman, Swagger, RESTful services
  • CI/CD: Jenkins, GitHub Actions, Maven
  • Database: SQL, PostgreSQL, MySQL
  • Testing: Functional, Regression, Performance, Security
  • Tools: Allure, JMeter, Selenium, Git

Professional Experience

Senior QA Automation Engineer

iGaming Solutions Ltd

2020 - Present

  • Designed and implemented comprehensive test automation framework for betting platforms
  • Developed API and UI test suites covering payment processing, game integration, and bonus systems
  • Implemented CI/CD pipelines with Jenkins for automated test execution and reporting
  • Created performance test scripts using JMeter for load testing critical system components
  • Collaborated with development teams to improve test coverage and reduce production defects

Sample Test Plan

iGaming Platform Test Plan

Version: 1.2 | Last Updated: January 2024

1. Introduction

This test plan outlines the comprehensive testing approach for the iGaming platform, covering functional, performance, security, and integration testing aspects.

2. Test Strategy

  • Automation Testing: 80% test coverage using Java/Playwright framework
  • Manual Testing: Exploratory testing for UI/UX and edge cases
  • API Testing: Comprehensive REST API validation using REST Assured
  • Performance Testing: Load testing with JMeter for critical payment flows

3. Test Scope

Module Test Type Coverage
Player Registration Functional, API, Security 95%
Payment Processing Functional, Performance, Integration 90%
Game Integration Functional, API, Compatibility 85%
Bonus System Functional, Business Logic 88%

Test Cases

ID Title Category Status Actions

API Documentation

Player Authentication API

POST /api/v1/auth/login

Authenticates a player and returns an access token.

Request:

{
  "username": "player123",
  "password": "securePassword123",
  "deviceId": "abc123def456"
}

Response:

{
  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "expiresIn": 3600,
  "playerId": "12345",
  "sessionId": "session-abc123"
}

Payment Processing API

POST /api/v1/payments/deposit

Processes a player deposit transaction.

Request:

{
  "playerId": "12345",
  "amount": 100.00,
  "currency": "USD",
  "paymentMethod": "credit_card",
  "provider": "stripe",
  "transactionId": "txn_abc123"
}

Response:

{
  "status": "success",
  "transactionId": "txn_abc123",
  "newBalance": 100.00,
  "timestamp": "2024-01-13T10:30:00Z",
  "bonusApplied": {
    "type": "welcome",
    "amount": 50.00,
    "multiplier": 2
  }
}

Jenkins CI/CD Pipeline

Automated Testing Pipeline

Code Commit

Developer pushes code to GitHub

Build

Maven compiles and packages application

Unit Tests

Run unit tests with TestNG

Automation Tests

Execute Playwright UI and REST Assured API tests

Generate Reports

Create Allure test reports and JMeter performance reports

Deploy

Deploy to staging/production environment

Recent Builds

Build # Status Duration Timestamp Tests
#42 Success 12m 45s 2024-01-13 10:15:22 Passed: 87, Failed: 2
#41 Success 11m 30s 2024-01-12 15:30:10 Passed: 89, Failed: 0
#40 Failed 8m 22s 2024-01-12 09:45:05 Passed: 78, Failed: 11
#39 Success 10m 15s 2024-01-11 14:20:18 Passed: 85, Failed: 4

Allure Test Reports

Test Execution Summary

87
Passed
2
Failed
5
Skipped
1
Broken

Test Execution Trend

Test Duration Distribution

Recent Test Results

Test Name Status Duration Category Timestamp
PlayerRegistration_Test.testSuccessfulRegistration Passed 4.2s API 2024-01-13 10:18:22
PaymentProcessing_Test.testDepositWithBonus Passed 8.7s Functional 2024-01-13 10:19:15
GameIntegration_Test.testGameLaunch Failed 12.1s UI 2024-01-13 10:20:45
BonusSystem_Test.testBonusCalculation Passed 3.8s Business Logic 2024-01-13 10:21:30

Test Automation Framework

Java Automation Framework

Modular, scalable test automation framework using Page Object Model pattern with Playwright, TestNG, and REST Assured.

Project Structure

src/
├── test/
│   ├── java/
│   │   ├── pages/          (Page Objects)
│   │   ├── tests/          (Test classes)
│   │   ├── utils/          (Utilities, helpers)
│   │   └── api/            (API test classes)
│   └── resources/
│       └── testng.xml
└── pom.xml

Page Object Example: LoginPage.java

public class LoginPage {
    private final Page page;
    
    // Locators
    private final String usernameInput = "#username";
    private final String passwordInput = "#password";
    private final String loginButton = "#login-btn";
    
    public LoginPage(Page page) {
        this.page = page;
    }
    
    public void enterUsername(String username) {
        page.fill(usernameInput, username);
    }
    
    public void enterPassword(String password) {
        page.fill(passwordInput, password);
    }
    
    public void clickLogin() {
        page.click(loginButton);
    }
    
    public void login(String username, String password) {
        enterUsername(username);
        enterPassword(password);
        clickLogin();
    }
}

Test Class Example: PlayerRegistration_Test.java

public class PlayerRegistration_Test {
    private WebDriver driver;
    private PlayerRegistrationPage registrationPage;
    
    @BeforeClass
    public void setup() {
        driver = BrowserManager.getDriver();
        registrationPage = new PlayerRegistrationPage(driver);
    }
    
    @Test(dataProvider = "registrationData")
    public void testPlayerRegistration(String username, String email, String password) {
        registrationPage.navigateToRegistration();
        registrationPage.fillRegistrationForm(username, email, password);
        registrationPage.submitForm();
        
        Assert.assertTrue(registrationPage.isSuccessMessageDisplayed());
        Assert.assertEquals(registrationPage.getSuccessMessage(), 
                          "Registration successful! Welcome " + username);
    }
    
    @DataProvider(name = "registrationData")
    public Object[][] getRegistrationData() {
        return new Object[][] {
            {"player1", "player1@example.com", "Password123!"},
            {"player2", "player2@example.com", "SecurePass456!"}
        };
    }
    
    @AfterClass
    public void tearDown() {
        BrowserManager.quitDriver();
    }
}

SQL Testing Examples

SQL Query Editor

iGaming SQL Query Examples

Player Account Validation

-- Verify player account creation and data integrity
SELECT p.player_id, p.username, p.email, p.status, 
       a.account_number, a.balance, a.currency
FROM players p
JOIN accounts a ON p.player_id = a.player_id
WHERE p.created_at >= CURRENT_DATE - INTERVAL '7 days'
AND p.status = 'active'
ORDER BY p.created_at DESC;

Purpose: Validate that new player accounts are created with correct associated financial accounts.

Payment Transaction Verification

-- Verify transaction amounts and payment provider integration
SELECT t.transaction_id, t.player_id, t.amount, t.currency, 
       t.transaction_type, t.status, t.created_at,
       pp.provider_name, pp.transaction_reference
FROM transactions t
JOIN payment_providers pp ON t.provider_id = pp.provider_id
WHERE t.created_at >= CURRENT_DATE - INTERVAL '1 day'
AND t.status IN ('completed', 'failed')
ORDER BY t.created_at DESC;

Purpose: Ensure all payment transactions are properly recorded with correct amounts and provider references.

Bug Reports

Bug Report Template

Bug ID:              BUG-###
Title:               [Clear, descriptive title]
Severity:            Critical | High | Medium | Low
Priority:            P1 | P2 | P3 | P4
Status:              Open | In Progress | Resolved | Closed
Environment:         Development | Staging | Production
Assigned To:         [QA/Developer name]
Created Date:        [Date]
Last Updated:        [Date]

Description:
[Detailed description of the bug]

Steps to Reproduce:
1. [Step 1]
2. [Step 2]
3. [Step 3]

Actual Result:
[What actually happened]

Expected Result:
[What should have happened]

Screenshots/Attachments:
[Include relevant screenshots or logs]

Preconditions:
[Required setup/state for bug to occur]

Browser/Device:
[Browser version, OS, device specs]

Additional Notes:
[Any other relevant information]

Root Cause:
[Filled after analysis]

Resolution:
[How it was fixed]

Sample Bug Reports

BUG-001 Payment Processing Failure - Deposit Not Reflected in Balance Critical

Description

When a player initiates a deposit, the transaction is processed successfully by the payment provider, but the amount is not reflected in the player's account balance. The transaction remains in 'pending' state for an extended period.

Steps to Reproduce

  1. Login as a player with sufficient funds
  2. Navigate to the deposit section
  3. Select a payment method (e.g., credit card)
  4. Enter deposit amount (e.g., $100)
  5. Complete the payment process
  6. Check the account balance

Actual vs Expected Result

Actual: Balance remains unchanged, transaction shows as 'pending' for 5+ minutes

Expected: Balance should be updated immediately upon successful payment confirmation

Root Cause & Resolution

Root Cause: Database transaction not committed after payment verification, causing the balance update to be rolled back.

Resolution: Added explicit transaction commit after payment verification step in the payment processing service.

BUG-002 Bonus Not Applied After Deposit High

Description

Welcome bonus is not automatically credited to player accounts when they make their first deposit, even though the bonus promotion is active and the player meets all eligibility criteria.

Preconditions

  • Bonus promotion is active
  • Player is making their first deposit
  • Deposit amount meets minimum bonus requirement ($50+)

Root Cause & Resolution

Root Cause: Bonus calculation service times out during payment processing due to high database load.

Resolution: Implemented retry mechanism with exponential backoff for bonus calculation service calls.

Performance Testing

Performance Test Results

Comprehensive performance testing covering API load, UI responsiveness, and database query optimization.

Key Performance Metrics

450ms
95th Percentile Response Time
120 RPS
Peak Throughput
0.8%
Error Rate
500
Max Concurrent Users

Response Time Distribution

Throughput Over Time

API Load Test: Payment Processing

Scenario: 100 concurrent users making deposit requests

Duration: 10 minutes ramp-up, 30 minutes sustained load

Findings: Database query optimization needed for transaction history lookup

Recommendation: Add composite index on (player_id, transaction_date)

UI Performance: Login Page Load Time

Target: Page Load Time < 2 seconds

Actual: 2.8 seconds (needs optimization)

Issues Found: Unoptimized image sizes, synchronous script loading

Solutions: Image compression, lazy loading, async script loading