Test Types
1. Functional Testing
Verifies software functions as intended
Examples of black box testing
Black box tester doesn’t need to know any of the internals. Just need to know based on these variables and inputs, this is how the system should behave and respond.
Component:
- How compound interest is calculated
Integration:
- How information is captured in the UI and passed to the backend
- Perhaps the customers credit score is fetched
System:
- How account holders apply for a line of credit
Acceptance:
- How does the banker handle an application for a line of credit
2. Non-Functional Testing
How does the system perform under different conditions, e.g:
- Performance
- Security
- Usability
- User Experience
- Accessibility
- Reliability
ISO 25010 defines model for software product quality
Perf test to determine the length of time to see how long the backend takes to respond to a line of credit request.
Integration:
- Buffer overflow vulnerabilities due to how data is sent to the API
- Essentially, can we make the system crash, become vul
System Test:
- Portability test to check whether the presentation layer works correctly on all desktop browsers and all environments.
- Can the user still do what they need to do with the software, execution environment, and environmental factors.
- Reliability tests designed to see how the system performs under different conditions, e.g. line of credit application but Experian is down. Does it 404, crash, hang?
Acceptance:
- Assess usability for people with disabilities who are applying for an increase in the line of credit.
ISO/IEC 25010 provides a classification for these non-functional characteristics:
- Performance efficiency: response time, resource utilization, scalability
- Compatibility: Ability of an application to operate with other products, components, and function across different environments, devices, and browsers.
- Usability: How easy it is to use and meets user needs and expectations
- Reliability: Ability to function without failure in a specified time period under specified conditions
- Security: Protection of data and information within the system. Identifying weaknesses that could make a system vulnerable.
- Maintainability: How easy it is to modify and update. Code and architecture quality, documentation, and testability that ensure software is easy to maintain.
- Portability: Where and how well a system can run in different environments.
EXAM: Will get asked about the definitions of a couple of these
3. White-Box Testing
Examines internal code and structure of an application. Typically done by a Developer or a QA Engineer because you’re interacting with the application at the code level.
Must understand the codebase, framework, architecture, and associated infrastructure.
Black-Box Testing
Internals are not known to the tester.