Hiring QA Engineers: The Evaluation Process That Filters Out the Wrong Hires
Building a world-class QA team is harder than building the software they test. You need engineers who can code, but also think like adversaries. Automation experts who understand when NOT to automate. Technical specialists who can communicate with non-technical stakeholders. It's a rare combination.
Most companies get it wrong. They hire manual testers, task them with automation, and wonder why velocity staggers. Or they hire great automation engineers who build brittle test suites nobody maintains. The problem isn't the people—it's the hiring strategy, team structure, and career development framework. For a full breakdown of the industry landscape, see our 2026 LLM Testing Buyers Guide.
This comprehensive guide covers everything: from defining modern QA roles to interview techniques, team structures, career progression, and building a culture of quality.
Table of Contents
- Modern QA Role Definitions
- Essential Skills Matrix
- Recruitment Strategy
- Interview Process
- Technical Assessment
- Team Structure and Org Design
- Onboarding Framework
- Career Progression Paths
- Building Quality Culture
- Training and Development
Modern QA Role Definitions
Role Comparison Matrix
| Role | Code % | Manual % | Leadership % | Avg Salary |
|---|---|---|---|---|
| QA Engineer | 40% | 40% | 20% | $80k-$110k |
| SDET (Software Development Engineer in Test) | 70% | 20% | 10% | $110k-$150k |
| QA Automation Engineer | 60% | 25% | 15% | $95k-$130k |
| QA Lead | 30% | 20% | 50% | $120k-$160k |
| QA Manager | 10% | 10% | 80% | $140k-$190k |
| Test Architect | 50% | 10% | 40% | $150k-$200k |
Detailed Role Descriptions
QA Engineer (Hybrid, Mid-Level)
Responsibilities:
- Design and execute test plans
- Build and maintain automated tests
- Perform exploratory testing
- Report and track bugs
- Collaborate with developers on quality
Must-Have Skills:
- Manual testing proficiency
- Basic programming (JavaScript/Python/TypeScript)
- Test automation fundamentals
- SQL and API testing
- Bug tracking tools
// Interview question: QA Engineer level
/**
* You're testing a login form. List all test cases you would execute.
* Include positive, negative, security, and edge cases.
*/
// Expected answer depth:
const testCases = [
// Positive
'Valid credentials login successfully',
'Remember me checkbox persists session',
// Negative
'Invalid email shows error',
'Wrong password shows error',
'Empty fields show validation',
// Edge cases
'Email with special characters (test+1@example.com)',
'Very long password (1000 characters)',
'Unicode characters in inputs',
// Security
'Password is masked',
'SQL injection attempts blocked',
'Rate limiting after failed attempts',
'Session token secure and httpOnly',
// UX
'Forgot password link works',
'Tab navigation works correctly',
'Screen reader compatibility',
];
SDET (Senior, Heavy Coding)
Responsibilities:
- Design test frameworks and infrastructure
- Build CI/CD integration
- Mentor QA engineers
- Performance and load testing
- API contract testing
Must-Have Skills:
- Strong programming (TypeScript/Java/C#)
- Test framework design
- CI/CD pipelines
- Distributed systems testing
- Database and performance tuning
// Interview question: SDET level
/**
* Design a test data management system that:
* - Supports parallel test execution
* - Provides test isolation
* - Cleans up after tests
* - Works with multiple environments
*/
class TestDataManager {
private dataStore: Map<string, any> = new Map();
async createTestUser(overrides?: Partial<User>): Promise<User> {
const user = {
id: `test-${Date.now()}-${Math.random()}`,
email: `test-${Date.now()}@example.com`,
...overrides,
};
this.dataStore.set(`user:${user.id}`, user);
return user;
}
async cleanup() {
// Cleanup in reverse order
// Implementation details...
}
}
QA Lead (Senior, Leadership Focus)
Responsibilities:
- Define QA strategy
- Lead a team of 3-8 QA engineers
- Quality metrics and reporting
- Cross-team coordination
- Process improvement
Must-Have Skills:
- 5+ years QA experience
- Leadership and mentoring
- Quality metrics and analytics
- Risk assessment
- Stakeholder management
Essential Skills Matrix
Skills by Level
| Skill | Junior | Mid | Senior | Lead |
|---|---|---|---|---|
| Programming | ||||
| JavaScript/TypeScript | Basic | Proficient | Expert | Expert |
| Python/Java | - | Basic | Proficient | Proficient |
| Testing | ||||
| Manual testing | Proficient | Expert | Expert | Expert |
| Test automation | Basic | Proficient | Expert | Expert |
| API testing | Basic | Proficient | Expert | Expert |
| Performance testing | - | Basic | Proficient | Expert |
| Security testing | - | Basic | Proficient | Proficient |
| Tools | ||||
| Playwright/Selenium | Basic | Proficient | Expert | Expert |
| CI/CD (GitHub Actions) | - | Basic | Proficient | Expert |
| Docker/containers | - | Basic | Proficient | Expert |
| Git | Basic | Proficient | Expert | Expert |
| Soft Skills | ||||
| Communication | Proficient | Expert | Expert | Expert |
| Problem-solving | Proficient | Expert | Expert | Expert |
| Leadership | - | Basic | Proficient | Expert |
| Mentoring | - | - | Proficient | Expert |
Recruitment Strategy
Sourcing Channels
| Channel | Quality | Volume | Cost | Best For |
|---|---|---|---|---|
| Employee referrals | ⭐⭐⭐⭐⭐ | Low | Low | Senior roles |
| ⭐⭐⭐⭐ | High | Medium | All levels | |
| Tech conferences | ⭐⭐⭐⭐ | Low | High | Senior/Lead |
| Coding bootcamps | ⭐⭐⭐ | Medium | Low | Junior/Entry |
| Recruitment agencies | ⭐⭐⭐ | Medium | High | Urgent needs |
| GitHub/Open Source | ⭐⭐⭐⭐⭐ | Very Low | Low | Senior SDET |
Job Description Template
# SDET - Software Development Engineer in Test
## About Us
[Company description - emphasize quality culture, modern stack, impact]
## The Role
We're looking for an SDET to build and scale our test automation infrastructure. You'll design frameworks, mentor engineers, and ensure quality at scale.
## What You'll Do
- Design and implement test automation frameworks (Playwright, Cypress)
- Build CI/CD pipelines for continuous testing
- Mentor QA engineers on best practices
- Perform API, performance, and security testing
- Define quality metrics and reporting
## Must-Have
- 3+ years in test automation
- Strong programming skills (TypeScript/JavaScript)
- Experience with Playwright or similar frameworks
- CI/CD experience (GitHub Actions, Jenkins)
- API testing (REST, GraphQL)
## Nice-to-Have
- Performance testing (k6, Artillery)
- Container orchestration (Docker, Kubernetes)
- Cloud platforms (AWS, GCP, Azure)
- Security testing fundamentals
## Interview Process
1. Recruiter screen (30 min)
2. Technical assessment (take-home, 2-3 hours)
3. Technical interview (60 min)
4. System design (60 min)
5. Team fit (45 min)
6. Offer
## Benefits
- Competitive salary ($110k-$150k)
- Remote-first
- Unlimited PTO
- Learning budget ($2k/year)
- Latest dev tools and equipment
## Apply
[Application link]
Interview Process
Stage-by-Stage Framework
interface InterviewStage {
stage: string;
duration: number;
evaluates: string[];
passingCriteria: string;
}
const interviewProcess: InterviewStage[] = [
{
stage: '1. Recruiter Screen',
duration: 30,
evaluates: ['Communication', 'Experience fit', 'Salary expectations'],
passingCriteria: 'Clear communication, relevant experience, aligned expectations',
},
{
stage: '2. Technical Assessment (Take-Home)',
duration: 180,
evaluates: ['Coding', 'Test design', 'Documentation'],
passingCriteria: 'Working tests, clean code, good documentation',
},
{
stage: '3. Technical Deep Dive',
duration: 60,
evaluates: ['Problem-solving', 'API testing', 'Debugging'],
passingCriteria: 'Structured approach, asks questions, explains reasoning',
},
{
stage: '4. System Design',
duration: 60,
evaluates: ['Architecture', 'Scalability', 'Best practices'],
passingCriteria: 'Considers trade-offs, asks clarifying questions, scalable design',
},
{
stage: '5. Team Fit',
duration: 45,
evaluates: ['Culture fit', 'Collaboration', 'Growth mindset'],
passingCriteria: 'Team player, growth-oriented, values quality',
},
];
Interview Question Bank
Junior QA Engineer Questions
Scenario-Based:
You're testing a checkout page. The "Place Order" button doesn't work.
Walk me through your debugging process.
Expected approach:
1. Check browser console for errors
2. Verify network requests (DevTools Network tab)
3. Check if form validation is passing
4. Try different browsers
5. Check if issue reproduces in incognito
6. Document steps to reproduce
7. Check server logs if accessible
Technical:
Write a test for this function:
function calculateDiscount(price: number, code: string): number {
if (code === 'SAVE10') return price * 0.9;
if (code === 'SAVE20') return price * 0.8;
return price;
}
What test cases would you include?
Expected answer:
- Valid codes (SAVE10, SAVE20)
- Invalid code (returns original price)
- Edge cases (empty string, null, undefined)
- Negative prices
- Zero price
- Very large prices
Mid-Level SDET Questions
Coding Challenge:
/**
* Implement a test data factory that creates unique test users
* with proper cleanup after tests.
*
* Requirements:
* - Generate unique emails
* - Support custom attributes
* - Clean up after tests
* - Thread-safe for parallel execution
*/
class UserFactory {
// Your implementation
}
// Usage
const factory = new UserFactory();
const user = await factory.create({ name: 'Test User' });
// ... use in tests
await factory.cleanup();
System Design:
Design a test automation framework for a microservices architecture.
Consider:
- Service dependencies
- Test isolation
- Performance
- Maintainability
- Reporting
Walk me through your design decisions.
Senior/Lead Questions
Architecture:
Your company is scaling from 10 to 100 engineers.
Design a QA strategy that scales.
Consider:
- Team structure
- Automation strategy
- Quality gates
- Metrics
- Culture
Present your 6-month and 2-year plans.
Leadership:
Your test suite has become flaky and slow (2 hours runtime).
Your team is demoralized. How do you fix it?
Expected discussion points:
- Assess current state (metrics, root causes)
- Prioritize fixes (critical path, ROI)
- Team involvement (ownership, empowerment)
- Incremental improvement
- Prevent recurrence (practices, monitoring)
Technical Assessment
Take-Home Assignment Template
# QA Engineer Take-Home Assessment
## Context
You're testing a simple todo application API.
## Your Task
Build automated tests using Playwright that cover:
### Part 1: API Testing (60 min)
1. Test CRUD operations (Create, Read, Update, Delete todos)
2. Test error cases (invalid inputs, not found, etc.)
3. Test authentication
### Part 2: UI Testing (60 min)
1. Test creating a todo via UI
2. Test marking todo as complete
3. Test deleting a todo
4. Handle race conditions
### Part 3: Framework (30 min)
1. Organize tests logically
2. Use Page Object Model
3. Add test data management
4. Include README
## Evaluation Criteria
- ✅ Tests work and cover requirements
- ✅ Code is clean and readable
- ✅ Good test organization
- ✅ Thoughtful error handling
- ✅ Clear documentation
## Submission
Submit as GitHub repository or ZIP file.
We'll review code and discuss your decisions in the next interview.
## Time Limit
2-3 hours (we value your time!)
## Questions?
Email qa-hiring@example.com
Assessment Rubric
| Criterion | Weight | Fail | Pass | Excellent |
|---|---|---|---|---|
| Functionality | 30% | Tests don't run | Tests pass | Comprehensive coverage |
| Code Quality | 25% | Messy, no structure | Clean, readable | Exemplary patterns |
| Test Design | 20% | No organization | Logical structure | POM, fixtures |
| Documentation | 15% | No README | Basic docs | Thorough explanation |
| Error Handling | 10% | None | Basic | Robust, thoughtful |
Team Structure and Org Design
Centralized vs Embedded QA
| Model | Pros | Cons | Best For |
|---|---|---|---|
| Centralized QA Team | - Shared expertise - Consistent practices - Easier to scale |
- Can become bottleneck - Less context on features - "Throw over wall" mentality |
Smaller teams (<30 eng) |
| Embedded QA in Product Teams | - Deep product knowledge - Faster feedback - Shared ownership |
- Inconsistent practices - Harder to share learnings - QA may feel isolated |
Larger teams (>50 eng) |
| Hybrid (Embedded + Platform) | - Best of both worlds - Platform team for tools - Embedded for testing |
- More complex structure - Needs strong coordination |
Enterprise (>100 eng) |
Sample Team Structure (50 Engineers)
VP Engineering
├── QA Management (4 people)
│ ├── QA Lead - Platform Tools (1)
│ │ └── Builds frameworks, CI/CD, infrastructure
│ │
│ └── Embedded QA Engineers (3)
│ ├── Product Team A (1 QA)
│ ├── Product Team B (1 QA)
│ └── Product Team C (1 QA)
│
└── Product Engineering (46 people)
├── Product Team A (15 eng + 1 QA)
├── Product Team B (15 eng + 1 QA)
└── Product Team C (15 eng + 1 QA)
Onboarding Framework
30-60-90 Day Plan
Days 1-30: Foundation
- ✅ Setup dev environment
- ✅ Run existing tests locally
- ✅ Fix 2-3 small bugs/flaky tests
- ✅ Shadow senior QA engineer
- ✅ Complete codebase walkthrough
- ✅ Write first automated test
Days 31-60: Independence
- ✅ Own a test suite (maintenance + expansion)
- ✅ Participate in sprint planning
- ✅ Review PRs and provide test feedback
- ✅ Propose 1 process improvement
- ✅ Lead 1 feature testing effort
Days 61-90: Impact
- ✅ Full ownership of 1-2 features
- ✅ Mentor new hire or intern
- ✅ Implement process improvement
- ✅ Contribute to framework improvements
- ✅ Present at team demo/retro
Career Progression Paths
IC (Individual Contributor) Track
graph LR
A[Junior QA Engineer<br/>L2: $70k-$90k] --> B[QA Engineer<br/>L3: $90k-$120k]
B --> C[Senior QA Engineer<br/>L4: $120k-$150k]
C --> D[Staff QA Engineer<br/>L5: $150k-$180k]
D --> E[Principal QA Engineer<br/>L6: $180k-$220k]
style E fill:#FFD700
Management Track
graph LR
A[Senior QA Engineer<br/>L4] --> B[QA Lead<br/>L5: 3-8 reports]
B --> C[QA Manager<br/>L6: 8-15 reports]
C --> D[Senior QA Manager<br/>L7: 15-30 reports]
D --> E[Director of QA<br/>L8: 30-60 reports]
E --> F[VP of Quality<br/>L9: 60+ reports]
style F fill:#FFD700
Level Expectations
| Level | Scope | Impact | Typical Title |
|---|---|---|---|
| L2 | Task | Individual tasks | Junior QA Engineer |
| L3 | Feature | Feature quality | QA Engineer |
| L4 | Multiple features | Product area quality | Senior QA Engineer |
| L5 | Product area | Product quality + mentoring | Staff QA / QA Lead |
| L6 | Multiple products | Organization quality + strategy | Principal / QA Manager |
| L7 | Department | Company-wide quality | Senior Manager / Director |
Building Quality Culture
Cultural Principles
-
Quality is everyone's responsibility
- Developers write unit tests
- QA provides expertise and governance
- Product defines acceptance criteria
-
Shift left, test early
- Quality discussions in design phase
- Automated tests before merge
- Quick feedback loops
-
Fail fast, recover faster
- Embrace production testing
- Fast rollback mechanisms
- Learn from failures
-
Continuous improvement
- Regular retros on quality
- Experiment with new tools/techniques
- Share learnings across teams
Quality Metrics Dashboard
interface QualityMetrics {
// Defect metrics
bugsInProduction: number;
bugsFoundInQA: number;
escapeRate: number; // bugs in prod / total bugs
// Test metrics
testCoverage: number; // %
testExecutionTime: number; // minutes
flakyTestRate: number; // %
// Process metrics
timeToDetect: number; // hours
timeToFix: number; // hours
deploymentFrequency: number; // per week
// Team metrics
qaToDevRatio: number;
automationRate: number; // %
}
function calculateQualityScore(metrics: QualityMetrics): number {
// Weighted scoring model
const escapeRateScore = (1 - metrics.escapeRate) * 30;
const coverageScore = metrics.testCoverage * 25;
const speedScore = Math.min(metrics.deploymentFrequency / 20, 1) * 20;
const stabilityScore = (1 - metrics.flakyTestRate) * 15;
const efficiencyScore = metrics.automationRate * 10;
return escapeRateScore + coverageScore + speedScore + stabilityScore + efficiencyScore;
}
Training and Development
Skills Development Plan
| Quarter | Focus Area | Activities | Investment |
|---|---|---|---|
| Q1 | Test automation foundations | Playwright course, code reviews | $500 |
| Q2 | Advanced patterns | Design patterns, performance testing | $750 |
| Q3 | Leadership skills | Mentoring program, communication workshop | $1,000 |
| Q4 | Specialization | Conference attendance, certification | $2,000 |
Conclusion
Building an effective QA team requires more than hiring great engineers. You need clear role definitions, structured interviews, thoughtful team organization, and continuous investment in growth.
Start by defining what "quality" means for your organization, then build the team structure and hiring process to support that vision. Remember: hire for aptitude and culture fit, train for skills.
Your QA team should be force multipliers, not bottlenecks. Make them partners in building quality, not gatekeepers before release.
Related articles: Also see a 30-day onboarding plan once your new QA engineers are hired, understanding the SDET role when hiring for automation-first QA teams, and the quality culture that sets new QA hires up for success.
Building your QA team? Try ScanlyApp to empower your QA engineers with modern testing infrastructure, collaboration tools, and quality analytics. Start free—no credit card required.