Skip to content
QA Knowledge Hub

ShopLite: a free buggy web app to practise software testing

A small online shop with 30 deliberate bugs in its pages and API. Run it on your own computer with one command, find the bugs, and automate the checks. Free and open source.

Run it only on your own computer. It is full of bugs on purpose and must not be put on the public internet.

Run it in one command

Unzip the download, open a terminal in the folder, then use either way:

# With Docker
docker compose up --build

# Or with Node.js 20 or newer
npm install
npm start

Then open http://localhost:3001. A demo account ([email protected]) is on the login page.

What you get

Where the bugs are

AreaBugsWhat to look at
Validation6What the forms and API accept that they should not
Status codes5Responses that say the wrong thing about what happened
Authentication and access5Logins, tokens, roles and who can see whose data
Pagination, sorting and search5Lists that skip, repeat, miscount or sort oddly
Calculations5Discounts, tax, shipping and stock
User interface4Things the page shows that do not match what happened
Total30

How to use it

  1. Explore for 30 minutes as a customer and note anything odd.
  2. Write test cases for each feature. Use the login page test cases as a model.
  3. Test the API with Postman or code: bad input, no token, someone else's id.
  4. Report what you find with the bug report template.
  5. Automate the checks and run them against the fixed build and the buggy one.

Want the answers and a finished project?

The Portfolio Project Kit has the full bug list with reproduction steps, a test plan, test cases, a complete Playwright and API framework that catches every bug, and a guide to explaining the project in interviews.

See the kit

Questions

Is ShopLite really free?

Yes. The app, its README and starter test projects (TypeScript and Python) are free and open source under the MIT licence. Only the full answer key and the finished test framework are in the paid Portfolio Project Kit.

Where should I run it?

On your own computer only. It contains deliberate bugs, some security-related by design, so it must not be put on the public internet. The Docker setup binds it to localhost.

How do I know when I have found all the bugs?

The README tells you there are 30 in six areas. You can also run the app in a fixed mode (BUGS=none) and check that your tests pass there and fail on the normal build. The kit has the full list with reproduction steps.

Do I need to know programming?

No, to explore and report bugs by hand. To automate the checks you will want basic Java, Python or JavaScript. The starter projects use Playwright with TypeScript, and pytest with Python.