top of page

TestAjanı User Guide

Writer: Sevdanur GENC
Sevdanur GENC
Oct 10
8 min read

1. What is TestAjanı?

TestAjanı reads your code, explains it and writes automated tests for it. It runs with a local AI model on your own computer (Ollama), so your code never leaves your machine.

The app does not just write tests, it actually runs them: it sees tests that do not compile or that fail, and fixes them. At the end it gives you:

  • a code explanation describing what the code does,

  • a working test file you can copy into your project,

  • a coverage map showing how much of the code the tests exercise,

  • a mutation score measuring how well the tests catch bugs,

  • a shareable HTML / PDF report.

Supported languages are Python, JavaScript, TypeScript and Java; browser tests can also be written for web pages (HTML + JS). This guide covers basic use, from installation to getting a report.


2. Installation and start-up

You need two programs: Docker Desktop and, preferably, Ollama installed on the computer (it makes the best use of the graphics card). Unzip the package into a folder; everything is done with the launchers in the folder’s root.


Required software

Software

Required?

Purpose

Download

Docker Desktop

Yes

Isolated environment that runs the app and the code

WSL 2 (Windows only)

Yes

Docker Desktop’s back end on Windows; version 2.1.5 or later

Ollama

Recommended

Runs the AI model; installed on the computer it uses the graphics card best (without it, a slower Ollama runs inside Docker)

Qwen2.5-Coder model

Yes (automatic)

The model that explains code and writes tests. The launcher downloads it on first start: 7b ≈ 4.7 GB, 14b ≈ 9.0 GB

NVIDIA graphics driver

Recommended

Fast model execution on the GPU and the GPU monitor

A current web browser

Yes

The interface (Chrome, Edge or Firefox)

—


Minimum hardware Docker requires on Windows: a 64-bit processor, 8 GB RAM and hardware virtualisation enabled in BIOS/UEFI; Windows 10 22H2 or Windows 11 23H2 and later (source). For the 14b model, 12 GB or more of graphics memory is recommended. You do not need to install Python, Node.js or Java; they all ship inside Docker.


Launchers

Launcher (Windows)

What it does

Baslat-Windows.bat

Checks Docker, builds and starts the app, downloads the model the first time and opens http://localhost:8000 in the browser.

Durdur-Windows.bat

Stops the app. History, results and downloaded models are kept.

GPU-Kontrol-Windows.bat

Checks whether the model runs on the graphics card and how fast (tokens/s); also reports whether the running app is the latest version.

Onar-Windows.bat

If the interface still looks old after an update: removes the old app, rebuilds it and verifies the version.

Kisayol-Olustur-Windows.bat

Adds desktop shortcuts (once).


macOS has .command and Linux .sh equivalents.

  1. Double-click Baslat-Windows.bat. The first run can take a few minutes.

  2. When the window shows [OK] Surum: …, the browser opens by itself.

  3. The small version label next to “TestAjanı” at the top left should match the version of the zip you unpacked.

Updating: unpack the new zip and run Baslat-Windows.bat from the new folder. A desktop shortcut may still point to the old folder; refresh it with Kisayol-Olustur-Windows.bat.


3. Interface overview

The app is a single page: tabs and status indicators at the top, the selected tab’s content below.



Top bar, from left to right:



Item

Description

Version label

Next to “TestAjanı”; shows the running version.

Tabs

Workspace, Evaluation, Compare, Experiments, History.

GPU monitor

Graphics card name, utilisation and memory (VRAM). The dot pulses while the card is busy.

Ollama status

Green: model server connected; red: not running.

TR · EN

Switches the interface language; the agent flow, code explanation and reports follow.

Sun / moon

Switches between light and dark mode.


Click the GPU monitor for details: utilisation graph, temperature, power, clock speed and the GPU share of the loaded model. A green “100% GPU” model row means all is well; amber means part of the model runs on the processor, which is slow.




4. Generating tests (Workspace)

Generating tests for one piece of code takes four steps, all in the left panel.




  1. Enter the code. Three ways:

    • paste or type the code into the editor;

    • pick a ready-made example from Load sample…;

    • choose a file with Open file, or drag and drop it onto the editor.

  2. Choose the language and test type. The language is picked from the file extension. Test type: Unit (behaviour of functions and classes), Interface (public API contract), Web UI (user flows in the browser; JavaScript/HTML only).

  3. Check the settings (bottom). The defaults suit most cases.

  4. Press Generate tests. While the agent works the button turns into Stop.

Setting

Default

Meaning

Model

qwen2.5-coder:7b

The model to use. 14b gives better results but is slower.

Max rounds

4

How many times the write → run → fix loop may repeat.

Coverage target %

85

The loop stops early once this is reached.

Mutants

on, 25

Number of small faults injected to measure how well the tests catch bugs.

Mutant round

on

Faults the tests missed are shown to the agent, which adds tests to catch them (one extra round).



Several files or a project zip

If you pick several files or a zip with Open file, the app switches to project mode. Choose the file to test from the list in the blue strip; the other files are placed next to it as helpers, so import lines work. Coverage and mutation are measured on the chosen file only. The × button leaves project mode.




Limits: 200 KB per file, 600 KB in total, at most 30 helper files. Tooling and configuration files such as package.json, node_modules and __pycache__ are skipped automatically.


5. Reading the results

Once a run starts, the middle panel shows every agent step live (Plan → Implement → Verify → Fix → Evaluate); the strip below it shows each round’s coverage. The right panel holds summary cards and four tabs.



Card

What it shows

Good value

Tests passed

Passing / total tests on the original code

All (e.g. 14/14)

Line coverage

Share of code lines the tests execute

85% or more

Mutation score

Share of injected small faults the tests catch

70% or more

Verification rounds

How many rounds the loop took

Fewer is faster


Tab

Contents

Explanation

What the code does, its units, edge cases, the test plan and possible bugs the tests revealed. If you change the language afterwards, the explanation is translated once by the model.

Tests

The generated test file with Copy and Download buttons, and the result of each test.

Coverage

The source coloured line by line: green executed, red never executed; ● killed, ○ surviving mutant.

Mutation

Each injected fault, its line and result (killed / survived). If the mutant round ran, the before → after score is shown in a green box at the top.




Tip: the line of a surviving (○) mutant shows where the tests do not check a comparison or calculation exactly; adding a test there strengthens the suite. The “possible bugs revealed by the tests” are claims confirmed by an independent judge agent; the final call is still yours.


6. Getting a report (HTML / PDF)

Every finished run can produce a detailed, colour report. The report is written in the language currently selected in the interface (TR or EN).

  • In the Workspace: the Report (HTML), PDF and Download HTML buttons below the results panel.

  • In the History tab: the HTML and PDF buttons at the end of each row (older runs included).

The PDF button opens the report and brings up the print dialog; choose Save as PDF as the destination. Colours are kept and the page is laid out for A4.

The report contains, in order: an overall verdict (Strong / Good / Needs improvement), headline figures, a “What do these numbers mean?” explainer, the code explanation, findings, the round chart, the tests, the coverage map, the mutation breakdown, recommendations and run details (model, GPU share, speed, energy).




7. Evaluation, Compare and History


Evaluation

Runs the agent in bulk over the 42 programs in the built-in dataset. On the left, choose the model, number of rounds and items, then press Evaluate … items; results fill in item by item on the right. A run can be stopped with Pause and continued from where it left off with Resume; Stop ends it for good. Download report (.md) gives a Markdown report in the selected language.



Compare

Puts two evaluations (e.g. 7b vs 14b, or 1 round vs 4 rounds) side by side on the same programs. Pick two runs in boxes A and B; a chart, the averages, the difference (Δ) and statistical significance appear. p < 0.05 (starred) means the difference is unlikely to be chance, and A12 shows how large the difference is. A green Δ means B is better.




History

Lists all previous runs. Clicking a row opens the run in the Workspace; the HTML and PDF buttons at the end give that run's report.




8. Experiments

The Experiments tab runs, in one click, the long jobs that measure TestAjanı itself scientifically (model comparison, the contribution of the loop, ablations, judge accuracy). It is not needed for everyday test generation.

Profile

Duration (approx.)

When to use

Trial

5 min

To check quickly that the setup and GPU work (2 small programs).

Quick

~1 day

For preliminary results: each configuration once.

Full (paper)

1.5–2 days

For the paper's tables: 3 repeats, all ablations and the judge measurement.


Durations depend on hardware; the on-screen estimate updates to your real speed as the first items finish.

  1. On the left, choose the profile and models, then press Start experiment.

  2. On the right you see a progress bar, the time remaining and the status of each step.

  3. Pause: stops after the current item finishes; Resume continues from where it left off. Stop: ends the experiment for good; finished steps are kept.

  4. When it is done, choose the report language with TR / EN and press Report or PDF. Zip downloads all results (Turkish and English reports, analysis, raw data) as a dated file.

If the computer sleeps or the app closes, the experiment is not lost: when the app restarts it resumes automatically from the item where it stopped. Even so, turning off Windows sleep mode is recommended for long experiments.



9. Troubleshooting

Symptom

Fix

After an update the interface looks old (old version label, new buttons missing)

Run Onar-Windows.bat in the new folder, then press Ctrl+F5 in the browser.

“Ollama not running” in the top bar

Start Ollama (the taskbar icon on Windows) or run Baslat-Windows.bat again.

Test generation is very slow; the model shows orange or “Model on CPU” in the GPU indicator

Check with GPU-Kontrol-Windows.bat. Install Ollama on the computer instead of in Docker, update the NVIDIA driver or choose the smaller model (7b).

The GPU indicator shows only the model share, no details

Detailed readings need an NVIDIA card. On an NVIDIA card, run Baslat-Windows.bat again; not supported on Mac.

The model shows “(not installed)” in the model list

Run ollama pull qwen2.5-coder:7b (or :14b) in a command prompt.

The code explanation stays in the other language

When the language is changed after a run, the explanation is translated by the model; Ollama must be running. Use the “Retry” button.

The experiment duration looks very long

That is normal; the Full profile takes 1.5–2 days. Verify the setup with the Trial profile first.

Docker does not start

Open Docker Desktop manually; on Windows check that WSL 2 is installed and virtualisation is enabled in the BIOS.


If the problem persists, a screenshot of the last lines of the Baslat-Windows.bat window usually shows the cause.

Comments


©2026 by Sevdanur Genc

bottom of page