Many manual testers want to move into automation, and many developers want to move into SDET roles. The problem is not a lack of material. It is too much material, in no clear order.
This is one path, step by step, with a realistic idea of how long each part takes. You do not need a computer science degree. You need consistent practice and a sensible order.
What the job actually is
A QA automation engineer writes code that tests software. Not test cases in a spreadsheet: real programs that open a browser, do what a user would do, and check the result.
On an ordinary week you would expect to:
- Write and maintain automated tests for new features.
- Investigate failures and decide whether each is a real bug or a broken test.
- Keep the suite fast and trustworthy, which is most of the work after the first year.
- Review other people's tests.
- Test APIs, not just screens.
The part nobody mentions in job adverts: maintenance is the job. Writing a test is an afternoon. Keeping two thousand of them green for three years is a career.
Do you need a degree? No. This is one of the more accessible routes into software, and hiring managers care about whether you can build and explain a working suite. Be realistic about the market though. Entry-level hiring is competitive, and "I finished a course" is not a differentiator. A small suite you can explain in detail is.
Step 0: Manual testing fundamentals
Skip this and everything later gets harder. You cannot automate what you do not understand.
Automation is testing first and code second. A framework will happily run a hundred tests that check nothing at all.
Make sure you understand:
- What a test case is: preconditions, steps, expected result.
- Test levels: unit, integration, end-to-end.
- The test pyramid: many fast unit tests, fewer integration tests, few end-to-end tests.
- Regression, smoke and exploratory testing.
- How to write a good bug report: steps to reproduce, expected versus actual.
If you already work as a manual tester, you have most of this, and it is a real advantage. Time needed: 1 to 2 weeks if you are new.
Step 1: One programming language
You need one. Not three.
| Language | Good for | Trade-off |
|---|---|---|
| JavaScript / TypeScript | Playwright and Cypress natively, web-focused teams | Async concepts trip beginners up |
| Python | Easiest to read and write, strong in API testing | Fewer front-end-heavy roles |
| Java | The most enterprise QA postings, especially with Selenium | Slowest to get productive in |
If you have no strong reason to pick otherwise, choose JavaScript or TypeScript. Playwright and Cypress use it natively, and it is what the modern web is written in.
Choose Java if you are targeting banks, insurers or large enterprises, because that is what those postings ask for.
What you actually need, and it is less than a full developer's knowledge:
- Variables, functions, arrays, objects.
- Loops and conditionals.
- Arrow functions and destructuring.
asyncandawait. Learn this properly. Weak async understanding causes most beginner test failures.- Modules: import and export.
You do not need algorithms, data structures or design patterns yet. Time needed: 4 to 6 weeks.
Step 2: HTML, CSS selectors and the DOM
Every test finds elements before it does anything else, so this is the skill underneath all the others.
- How HTML is structured, and what the DOM is.
- CSS selectors: by id, class, attribute, and how to combine them.
- Accessibility roles and labels, because modern locators use them.
- Why
data-testidexists and when to add one. - Basic devtools: inspect an element, run a selector in the console.
People skip this and then spend months fighting flaky selectors. Time needed: 1 to 2 weeks.
Step 3: One automation framework, deeply
Pick one framework and learn it well.
We recommend Playwright for a first framework. Selenium is the classic that many enterprises still require, and Cypress is a common alternative. If you are undecided, the three-way comparison covers the trade-offs honestly.
Learn in this order:
- Locators: roles, labels, test IDs, CSS.
- Actions: click, fill, select, keyboard.
- Assertions and auto-waiting.
- Test structure: describe blocks, hooks, fixtures.
- Real situations: dialogs, tables, dynamic lists, iframes, file uploads.
- Page Object Model: organising locators and actions so one screen change does not break thirty tests.
Practice every topic immediately. The TestAcademy editor exists exactly for this: real apps, an editor, and graded problems, nothing to install. Time needed: 6 to 10 weeks.
Step 4: Flaky tests, and why they decide your reputation
This is the step most roadmaps leave out, and it is the one that separates someone who writes tests from someone a team trusts.
A suite that fails randomly gets ignored, and an ignored suite protects nothing. Learn:
- Why waiting for a condition beats waiting for a number of seconds.
- Why every test must create its own data.
- What test isolation means and why order dependence breaks everything.
- How to debug a failure you cannot reproduce.
Fixing flaky tests covers the causes. Time needed: 1 to 2 weeks, and then forever, because this is the actual job.
Step 5: API testing
Most bugs live behind the UI. Testing the API layer is faster and more stable, and every serious automation role asks for it.
- HTTP basics: methods, status codes, headers.
- JSON: reading and asserting on response bodies.
- Authentication: tokens and cookies.
- Writing API tests in code, using Playwright's request context or a library like supertest.
Start with our API testing guide. Time needed: 2 to 4 weeks.
Step 6: Git and CI/CD
Automation only has value when it runs automatically. A suite that only runs on your laptop is a hobby.
- Git basics: clone, branch, commit, pull request.
- What a CI pipeline is: tests run on every code change.
- Running your suite in GitHub Actions or similar.
- Reading test reports and failure logs.
Running tests in CI covers the pipeline and what to measure. Time needed: 2 to 3 weeks.
Step 7: Build one project you can defend
This is what replaces a degree in an interview.
Build a small suite against a real public website or a demo application. Not fifty tests. Ten good ones, with:
- A clear folder structure and page objects.
- Tests that create their own data.
- A GitHub Actions workflow that runs them.
- A README explaining what you tested and, more importantly, what you chose not to test and why.
That last line is what separates a portfolio from a tutorial output. Interviewers care far more about your decisions than your syntax. Be ready to explain why you picked those locators, why the suite is structured that way, and what you would do differently with more time.
Step 8: Interview preparation
When you can write clean tests for a real app, prepare on purpose:
- Review common questions: waits, locator strategy, flaky tests, framework design.
- Practice live coding: write a test for a page you have never seen. This is the format most technical screens use.
- Prepare your project, in detail.
Use the interview preparation section for role-specific questions with explanations.
A realistic timeline
With about one hour a day:
| Stage | Time |
|---|---|
| Testing fundamentals | 1 to 2 weeks |
| A programming language | 4 to 6 weeks |
| HTML, CSS and the DOM | 1 to 2 weeks |
| One framework, deeply | 6 to 10 weeks |
| Flaky tests | 1 to 2 weeks |
| API testing | 2 to 4 weeks |
| Git and CI | 2 to 3 weeks |
| Project and interviews | 3 to 4 weeks |
| Total | 4 to 7 months |
Faster if you already test manually, because Step 0 is done and you understand the product side. Slower if you are new to code entirely, and that is normal.
The path is not short, but it is repeatable. Thousands of manual testers make this move every year.
Common mistakes on this path
- Learning three frameworks at 20% depth. One framework at 90% gets you hired. The concepts transfer afterwards in days.
- Watching courses without writing code. Watching is not learning. Write tests every day, even small ones.
- Skipping async. Weak
async/awaitunderstanding causes most beginner test failures. - Ignoring API testing. UI-only testers are limited testers, and interviewers know it.
- Ignoring flakiness. Anyone can make a test pass once.
- Waiting to feel ready. Apply when you can build and explain a small suite. Interviews are practice too.
- A portfolio of tutorial output. Ten tests you can defend beat a hundred you copied.
Frequently asked questions
Do I need a degree to become a QA automation engineer? No. Employers care about whether you can build and explain a working test suite. A portfolio project does more than a certificate.
Can I move from manual testing to automation? Yes, and it is the most common route. Your testing knowledge is the part that takes longest to learn, and you already have it. You are adding code to judgment you already own.
Which language should I learn first? JavaScript or TypeScript if you are targeting modern web teams. Java if you are targeting large enterprises. Python if you want the easiest start and expect to do a lot of API work.
How long does it take? Four to seven months at an hour a day, from no coding experience to job-ready. Less if you already test manually.
Do I need to know Selenium in 2026? It depends on your target. Selenium still appears in more enterprise postings than anything else. For a new project on a JavaScript team, Playwright is the more likely requirement.
Is QA automation a good career? It is a real engineering role with a genuine shortage of people who are good at the maintenance side. Be aware that entry-level hiring is competitive, and that the people who do well are the ones who understand testing, not just tooling.
What is the difference between a QA automation engineer and an SDET? Roughly, an SDET is expected to write more production-adjacent code: frameworks, tools and infrastructure, not only tests. The line moves from company to company.
Remember this
Testing knowledge first, code second. One language, one framework, in depth. Learn why tests go flaky, because that is the actual job. Build ten tests you can defend rather than a hundred you copied.
Start today: open the practice editor, pick Playwright, and solve one problem. We run your test against the working app, then against a copy where we broke the exact behaviour on purpose, so you find out immediately whether your test would really have caught the bug.