Terminologies and Concepts
- International Software Testing Qualifications Board (ISTQB) is a global certification body that provides standardized qualifications in software testing. The ISTQB certification is widely recognized in the software testing industry and offers a structured career path for testers. The certification scheme includes different levels:
- Foundation Level
- Advanced Level
- Expert Level
- This is the entry-level certification that covers the fundamentals of software testing, including testing processes, testing throughout the software lifecycle, static techniques, test design techniques, and test management.
- For more experienced testers, this level provides a deeper understanding of testing topics like test analysis, test design, test management, and test automation.
- The highest level, designed for senior professionals who want to specialize in areas like improving the testing process, test automation, and security testing.
Test Basis
-
The Test Basis refers to the body of knowledge or source documentation that serves as the foundation for test cases and test activities. It's essentially what you use to derive your test conditions and test cases. The test basis can include:
-
Requirements Documentation: Specifications of what the software should do, including functional and non-functional requirements.
-
Design Documents: System and architectural designs that outline how the system will be built, which may include class diagrams, flowcharts, etc.
-
User Stories: For agile projects, user stories and acceptance criteria provide a test basis.
-
Risk Analysis Reports: Risks associated with the project or product that may guide where to focus testing.
-
Code: In the case of white-box testing, the actual code or algorithms can be the test basis.
-
Standards or Regulations: In some industries such as finance or healthcare specific regulations or standards can serve as the test basis.
-
Purpose of Test Basis
-
The test basis helps testers determine what to test by providing input for:
-
Identifying test conditions.
-
Designing test cases.
-
Ensuring that the software is verified against predefined criteria.
-
Test Condition
-
A Test Condition is an item or an aspect of the software that can be tested, and it is derived from the test basis. A test condition can be anything that can be verified or validated, including functional aspects ie: A Login Function and Non-Functional aspects ie: Performance or Security.
-
Test conditions are used to guide the creation of test cases and can be:
-
Specific functionality: For example, testing whether the "Submit" button works correctly on a form.
-
Quality attributes: Such as verifying that the system is performant under heavy load.
-
Features or user actions: Checking if a user can successfully create an account.
-
Risk-based conditions: Derived from risks identified in the test basis, focusing on areas where defects would have a high impact.
-
Example of Test Conditions for a Login Feature
- Functional test conditions
- Non-functional test conditions
- Verify that valid credentials allow login.
- Verify that incorrect credentials trigger an error message.
- Check that the password is masked.
- Ensure that the login happens within a certain time. ie: 2 seconds.
- Verify security measures like blocking after multiple failed login attempts.
Relationship Between Test Basis and Test Conditions
-
Deriving Test Conditions from Test Basis: The test basis provides the requirements, design, or specifications, and test conditions are created from these. For example: If the requirement specifies that the system must support multiple user logins, the test conditions could focus on testing login functionality under different scenarios.
-
Test Basis as the Source of Truth: Test conditions ensure that the aspects specified in the test basis are thoroughly verified. ie: Requirements.