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.

Updated
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:

import requests

def test_get_user_returns_200():
    response = requests.get("https://example.org/api/users/1")
    assert response.status_code == 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

  1. Weeks 1–4 — theoryTerms, test levels and types, the defect life cycle following the ISTQB Foundation syllabus.
  2. Weeks 5–8 — test designEquivalence classes, boundary values, decision tables; checklists, test cases, bug reports.
  3. Weeks 9–16 — the technical minimumHTTP, DevTools, Postman, SQL, Git and basic Linux commands.
  4. Weeks 17–20 — automationPython and pytest, API tests, a first UI test.
  5. 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.

Start the plan

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 free
    free
  • MDN — HTTPHTTP methods, status codes and headers
    free
  • Postman Learning CenterHow to send requests and write checks for an API
    free
  • PlaywrightBrowser automation for UI tests, with official guides
    free

Was this helpful?

More articles

Programming and IT How to become a data analyst from scratch A data analyst answers business questions with numbers — why sales dropped, which version of a page works better, where customers drop off. The tools of the job are simple and well documented in the open: spreadsheets, SQL, Python and a bit of statistics. Below is the order to learn them in and how to build a portfolio from your own studies. Programming and IT How to learn Python from scratch Python is a good first programming language: code reads almost like text, and the standard library covers most everyday tasks. This plan takes you from installing the interpreter to your own scripts covered by tests in about four months, at roughly an hour a day. Programming and IT How to learn Linux from scratch Linux runs most servers, containers and countless devices, so developers, testers, analysts and system administrators all need the command line. The easiest way to learn it is not by reading lists of commands but by working in the terminal every day and solving small practical tasks. Below is a sequence of topics for two to three months. Programming and IT How to learn SQL from scratch SQL is the query language of relational databases. Developers, analysts, testers and managers who want to pull numbers themselves all need it. Basic queries take a few weeks to learn; working confidently with complex reports takes two or three months of practice. Below is the order of topics and ways to train on a real database. Programming and IT How to learn JavaScript from scratch JavaScript runs in every browser and, through Node.js, on the server too. It is easy to start — you can run code right in the browser console — but it has plenty of surprising corners, from type coercion to asynchronous code. The plan below takes three to four months and assumes you already know basic HTML and CSS or are learning them alongside. Programming and IT How to learn Java from scratch Java is a strictly typed language behind banking systems, the servers of large services and Android apps. The strictness slows you down at first, but the compiler catches many mistakes before the program ever runs. This plan takes about six months at an hour a day and leads from your first program to a small backend application.

More solutions