โ Back to Kit HomeTesting Basics
A simple introduction to software testing for beginners.
1. What is software testing?
Software testing is the activity of checking if a software product works the way it should.
When you test, you try to answer questions like:
- Does the feature do what the requirements say?
- Does it work for different users, devices, and browsers?
- What happens when the user does something unexpected?
- Are there bugs (defects) that we should fix before release?
Why testing matters:
- Bugs found early are cheaper to fix.
- Testing protects the users (and the company's reputation).
- Testers give the team confidence to release.
๐ก Remember: Testing cannot prove the software has zero bugs. Testing shows the software is good enough to use, based on what we checked.
2. Types of testing
2.1 Unit testing
- Tests one small piece of code (a function or method) alone.
- Usually written and run by developers, not testers.
- Very fast, very small.
2.2 Integration testing
- Tests if two or more parts work together.
- Example: does the login page talk correctly to the database?
2.3 System testing
- Tests the whole application as one complete system.
- Testers usually do this. It uses real user flows (end-to-end).
2.4 UAT (User Acceptance Testing)
- Real users or business people check if the software is ready for them.
- Usually the last step before go-live.
- Question: "Can the user do their job with this?"
2.5 Regression testing
- Re-run old tests after a change, to check that nothing old broke.
- Very common task for testers. Often the first thing to be automated.
2.6 Smoke testing
- A quick check that the most important features work.
- Done on a new build before deeper testing.
- Think: "Does the app even start? Can I log in?"
2.7 Sanity testing
- A narrow check of one specific area after a small fix.
- Example: developer fixed the password reset โ you test only password reset.
- Smoke = wide and shallow. Sanity = narrow and focused.
2.8 Exploratory testing
- Testing without a script โ you explore the app, learn it, and try to break it at the same time.
- Uses your experience and curiosity.
- Great for finding bugs that scripted tests miss.
3. SDLC โ Software Development Life Cycle
The SDLC is the life of a software project, from idea to release. Common phases:
- Requirements โ what should the software do?
- Design โ how will we build it?
- Development โ developers write the code.
- Testing โ we check the software. โ You are here!
- Release โ the software goes live.
- Maintenance โ fix bugs, add small changes.
๐ก Testers should join early (at the requirements phase), not only after development. Finding a wrong requirement early saves a lot of time.
4. STLC โ Software Testing Life Cycle
The STLC is the life of the testing work inside the SDLC:
- Requirement analysis โ understand what to test.
- Test planning โ decide scope, time, people, tools.
- Test case design โ write test cases.
- Environment setup โ prepare test servers, data, devices.
- Test execution โ run the tests, log results.
- Defect reporting โ write bug reports, retest fixes.
- Test closure โ summarize what was tested, lessons learned.
5. Test levels (from small to big)
| Level |
What is tested |
Who usually does it |
| Unit |
Single function |
Developers |
| Integration |
Parts working together |
Developers / Testers |
| System |
The whole application |
Testers |
| Acceptance (UAT) |
Business needs |
Users / Business / Testers |
6. Severity vs Priority
These two words are different, and junior testers often mix them up.
Severity = how BAD is the bug (technical impact)
- Critical โ the app crashes, data is lost, security hole.
- Major โ an important feature does not work.
- Minor โ small problem, workaround exists.
- Trivial โ typo, small UI issue.
Priority = how SOON should we fix it (business decision)
- High โ fix now, before release.
- Medium โ fix in the normal queue.
- Low โ fix when there is time.
Example combinations
| Bug |
Severity |
Priority |
Why |
| App crashes on login |
Critical |
High |
Everyone is blocked |
| Typo on the home page logo |
Trivial |
High |
Cheap to fix, very visible |
| Rare crash in an old admin page |
Major |
Low |
Almost nobody uses that page |
๐ก Testers usually set severity. The product owner or manager usually sets priority. But this can be different in each company โ ask your team.
7. Quick self-check
- What is the difference between smoke and sanity testing?
- Who usually does UAT?
- A bug breaks an important feature but on a page nobody uses. Is severity high or low? What about priority?
- What are the 7 phases of the STLC?
If you can answer these, you understand the basics. ๐