Non-functional testing

From HandWiki
Revision as of 02:06, 12 March 2026 by CodeMe (talk | contribs) (simplify)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: Testing the qualities as opposed to the correctness of software



Non-functional testing is testing software for its non-functional requirements: the way a system operates, rather than specific behaviors of that system. [1] This is in contrast to functional testing, which tests against functional requirements that describe the functions of a system and its components.

Types of non-functional testing

Accessibility testing

Accessibility testing is a non-functional testing activity that verifies whether a system, website, or application can be perceived, operated, and understood by people with a wide range of disabilities and whether it meets objective accessibility criteria such as the Web Content Accessibility Guidelines, WCAG success criteria. It typically combines automated checks, to detect obvious technical failures, manual inspection, to evaluate semantic structure, keyboard navigation, and ARIA usage, and human usability testing with people who have disabilities to assess real-world effectiveness and usability. Many government and organizational web standards now require WCAG conformance and explicitly treat accessibility as a mandatory non-functional quality attribute of public-facing digital services. Practical guides and industry overviews describe accessibility testing as a specialized subset of usability and non-functional testing that focuses on legal conformance, inclusive design, and measurable success criteria rather than functional feature behaviour alone.* [2] [3]

Baseline testing

Baseline testing is a non-functional activity that establishes a measured reference for key quality attributes (for example, response time, throughput, resource usage, error rates, and availability) against which future changes, releases, or configurations are compared. It usually occurs early in a release cycle or after a major environment change and combines controlled synthetic tests (benchmarks, scripted workloads, profiling) with monitored production observations to capture representative operating conditions. The baseline results are recorded as pass/fail thresholds, performance budgets, or trend series so regressions, capacity drift, and configuration-induced degradation can be detected quickly and triaged. Best practice is to store baseline test artifacts (test scripts, input datasets, environment definitions, and raw metrics) alongside the release so reruns are reproducible and comparisons remain meaningful across time.[4] [5]

Compliance testing

Documentation testing

Endurance testing

Load testing

Load testing a railroad bridge, 1883
Load testing is the process of putting demand on a structure or system and measuring its response.

Localization testing

Pseudolocalization (or pseudo-localization) is a software testing method used for testing internationalization aspects of software. Instead of translating the text of the software into a foreign language, as in the process of localization, the textual elements of an application are replaced with an altered version of the original language. For example, instead of "Account Settings", the text may be altered to display as "!!! Àççôûñţ Šéţţîñĝš !!!".[6]

Reliability testing

Recovery testing

In software testing, recovery testing is the activity of testing how well an application is able to recover from crashes, hardware failures and other similar problems.

Software performance testing

In software quality assurance, performance testing is in general a testing practice performed to determine how a system performs in terms of responsiveness and stability under a particular workload.[7] It can also serve to investigate, measure, validate or verify other quality attributes of the system, such as scalability, reliability and resource usage.

Security testing

Security testing is a process intended to detect flaws in the security mechanisms of an information system and as such help enable it to protect data and maintain functionality as intended.[8] Due to the logical limitations of security testing, passing the security testing process is not an indication that no flaws exist or that the system adequately satisfies the security requirements.

Scalability testing

Scalability testing is the testing of a software application to measure its capability to scale up or scale out in terms of any of its non-functional capability.

Stress testing

Usability testing

Volume testing

Volume testing belongs to the group of non-functional tests, which are a group of tests often misunderstood and/or used interchangeably. Volume testing refers to testing a software application with a certain amount of data to assert the system performance with a certain amount of data in the database. Volume testing is regarded by some as a type of capacity testing,[9] and is often deemed necessary as other types of tests normally don't use large amounts of data, but rather typically use small amounts of data.[9] It is the only type of test which checks the ability of a system to handle large pools of data.[10] For example, the test can be used to stress the database to its maximum limit.[11] While the amount can, in generic terms, be the database size, it could also be the size of an interface file that is the subject of volume testing. For example, if one wants to volume test an application with a specific database size, the database will be expanded to that size and the application's performance will then be tested on it. Another example could be when there is a requirement for the application to interact with an interface file (could be any file such as .dat, .xml); this interaction could be reading and/or writing on to/from the file. A sample file of an intended size can then be created and used to test the application's functionality in order to test the performance.

See also

References

  1. "non-functional testing - ISTQB Glossary". International Software Testing Qualifications Board. https://glossary.istqb.org/en_US/term/non-functional-testing. 
  2. Lazar, Jonathan; Goldstein, Daniel; Taylor, Anne Marie (2015). Ensuring Digital Accessibility through Process and Policy. Elsevier. ISBN 978-0128006467. 
  3. Yesilada, Yeliz; Harper, Simon (2019). Web Accessibility: A Foundation for Research. Springer. ISBN 978-1447174400. 
  4. "Baseline Testing". GeeksforGeeks. 2025-07-23. https://www.geeksforgeeks.org/software-testing/baseline-testing/. 
  5. "Baseline Testing: What is it, and Why is it Important?". Testsigma. 2025-06-26. https://testsigma.com/blog/baseline-testing/. 
  6. Benjamin Zadik (12 April 2013). "Pseudolocalization: Prepare your app for localization". http://www.ibabbleon.com/copywriter-translator/2013/04/pseudolocalization-how-it-helps-prepare-your-app-for-localization/. Retrieved 13 April 2013. 
  7. Cite error: Invalid <ref> tag; no text was provided for refs named tha12
  8. M Martellini, & Malizia, A. (2017). Cyber and chemical, biological, radiological, nuclear, explosives challenges : threats and counter efforts. Springer.
  9. 9.0 9.1 Teststrategi for ytelsestesting - IKT-testing i Helse Nord
  10. Volume Testing in Software Testing: Definition & Examples | PFLB
  11. Volume Testing Tutorial: Examples and Volume Testing Tools

Further reading

  • Myers, Glenford J. (2011). The Art of Software Testing (3rd ed.). Hoboken, NJ: John Wiley & Sons. ISBN 978-1118031964. 
  • Kaner, Cem; Falk, Jack; Nguyen, Hung Quoc (1999). Testing Computer Software (2nd ed.). New York: John Wiley & Sons. ISBN 978-0471358466. 
  • Beizer, Boris (1995). Software Testing Techniques (2nd ed.). Boston: International Thomson Computer Press. ISBN 9788177222609. 
  • ISO/IEC 25010:2011 Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — System and software quality models, International Organization for Standardization, 2011 
  • IEEE Standard for Software and System Test Documentation (IEEE 829-2008), Institute of Electrical and Electronics Engineers, 2008 
  • Black, Rex (2009). Advanced Software Testing – Vol. 2: Guide to the ISTQB Advanced Certification as an Advanced Test Manager. Santa Monica, CA: Rocky Nook. ISBN 9781933952192. 
  • Graham, Dorothy; Van Veenendaal, Erik; Evans, Isabel; Black, Rex (2008). Foundations of Software Testing: ISTQB Certification. London: Cengage Learning. ISBN 978-1844809899. 
  • Bertolino, Antonia (2007). "Software Testing Research: Achievements, Challenges, Dreams". IEEE Computer Society. pp. 85–103. doi:10.1109/FOSE.2007.25. 
  • Li, Zhi; Harman, Mark; Hierons, Robert M. (2007). "Search Algorithms for Regression Test Case Prioritization". IEEE Transactions on Software Engineering 33 (4): 225–237. doi:10.1109/TSE.2007.38. 

Template:Software testing