Software Product Testing Glossary
Software testing can come in many forms across the product development process and the release cycle. Below is a list of the key terms.
Testing Approaches
White-Box: Verifies internal structures of a programme as opposed to functionality to the end-user (e.g. APIs, code coverage)
Black-Box: Examining functionality without knowledge of internal implementation (e.g. use case testing)
Grey-Box: Combination of white and black-box testing where testers have partial knowledge of the internal structure or code of an application
Software Testing Types (Function)
Unit testing (white-box): Software testing by which individual units of source code are tested to determine if they fit for use
Integration testing (grey-box): Testing the interaction between different modules or services to see if they work well together
System testing (End-to-end, black box, smoke, sanity, happy path, monkey): Testing the whole system against specified requirements
User acceptance testing (Alpha, beta, OAT): Formal tests to verify if a system satisfies business requirements and replicating user behaviour, the last phase of the software-testing process
Pre-Alpha: All activities during the software project before formal testing
Alpha testing: First cycle of software testing for performance, bugs and instabilities. The aim is to find as many defects as possible.
Beta testing: A feature-complete version ready to test with users, to trial with prospective customers and users in a real environment
a) Closed Beta: A small group of selected testers
b) Open Beta: A large group of testers who show an interest
End-to-end testing: Replicates user behaviour with the software in a complete application environment to verify user flows if work as expected
Smoke testing: Basic tests to check the basic functionality of an application. Useful after a new build.
Sanity testing: To verify that a newly added functionality or bug fix is working fine, usually done on a stable build
Happy path testing: Test an application successfully on a positive flow, the focus is on validation to find out if the software produces the expected output
Monkey testing: Carried out by a user to understand how random input values/data affect the software
Operational Acceptance Testing (OAT): System admin staff test the production environment to ensure it's working properly in a real-time environment
Software Testing Types (Non-Function)
Proof of Concept testing: Testing out an idea with users and potential customers
Usability testing (user) (Exploratory, accessibility, in-house proper use): Testing the overall usability, ease of use and functionality of software to find out if users can achieve their goal
User testing metrics: Task completion, critical errors, non-critical errors, error-free rate, time on task
Functional testing: Focusing on the business requirements of the application, focused on the output of an action
Security testing (Penetration): Performed by a team that can hack systems to check how secure the system is
Performance testing (Load, stress, endurance): Evaluate how a system performs under a particular workload to measure reliability, speed, scalability and response
Compatibility testing: To validate how software behaves run in different environments
Penetration testing: Security testing as an authorised cyberattack
Load testing: Stability and response time by applying load equal to or less than the designed number of users
Stress testing: Testing stability and response time by applying load more than the designed number of users
Endurance testing: Testing an application's stability and response time by applying continuous load for a longer period the verify it works fine
Exploratory testing: Informal testing performed by testing team to identify defects
Accessibility testing: To determine how accessible software is for people with disabilities