> For the complete documentation index, see [llms.txt](https://qatesting.gitbook.io/qa/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://qatesting.gitbook.io/qa/manual-testing/types/black-box-testing/non-functional-testing.md).

# Non Functional Testing

**Non-Functional Testing** is defined as a type of Software testing to check non-functional aspects (performance, usability, reliability, etc) of a software application. It is designed to test the readiness of a system as per nonfunctional parameters which are never addressed by functional testing.

<div data-full-width="true"><figure><img src="https://www.guru99.com/images/1/022218_1114_WhatisNonFu2.png" alt=""><figcaption></figcaption></figure></div>

## Type of Software Testing <a href="#type-of-software-testing" id="type-of-software-testing"></a>

In general, there are three testing types

* **Functional**
* **Non – Functional**
* **Maintenance**

<div data-full-width="true"><img src="https://www.guru99.com/images/1-2015/012715_0453_NonFunction4.png" alt="Non-functional Testing" height="348" width="624"></div>

### Examples

#### 🧪 **Non-Functional Testing**

Non-functional testing is a type of testing that focuses on verifying the performance, reliability, usability, security, and other non-functional aspects of a software system.&#x20;

### Sample Test Cases of Non-Functional Testing

<table data-full-width="true"><thead><tr><th width="146.33333333333331">Test Case #</th><th width="523">Test Case</th><th>Domain</th></tr></thead><tbody><tr><td>1</td><td>Application load time should not be more than 5 secs up to 1000 users accessing it simultaneously</td><td>Performance Testing</td></tr><tr><td>2</td><td>Software should be installable on all versions of Windows and Mac</td><td>Compatibility Testing</td></tr><tr><td>3</td><td>All web images should have alt tags</td><td>Accessibility Testing</td></tr><tr><td>4</td><td>The system should be able to handle a large number of concurrent users without slowing down or crashing</td><td>Load Testing</td></tr><tr><td>5</td><td>The system should be able to handle a large amount of data without slowing down or crashing</td><td>Stress Testing</td></tr><tr><td>6</td><td>The system should be able to handle peak loads without slowing down or crashing</td><td>Peak Load Testing</td></tr><tr><td>7</td><td>The system should be able to recover from failures and errors quickly and gracefully</td><td>Recovery Testing</td></tr><tr><td>8</td><td>The system should be able to handle different types of network conditions, such as slow or unstable connections</td><td>Network Testing</td></tr><tr><td>9</td><td>The system should be able to handle different types of input, such as invalid or unexpected data</td><td>Input Validation Testing</td></tr><tr><td>10</td><td>The system should be able to handle different types of output, such as large or complex reports</td><td>Output Validation Testing</td></tr><tr><td>11</td><td>The system should be able to handle different types of security threats, such as hacking or malware attacks</td><td>Security Testing</td></tr><tr><td>12</td><td>The system should be able to handle different types of authentication and authorization scenarios, such as single sign-on or multi-factor authentication</td><td>Authentication and Authorization Testing</td></tr><tr><td>13</td><td>The system should be able to handle different types of user interfaces, such as desktop or mobile devices</td><td>User Interface Testing</td></tr><tr><td>14</td><td>The system should be able to handle different types of languages and locales, such as English or Spanish</td><td>Internationalization and Localization Testing</td></tr><tr><td>15</td><td>The system should be able to handle different types of environments, such as production or development</td><td>Environment Testing</td></tr><tr><td>16</td><td>The system should be able to handle different types of hardware, such as servers or mobile devices</td><td>Hardware Compatibility Testing</td></tr><tr><td>17</td><td>The system should be able to handle different types of software, such as operating systems or databases</td><td>Software Compatibility Testing</td></tr><tr><td>18</td><td>The system should be able to handle different types of performance metrics, such as response time or throughput</td><td>Performance Metrics Testing</td></tr><tr><td>19</td><td>The system should be able to handle different types of data formats, such as CSV or XML</td><td>Data Format Testing</td></tr><tr><td>20</td><td>The system should be able to handle different types of integrations, such as APIs or third-party systems</td><td>Integration Testing</td></tr></tbody></table>
