QA Engineer Complete Guide

From manual testing basics to automation mastery. Plain-English guidance, real test cases, frameworks, and interview prep. Written for beginners and aspiring QA professionals.

Learning Time

10-14 wks

Avg Starting Salary

$65K-$80K

Job Growth

25% by 2030

Search notes

Type a topic and jump to answers.

Uses the same compact search from Bench Sales Notes so you can skim and jump faster.

Start typing to filter sections.

    🎯
    Start here
    Intro to QA Testing

    What QA means, types of testing, and your first steps.

    Foundation
    Manual Testing

    Test cases, bug reports, SDLC, and documentation.

    Advanced
    Test Automation

    Selenium, TestNG, frameworks, and CI/CD integration.

    🛠️
    Toolkit
    Tools & Technologies

    Jira, Postman, Git, browsers, and debugging tools.

    🔌
    Technical
    API & Database Testing

    REST APIs, Postman collections, SQL queries, data validation.

    💼
    Career
    Interview Preparation

    Common questions, coding tests, salary data, resume tips.

    What is QA Testing?

    QA (Quality Assurance) testing is the process of evaluating software to find bugs, ensure functionality, and verify that the product meets requirements. Think of it as being the gatekeeper between development and production—you make sure nothing broken reaches users.

    Simple explanation

    QA engineers test applications by executing test cases, finding defects, reporting bugs, and verifying fixes. You work closely with developers, product managers, and business analysts to ensure quality at every stage.

    • Role: Find bugs before customers do; validate features work as designed.
    • Goal: Deliver high-quality, bug-free software on time.
    • Skills: Attention to detail, analytical thinking, technical knowledge, communication.
    Types of testing
    • Functional Testing: Verify features work per requirements (login, search, checkout).
    • Non-Functional Testing: Performance, security, usability, compatibility.
    • Regression Testing: Ensure new code doesn't break existing features.
    • Smoke Testing: Quick sanity check of critical functionality after build.
    • Integration Testing: Verify modules work together correctly.
    • User Acceptance Testing (UAT): End-users validate the product.
    Quick Q&A

    Do I need a CS degree? No. Many QA engineers come from non-technical backgrounds and learn on the job.

    How long to become job-ready? 10-14 weeks with 15-20 hours/week of focused learning and practice.

    Manual vs Automation - which first? Start with manual testing fundamentals, then learn automation after 2-3 months.

    What tools do I need? Jira, Postman, Browser DevTools, Git. For automation: Selenium, TestNG, Maven.

    Daily task checklist
    • Morning: Review new stories/requirements, attend stand-up, check bug status.
    • Midday: Execute test cases, log defects, retest fixed bugs.
    • Afternoon: Update test documentation, automation script maintenance.
    • End of day: Share test summary, update Jira, prepare for next day.

    QA Testing in one minute

    If you're brand new, start here and follow the order below.

    Do this in order
    1. Learn software development lifecycle (SDLC) and where testing fits.
    2. Understand test case structure: preconditions, steps, expected results.
    3. Practice writing 10 test cases for a simple app (login, search, cart).
    4. Learn bug reporting: severity, priority, steps to reproduce, screenshots.
    5. Install Jira, Postman, and Chrome DevTools; explore each tool.
    Glossary: Common QA terms

    Bug/Defect: Error or flaw in software causing incorrect behavior.

    Test Case: A set of steps to verify a specific feature or functionality.

    Test Scenario: High-level testing requirement (e.g., "Verify login functionality").

    Regression: Re-testing after code changes to ensure no new bugs.

    Severity: Impact of a bug (Critical, High, Medium, Low).

    Priority: Urgency to fix (P0, P1, P2, P3).

    Common mistakes to avoid
    • Not reading requirements thoroughly before testing.
    • Vague bug reports without clear steps to reproduce.
    • Skipping regression after "small" code changes.
    • Not documenting test cases and assumptions.
    • Testing in only one browser or device.

    Manual Testing Fundamentals

    Manual testing is the foundation of QA. You execute test cases by hand, explore features, and verify functionality without automation scripts.

    Test case structure

    Every test case should have these components:

    Field Description Example
    Test Case ID Unique identifier TC_LOGIN_001
    Title Brief description Verify login with valid credentials
    Preconditions Setup required User account exists, app is open
    Test Steps Actions to perform 1. Enter username 2. Enter password 3. Click Login
    Test Data Input values [email protected] / Pass123
    Expected Result What should happen User redirected to dashboard
    Actual Result What happened Pass or details if failed
    Status Test outcome Pass / Fail / Blocked
    Sample test cases

    Test Case 1: Login with valid credentials

    • Precondition: User has valid account
    • Steps: 1) Navigate to login page 2) Enter valid email 3) Enter valid password 4) Click "Login" button
    • Expected: User successfully logs in and sees dashboard

    Test Case 2: Login with invalid password

    • Steps: 1) Enter valid email 2) Enter wrong password 3) Click Login
    • Expected: Error message "Invalid credentials" appears, user stays on login page
    Bug report template

    A good bug report should include:

    • Title: Clear, concise summary (e.g., "Login button not working on Chrome")
    • Environment: Browser, OS, app version (Chrome 120, Windows 11, v2.3.1)
    • Severity: Critical / High / Medium / Low
    • Priority: P0 / P1 / P2 / P3
    • Steps to Reproduce: Numbered steps anyone can follow
    • Expected vs Actual: What should happen vs what actually happened
    • Attachments: Screenshots, videos, console logs
    Severity vs Priority
    Severity Definition Example
    Critical Application crash, data loss, security breach Payment processing fails
    High Major feature broken, workaround exists Search returns no results
    Medium Feature works but with issues Button alignment off by 2px
    Low Cosmetic, minor inconvenience Typo in footer text
    Testing types in detail

    Exploratory Testing: Freestyle testing without predefined test cases. Learn the app, find edge cases, think like an end-user.

    Boundary Testing: Test limits (min/max values, character limits, date ranges).

    Negative Testing: Try to break the system (invalid inputs, SQL injection, XSS).

    Usability Testing: Is the app easy to use? Intuitive navigation? Clear error messages?

    Test Automation with Selenium

    Automation testing uses scripts to execute repetitive test cases, saving time and increasing coverage. Selenium is the industry standard for web automation.

    Why automate?
    • Speed: Run hundreds of tests in minutes instead of hours.
    • Reusability: Write once, run on every build.
    • Coverage: Test across multiple browsers and devices simultaneously.
    • CI/CD Integration: Automated tests run on every code commit.
    • Regression: Catch bugs early when new code breaks old features.
    When NOT to automate
    • One-time tests (exploratory, usability studies)
    • Frequently changing UI or requirements
    • Visual design validation (use visual testing tools instead)
    • Low-value, rarely executed tests
    Selenium setup (Java)

    Step 1: Install Java JDK 8+ and Maven

    Step 2: Add Selenium dependency in pom.xml:

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>4.15.0</version>
    </dependency>

    Step 3: Download ChromeDriver matching your Chrome version

    Step 4: Write your first test:

    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    
    public class FirstTest {
        public static void main(String[] args) {
            // Set driver path
            System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
            
            // Initialize browser
            WebDriver driver = new ChromeDriver();
            
            // Navigate to URL
            driver.get("https://www.google.com");
            
            // Verify title
            String title = driver.getTitle();
            System.out.println("Page title: " + title);
            
            // Close browser
            driver.quit();
        }
    }
    Locator strategies

    Finding elements on a web page is crucial for automation. Selenium provides 8 locator types:

    Locator Syntax Use Case
    ID driver.findElement(By.id("username")) Most reliable, unique identifier
    Name By.name("email") Form fields
    Class Name By.className("btn-primary") Styling classes
    CSS Selector By.cssSelector("#login .submit") Fast, flexible
    XPath By.xpath("//input[@type='submit']") Complex hierarchies
    Link Text By.linkText("Forgot Password?") Exact text match on links
    Partial Link Text By.partialLinkText("Forgot") Partial match
    Tag Name By.tagName("button") Generic elements
    Complete login test example
    import org.openqa.selenium.*;
    import org.openqa.selenium.chrome.ChromeDriver;
    
    public class LoginTest {
        public static void main(String[] args) throws InterruptedException {
            WebDriver driver = new ChromeDriver();
            driver.manage().window().maximize();
            
            // Navigate
            driver.get("https://example.com/login");
            
            // Find elements and enter data
            WebElement emailField = driver.findElement(By.id("email"));
            emailField.sendKeys("[email protected]");
            
            WebElement passwordField = driver.findElement(By.name("password"));
            passwordField.sendKeys("Test@123");
            
            WebElement loginButton = driver.findElement(By.cssSelector("button[type='submit']"));
            loginButton.click();
            
            // Wait for page load
            Thread.sleep(2000);
            
            // Verify success
            String currentUrl = driver.getCurrentUrl();
            if(currentUrl.contains("/dashboard")) {
                System.out.println("Login Test: PASSED");
            } else {
                System.out.println("Login Test: FAILED");
            }
            
            driver.quit();
        }
    }
    TestNG framework

    TestNG helps organize tests, add assertions, generate reports, and run tests in parallel.

    import org.testng.Assert;
    import org.testng.annotations.*;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    
    public class TestNGExample {
        WebDriver driver;
        
        @BeforeMethod
        public void setup() {
            driver = new ChromeDriver();
            driver.get("https://example.com");
        }
        
        @Test(priority = 1)
        public void testTitle() {
            String title = driver.getTitle();
            Assert.assertEquals(title, "Expected Title");
        }
        
        @Test(priority = 2)
        public void testLogin() {
            // Login steps
            Assert.assertTrue(driver.getCurrentUrl().contains("dashboard"));
        }
        
        @AfterMethod
        public void teardown() {
            driver.quit();
        }
    }
    Page Object Model (POM)

    POM is a design pattern that creates an object repository for web elements. Each page is a class, elements are variables, and actions are methods.

    // LoginPage.java
    public class LoginPage {
        WebDriver driver;
        
        // Locators
        By emailField = By.id("email");
        By passwordField = By.id("password");
        By loginButton = By.cssSelector("button[type='submit']");
        
        // Constructor
        public LoginPage(WebDriver driver) {
            this.driver = driver;
        }
        
        // Actions
        public void enterEmail(String email) {
            driver.findElement(emailField).sendKeys(email);
        }
        
        public void enterPassword(String password) {
            driver.findElement(passwordField).sendKeys(password);
        }
        
        public void clickLogin() {
            driver.findElement(loginButton).click();
        }
        
        public void login(String email, String password) {
            enterEmail(email);
            enterPassword(password);
            clickLogin();
        }
    }
    Best practices
    • Use explicit waits instead of Thread.sleep()
    • Implement Page Object Model for maintainability
    • Use meaningful test names and add comments
    • Take screenshots on failure for debugging
    • Run tests in headless mode for faster execution
    • Integrate with CI/CD (Jenkins, GitHub Actions)

    Essential QA Tools

    Master these tools to become an effective QA engineer. Each serves a specific purpose in your testing workflow.

    Tool stack overview
    Category Tool Purpose
    Test Management Jira, TestRail, Zephyr Track test cases, bugs, sprints
    API Testing Postman, REST Assured, SoapUI Test REST/SOAP APIs, collections
    Automation Selenium, Cypress, Playwright Web UI automation
    Mobile Testing Appium, Espresso, XCUITest Android/iOS app testing
    Performance JMeter, LoadRunner, Gatling Load, stress, spike testing
    Version Control Git, GitHub, Bitbucket Code management, collaboration
    CI/CD Jenkins, GitHub Actions, GitLab CI Automated test execution
    Database MySQL Workbench, pgAdmin, DBeaver Query databases, validate data
    Jira for test management

    Jira is the go-to tool for tracking bugs, user stories, and test execution. Key workflows:

    • Bug reporting: Create issue → Type: Bug → Add severity/priority → Attach screenshot → Assign to developer
    • Test case tracking: Use Zephyr or Xray plugin for test case management
    • Sprint planning: View stories, estimate testing effort, mark blockers
    • Dashboards: Track bug metrics, test pass rate, coverage
    Browser DevTools

    Chrome DevTools is essential for debugging and understanding web applications:

    • Elements tab: Inspect HTML, modify CSS, test responsive design
    • Console tab: View JavaScript errors, run commands
    • Network tab: Monitor API calls, check response codes, see payloads
    • Application tab: View cookies, local storage, session storage
    • Performance tab: Analyze page load time, identify bottlenecks
    Git basics for QA

    Version control is crucial for managing automation scripts:

    # Clone repository
    git clone https://github.com/username/repo.git
    
    # Create new branch
    git checkout -b feature/login-tests
    
    # Check status
    git status
    
    # Add files
    git add .
    
    # Commit changes
    git commit -m "Added login test cases"
    
    # Push to remote
    git push origin feature/login-tests
    
    # Pull latest changes
    git pull origin main

    API & Database Testing

    Modern applications rely on APIs for backend communication. API testing validates data exchange, performance, and security without a UI.

    What is API testing?

    API (Application Programming Interface) testing verifies that endpoints return correct data, handle errors properly, and meet performance standards. You test the logic layer directly—faster and more reliable than UI testing.

    REST API basics

    REST uses HTTP methods to perform CRUD operations:

    Method Purpose Example
    GET Retrieve data GET /api/users/123
    POST Create new record POST /api/users
    PUT Update entire record PUT /api/users/123
    PATCH Partial update PATCH /api/users/123
    DELETE Remove record DELETE /api/users/123
    HTTP status codes
    Code Meaning When It Appears
    200 OK Successful GET/PUT/PATCH
    201 Created Successful POST
    204 No Content Successful DELETE
    400 Bad Request Invalid data sent
    401 Unauthorized Missing/invalid auth token
    404 Not Found Resource doesn't exist
    500 Server Error Backend crashed
    Postman essentials

    Postman is the #1 tool for API testing. Key features:

    • Collections: Group related API requests (Login, Users, Orders)
    • Environment Variables: Store base URL, tokens, IDs for reuse
    • Tests: Write JavaScript assertions to validate responses
    • Pre-request Scripts: Generate dynamic data, set timestamps
    • Mock Servers: Simulate APIs before backend is ready
    Sample Postman tests
    // Test 1: Verify status code
    pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
    });
    
    // Test 2: Check response time
    pm.test("Response time is less than 500ms", function () {
        pm.expect(pm.response.responseTime).to.be.below(500);
    });
    
    // Test 3: Validate JSON structure
    pm.test("Response has user data", function () {
        var jsonData = pm.response.json();
        pm.expect(jsonData).to.have.property('name');
        pm.expect(jsonData).to.have.property('email');
    });
    
    // Test 4: Save token for next request
    var jsonData = pm.response.json();
    pm.environment.set("auth_token", jsonData.token);
    Database testing with SQL

    QA engineers need basic SQL to validate data integrity and backend logic:

    -- Select all users
    SELECT * FROM users;
    
    -- Find specific user
    SELECT * FROM users WHERE email = '[email protected]';
    
    -- Count total records
    SELECT COUNT(*) FROM orders WHERE status = 'completed';
    
    -- Join tables
    SELECT orders.id, users.name, orders.total
    FROM orders
    INNER JOIN users ON orders.user_id = users.id;
    
    -- Check for duplicates
    SELECT email, COUNT(*) 
    FROM users 
    GROUP BY email 
    HAVING COUNT(*) > 1;
    
    -- Validate data after API call
    SELECT * FROM users WHERE created_at > '2024-12-01';
    API test scenarios
    • Positive testing: Valid inputs return expected data and status codes
    • Negative testing: Invalid data returns proper error messages (400, 422)
    • Boundary testing: Min/max values, empty strings, special characters
    • Authentication: Valid/invalid tokens, expired tokens, missing headers
    • Performance: Response time under load, concurrent requests
    • Security: SQL injection, XSS, unauthorized access attempts

    Interview Preparation

    QA interviews typically have 3 rounds: HR screening, technical round (concepts + live testing), and practical automation challenge.

    Top 20 QA interview questions

    1. What is the difference between QA and QC?

    QA (Quality Assurance) is process-oriented—preventing defects through good practices. QC (Quality Control) is product-oriented—finding defects through testing.

    2. Explain SDLC and STLC

    SDLC (Software Development Life Cycle) covers entire product development. STLC (Software Testing Life Cycle) focuses on testing phases: requirement analysis, test planning, test case development, environment setup, test execution, and closure.

    3. What is regression testing?

    Re-testing existing functionality after code changes to ensure nothing broke. Usually automated and run before each release.

    4. Difference between severity and priority?

    Severity = Impact on application (Critical/High/Medium/Low). Priority = Urgency to fix (P0/P1/P2/P3). High severity bug might have low priority if it's an edge case.

    5. What is boundary value analysis?

    Testing at the edges of input ranges. For age field 18-60, test: 17, 18, 19, 59, 60, 61.

    6. Explain test case vs test scenario

    Test scenario is high-level (e.g., "Verify login functionality"). Test case is detailed steps with expected results.

    7. What is smoke testing vs sanity testing?

    Smoke = Quick check of critical functionality after build. Sanity = Focused testing after bug fix to verify the fix works.

    8. How do you prioritize test cases?

    Based on: Critical business features → High-risk areas → Frequently used functionality → Recent code changes.

    9. What is a test plan?

    Document outlining testing scope, approach, resources, schedule, risks, and deliverables for a project.

    10. Explain black box vs white box testing

    Black box = Testing without knowing internal code structure. White box = Testing with knowledge of code, logic, and architecture.

    Automation interview questions

    11. Why Selenium? Advantages over other tools?

    Open source, supports multiple languages (Java, Python, C#), cross-browser compatible, large community, integrates with TestNG/JUnit.

    12. What are different types of waits in Selenium?

    • Implicit Wait: Global wait applied to all elements
    • Explicit Wait: Wait for specific condition on specific element
    • Fluent Wait: Explicit wait with polling interval and ignore exceptions

    13. What is Page Object Model?

    Design pattern separating page elements and actions into classes. Each page = one class. Improves maintainability and reduces code duplication.

    14. How do you handle dropdowns in Selenium?

    Select dropdown = new Select(driver.findElement(By.id("country")));
    dropdown.selectByVisibleText("United States");
    dropdown.selectByValue("us");
    dropdown.selectByIndex(2);

    15. How to take screenshots in Selenium?

    TakesScreenshot ts = (TakesScreenshot)driver;
    File source = ts.getScreenshotAs(OutputType.FILE);
    FileUtils.copyFile(source, new File("./screenshots/test.png"));
    API testing questions

    16. What is the difference between PUT and PATCH?

    PUT updates the entire resource. PATCH updates only specific fields. PUT is idempotent (same result if called multiple times), PATCH may or may not be.

    17. How do you test REST APIs?

    Using Postman or REST Assured. Verify: status codes, response time, JSON schema, data accuracy, error handling, authentication.

    18. What is the difference between authentication and authorization?

    Authentication = Verifying identity (login with username/password). Authorization = Verifying permissions (can this user access admin panel?).

    Behavioral questions

    19. How do you handle disagreements with developers about bug severity?

    Provide evidence (screenshots, logs, user impact data). Focus on business impact rather than personal opinions. Escalate to manager if needed with facts.

    20. Describe a challenging bug you found and how you resolved it

    Use STAR method: Situation (intermittent payment failure) → Task (find root cause) → Action (analyzed logs, checked network calls, reproduced in staging) → Result (found timeout issue, worked with dev to fix, added monitoring).

    Salary ranges (US market, 2024-2025)
    Level Experience Salary Range Key Skills
    Junior QA 0-2 years $55K - $75K Manual testing, test cases, Jira, basic SQL
    QA Engineer 2-4 years $75K - $95K Automation (Selenium), API testing, TestNG
    Senior QA 5-7 years $95K - $125K Framework design, CI/CD, mentoring, performance testing
    QA Lead 8-10 years $120K - $150K Team management, strategy, test planning, stakeholder communication
    SDET 3-6 years $100K - $140K Strong coding, framework development, architecture

    Note: SF/NYC +20-30%, Remote -10%, Healthcare/Finance +$8-12K premium

    Resume tips for QA roles
    • Summary: "QA Engineer with 3+ years in automation, Selenium, API testing, and Agile environments"
    • Skills section: Group by category (Testing, Automation, Tools, Languages)
    • Experience: Use metrics (Automated 200+ test cases, Reduced regression time by 60%)
    • Projects: List 2-3 personal projects on GitHub with test frameworks
    • Certifications: ISTQB, Selenium certification, AWS Certified (if applicable)

    Performance & Load Testing

    Performance testing ensures your application handles expected load, scales properly, and responds quickly under stress.

    Types of performance testing
    • Load Testing: Test system with expected user load (100 concurrent users)
    • Stress Testing: Push beyond limits to find breaking point (1000+ users)
    • Spike Testing: Sudden traffic increase (Black Friday scenario)
    • Endurance Testing: Sustained load over time to find memory leaks
    • Scalability Testing: How system scales when adding resources
    Key metrics to monitor
    Metric Description Good Benchmark
    Response Time Time from request to response < 2 seconds
    Throughput Requests processed per second Depends on app
    Error Rate % of failed requests < 1%
    CPU Usage Server CPU utilization < 80%
    Memory Usage RAM consumption < 85%
    JMeter basics

    Apache JMeter is the industry-standard open-source tool for performance testing.

    Key components:

    • Thread Group: Define number of users, ramp-up time, loop count
    • HTTP Request: Configure API endpoint, method, parameters
    • Listeners: View results, graphs, response times
    • Assertions: Validate response codes, content, response time

    QA Best Practices & Career Growth

    Testing best practices
    • Early involvement: Join requirement discussions, ask clarifying questions
    • Risk-based testing: Focus on high-risk, high-impact features first
    • Automate wisely: Stable, repetitive tests; not exploratory or one-time tests
    • Document everything: Test cases, bugs, assumptions, test data
    • Collaborate: Work with devs to understand code changes and risks
    • Continuous learning: New tools, frameworks, and methodologies emerge constantly
    Common mistakes to avoid
    • Testing only happy paths, ignoring negative scenarios
    • Not retesting after bug fixes (regression)
    • Poor bug reports without clear steps to reproduce
    • Over-automating unstable features
    • Testing in production instead of staging environment
    • Not communicating blockers early
    Career progression paths

    Path 1: QA Specialist

    Junior QA → QA Engineer → Senior QA → QA Lead → QA Manager

    Path 2: Automation Expert

    QA Engineer → Automation Engineer → SDET → Automation Architect

    Path 3: Development Transition

    QA Engineer → SDET → Software Developer → Full Stack Developer

    Skills to master for career growth
    Stage Technical Skills Soft Skills
    Junior (0-2 yrs) Manual testing, SQL basics, Jira, test case writing Attention to detail, communication, teamwork
    Mid-Level (2-5 yrs) Selenium, API testing, TestNG, Git, CI/CD basics Time management, mentoring, proactive problem-solving
    Senior (5+ yrs) Framework design, performance testing, cloud, Docker Leadership, strategy, stakeholder management, decision-making
    Certifications worth pursuing
    • ISTQB Foundation: Entry-level certification covering testing fundamentals
    • ISTQB Advanced (Test Analyst/Technical Test Analyst): Deep dive into test design and technical skills
    • Certified Selenium Professional: Validates Selenium automation expertise
    • AWS Certified Cloud Practitioner: Understanding cloud infrastructure for testing
    • Certified Scrum Master: Agile methodology and team collaboration

    Frequently Asked Questions

    Can I become a QA engineer with no technical background?

    Yes! Many successful QA engineers started with no coding experience. Begin with manual testing, learn test case writing and bug reporting, then gradually add automation skills.

    What programming language should I learn first?

    Java or Python. Java is widely used with Selenium and has more enterprise job opportunities. Python is easier to learn and great for quick scripting.

    How long does it take to become job-ready?

    10-14 weeks with focused learning (15-20 hours/week). Timeline: Manual testing basics (3 weeks) → Automation fundamentals (4 weeks) → API testing (2 weeks) → Projects & Interview prep (3-4 weeks).

    Is QA a good career in 2025?

    Absolutely. With more companies adopting Agile and DevOps, demand for skilled QA engineers (especially automation) is growing. Bureau of Labor Statistics projects 25% growth through 2030.

    Manual testing vs Automation - which pays more?

    Automation engineers typically earn $15K-$25K more than manual testers at the same experience level. SDETs (Software Development Engineers in Test) earn similar to developers.

    What's the difference between QA Engineer and SDET?

    QA Engineer focuses on testing (manual + automation). SDET (Software Development Engineer in Test) is a developer who writes code and builds testing frameworks. SDETs require stronger programming skills.

    Do I need to know DevOps as a QA engineer?

    Basic DevOps knowledge helps: Git for version control, Jenkins/GitHub Actions for CI/CD, Docker for environment setup. Not mandatory for entry-level, but valuable for senior roles.

    How do I build a QA portfolio with no experience?

    1) Create test cases for popular apps (Amazon, Netflix) 2) Build Selenium automation framework on GitHub 3) Write bug reports for open-source projects 4) Create API test collections in Postman and publish.