Programming and IT
How to become a software tester from scratch
Software testing is a common way into IT without deep programming at the start. But a tester's job is not "clicking buttons": you need to understand how the application works, design checks using test design techniques and describe defects clearly. Below is the order to study things in and practice assignments you can show an employer.
In this article
What a tester actually does#
A typical working day: read the requirements for a new feature, find contradictions and gaps in them, write test cases, run them on a test environment, file bug reports and recheck the fixes. Teams value a tester for precise wording: a defect that a developer reproduces on the first try saves hours.
Manual testing is the starting point. Over time most people move into automation, and that is where you need a programming language — most often Python, Java or JavaScript.
Stage 1: theory and terminology (3–4 weeks)#
Work through the core concepts: verification and validation, test levels (unit, integration, system, acceptance), functional and non-functional testing, regression, smoke testing, the defect life cycle. The ISTQB Foundation Level certification programme makes a good backbone — its syllabus is published for free. You do not need to pass the exam to start working, but the syllabus structure is convenient as a plan.
Stage 2: test design and documentation (3–4 weeks)#
The main techniques are equivalence partitioning, boundary value analysis, decision tables, state transition diagrams and pairwise testing. Practise them on ordinary forms: sign-up, flight search, a mortgage calculator.
An example: an "age" field accepts whole numbers from 18 to 65 inclusive. The equivalence classes are below 18, from 18 to 65, and above 65. The boundary values are 17, 18, 65, 66. Four checks instead of a hundred random ones.
Learn to write:
- a checklist — a short list of checks;
- a test case — steps, input data, expected result;
- a bug report — a title saying "what, where, under which conditions", steps to reproduce, actual and expected result, environment, severity and priority, a screenshot or screen recording.
Stage 3: the technical minimum (6–8 weeks)#
Do not go to an interview without these topics:
- HTTP and client-server architecture — GET and POST methods, status codes (200, 400, 401, 404, 500), headers, the JSON format.
- Browser developer tools — the Network and Console tabs, inspecting requests, emulating a mobile screen.
- API testing — sending requests in Postman, checking the status and the response body.
- SQL — selects with conditions, joining tables, checking that data really reached the database after an action in the interface. See how to learn SQL from scratch.
- Git and Linux basics — viewing logs on a test server and finding the error line. See how to learn Linux from scratch.
Stage 4: first steps in automation#
Take Python and pytest. Write tests for a function of your own, then an
automated test for a public practice API:
=
assert == 200
The address here is a placeholder — use any public practice API. The next step is a UI test with Selenium or Playwright: open a page, fill in a form, check the message.
Portfolio and self-checks#
A tester's portfolio is documents plus a repository:
- a set of test cases and checklists for a real website or app;
- five to ten bug reports on real defects (many open-source projects accept bug reports publicly on GitHub);
- a Postman collection of requests to a public API;
- a repository of automated tests that run with a single command.
Check yourself like this: give your bug report to someone else — can they reproduce the defect without asking questions? Take someone else's form and write boundary value checks for it in ten minutes. Answer questions about the bug life cycle and test levels out loud.
Step-by-step plan
- Weeks 1–4 — theoryTerms, test levels and types, the defect life cycle following the ISTQB Foundation syllabus.
- Weeks 5–8 — test designEquivalence classes, boundary values, decision tables; checklists, test cases, bug reports.
- Weeks 9–16 — the technical minimumHTTP, DevTools, Postman, SQL, Git and basic Linux commands.
- Weeks 17–20 — automationPython and pytest, API tests, a first UI test.
- PortfolioTest cases, real bug reports and a repository of automated tests.
Start learning this in your own space
The plan goes into your repository: tick off stages, keep notes — the change history shows how far you have come.
Check yourself
1.A field accepts whole numbers from 18 to 65 inclusive. Which value from the list is invalid?
2.Which HTTP status code means the resource was not found (Not Found)?
3.Which HTTP status code means the request succeeded (OK)?
Sources
-
ISTQBThe international tester certification programme; syllabi are freefree
-
MDN — HTTPHTTP methods, status codes and headersfree
-
Postman Learning CenterHow to send requests and write checks for an APIfree
-
PlaywrightBrowser automation for UI tests, with official guidesfree
Was this helpful?