What is software testing
November 14, 2018

What Is Software Testing?

Test Management
Application Lifecycle Management

In simple terms, software testing is the process of checking that your product performs as expected. It’s a critical step in software engineering.

You can test software to verify many things. This includes whether:

  • Functionality works as expected.
  • Requirements are fulfilled.
  • The software runs without producing bugs.

Why Is Software Testing Important?

Software testing is important for producing quality software — without defects.

Testing software improves performance. It increases customer satisfaction. It helps you avoid failures — which minimizes the risk of customers finding errors in the software. And it improves the long-term success for your software.

Testing does take considerable time and resources. But testing your application early on can help you save on costs in the long-term. After all, defects cost less when fixed earlier in the development process.

Every development team needs to have a software testing process. But testing methods may vary. The needs for Agile testing teams are different from teams with serious compliance requirements.

That’s why it’s important to test the right things first.

Get QA testing tips >>

Software Testing Basics

Software testing has two purposes. Verification. And validation.

Verification confirms that each function works properly.

Validation confirms that the software fulfills requirements.

Both verification and validation are important. And every type of software test you run should either verify or validate the software.

Explore different types of software testing >>

7 Software Testing Principles

There are seven software testing principles used by testers everywhere.

Here’s a quick summary:

  1. Testing reveals bugs.
  2. You can’t test everything.
  3. Testing early reduces the cost of bugs.
  4. Most reported defects come from the same functionality.
  5. Review and update tests regularly to avoid the pesticide paradox.
  6. Different types of software require different types of testing.
  7. Error-free doesn’t mean ready-to-ship.

The Software Testing Lifecycle (STLC)

The software testing lifecycle (STLC) is the sequence of testing activities throughout development.

Here’s how the typical software testing lifecycle works.

1. Requirements Review

Every test should come from a requirement. And every requirement should have a test.

That’s why it’s important that development teams do thorough requirements reviews. Stakeholders — including developers, testers, and managers — should be on the same page about what you’re going to build.

After all, it’s much easier to know what to test when you know what’s being built — and why.

More on requirements reviews >>

2. Test Planning

Preparing a test plan will help you align testing efforts with requirements.

Your test plan should include:

  • What you’re going to test.
  • How you’ll test it.
  • Who will do the testing.

Of course, test plans may vary in depth based on your team’s needs.

3. Test Cases

Once you have a test plan, you’ll need to create test cases.

A test case should detail how you’re going to test a particular requirement. It should also include a step-by-step process for running the test. Your test case may also indicate what type of test you’ll be running (e.g., manual vs. automated testing).

Test cases should also be prioritized, so you test the most important things first. And individual test cases may be part of a test suite.

4. Test Environment Setup

Your test environment determines the software and hardware conditions that will be used for your test. Depending on your team, this task may be done by developers or it may be done by testers. You can even set up a test environment as you create test cases.

5. Test Runs

When your test environment is ready, you can start running your tests.

Tests will either pass or fail. If a test fails, bugs found in the test should be documented (and connected to the requirement that was tested). You should run the test again — as changes are made to your software — to verify that the bug has been fixed.

Creating a test matrix — or a requirements traceability matrix — will help you keep track of the status of testing.

6. Test Reporting

You may need to report on test results to your team — or to other stakeholders within your company.

Here are some common testing metrics to report on:

  • Test velocity
  • Test status
  • Test results
  • Overall test summary

Do Software Testing the Right Way

There’s a lot you need to do to effectively test software. And that’s why it’s important to have the right software testing tools.

Learn more about software testing.

Software Testing Guide

See for yourself how the right testing tools, such as Helix ALM, make a difference.

Try Testing in Helix ALM