What is software testing
November 14, 2018

Why Is Software Testing Important?

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.

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 >>

Back to top

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 >>

Back to top

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.
Back to top

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. This may include conditions for real user simulation testing. 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 test execution.

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 test reporting metrics:

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

Related resources:

Back to top

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

 

Back to top

More Testing Fundamentals

What Is Test-Driven Development?

What Is Test Automation?

5 Things to Consider When We Talk About Test Coverage

 

Back to top