Getting Restarted With Software Testing: Part 2

Published: (December 26, 2025 at 06:53 AM EST)
2 min read
Source: Dev.to

Source: Dev.to

Functional Testing

Functional testing verifies that the application behaves as expected and that each feature works correctly. It is divided into several types.

Smoke Testing

Performed by developers and the QA team on initial builds to confirm that the basic functionalities are stable after each release.

Sanity Testing

Carried out by QA members to verify that the main functionality works once a build is considered stable, ensuring that new changes have not introduced regressions.

Regression Testing

Ensures that recent code changes have not adversely affected existing functionality.

Retesting

Focuses on verifying that specific defects fixed in a new build are indeed resolved.
Example: After fixing a bug that prevented adding, deleting, or modifying customers, the QA team retests those operations in the latest build.

Ad‑hoc Testing

Testing without formal test cases or requirements; the tester explores the application randomly.
Example: A tester manually checks various flows in a web‑shop application without predefined scripts.

Exploratory Testing

The tester explores the entire application, identifies possible scenarios, documents them, and uses this documentation for systematic testing.
Example: Exploring all user journeys in an online shopping application.

User Interface (UI) Testing

Validates the visual elements and basic interactions of the software’s user interface.

End‑to‑End Testing

Tests the complete workflow across all integrated modules, including data flow and external system interactions.
Example: An e‑commerce mobile app test that validates the entire purchase process—from front‑end browsing to payment, notifications, and admin tracking.


Non‑functional Testing

Non‑functional testing assesses attributes such as performance, security, reliability, and compatibility to ensure the software operates well under expected conditions.

Performance Testing

Evaluates speed, response time, and stability under varying loads.

  • Load Testing – Checks response under expected user load.
  • Stress Testing – Pushes the system beyond expected load to find breaking points.
  • Volume Testing – Measures how the application handles large volumes of data.

Security Testing

Ensures that user data are protected from unauthorized access and cannot be stolen or misused.
Example: Verifying credential validation during login for a web‑shop application.

Recovery Testing

Verifies how quickly the system recovers after failures such as network or power outages.

Compatibility Testing

Confirms that the software works across different browsers, devices, and operating systems.

  • Browsers: Chrome, Edge, Firefox, Safari
  • Devices: Mobile, Laptop, Desktop, Tablet
  • Operating Systems: Android, iOS, Windows, macOS

Example: Testing a web‑shop application on various browsers and devices.

Localization & Globalization Testing

Ensures the system supports multiple languages, currencies, and regional date/time formats.

  • Currency selection: USD, EUR, INR
  • Language translation: English → French
  • Date formats: MM/DD/YYYY (USA) vs. DD/MM/YYYY (UK)
Back to Blog

Related posts

Read more »

Test, don't (just) verify

Article URL: https://alperenkeles.com/posts/test-dont-verify/ Comments URL: https://news.ycombinator.com/item?id=46364973 Points: 79 Comments: 31...

Test, Don't (Just) Verify

Article URL: https://alperenkeles.com/posts/test-dont-verify/ Comments URL: https://news.ycombinator.com/item?id=46364973 Points: 3 Comments: 0...