What is nonfunctional testing
November 20, 2018

What Is Nonfunctional Testing?

Test Management
Application Lifecycle Management

Nonfunctional testing verifies the way software works — and how well it works.

Nonfunctional testing is just as important as functional testing. Both ensure that your product is working as it should.

But nonfunctional testing checks things that aren’t covered in functional tests.

Types of Nonfunctional Testing

There are several different types of nonfunctional tests. Here are the most common ones.

Performance Tests

Performance testing checks how well software components work. These tests find issues in software design and architecture performance.

This is typically done by:

  • Measuring response times
  • Identifying bottlenecks
  • Locating failure points

Performance tests ensure software quality. They validate that it’s fast, scalable, stable, and reliable.

Load Tests

Load testing checks how the software behaves under normal and peak conditions. This is done to determine how much work the software can handle before performance is affected.

You can do load tests by running multiple applications simultaneously, subjecting a server to a lot of traffic, or downloading a large quantity of files.

Load tests are used to ensure fast and scalable software.

Stress Tests

Stress testing checks how the software behaves under abnormal conditions. This determines the limit at which the software will break.

It’s important to find out what happens when the system is under stress. Does the right error message display? Does the system fail? How will it recover?

Stress tests are used to analyze what happens when a system fails. This ensures that software is recoverable, stable, and reliable.

Volume Tests

Volume testing finds out what happens to system performance when a huge volume of data is added to the database. This is done to identify what problems may occur with increasing volumes of data. It’s also known as flood testing.

You can use volume tests to check if there’s any data loss, warning or error messages, or data storage issues.

Volume tests verify that systems respond as expected to certain volumes of data. This is important for ensuring performance and stability.

Security Tests

Security testing checks software to find flaws that may compromise data. The goal of security testing is to prove that an attack won’t happen.

Common security tests include:

  • Vulnerability scans
  • Security scans
  • Penetration testing
  • Risk assessment
  • Security audits
  • Posture assessment
  • Ethical hacking

Running these tests is important to developing a safe, stable system.

Upgrade and Installation Tests

Upgrade testing and installation testing verify that software will work properly on everyone’s machines. So, upgrade testing is done for existing users. And installation testing is done for new users.

Both of these types of functional tests are important for user satisfaction.

More on upgrade vs. installation testing >>

Recovery Tests

Recovery tests determine how quickly software can rebound after a crash or failure. This is done by forcing the system to fail.

This type of testing is done to see what happens:

  • To the software if you unplug the hardware.
  • If you disconnect from the network during a data transfer.
  • When you restart the system unexpectedly.

Recovery tests are important to improving software performance.

More Types of Software Testing

 

Tools Used for Nonfunctional Testing

Nonfunctional tests are typically done with different tools. But no matter how which tool(s) you use, it’s important to have visibility across all of your testing efforts.

Helix TCM is a test management tool that gives you visibility across testing, from functional through nonfunctional. Plus, it’s part of Helix ALM, so you’ll also be able to connect your tests to your requirements.

 

Examples of Testing in Helix ALM