Chapter 1 - Fundamentals of Testing Flashcards
What is testing?
It is a process withinn the software development lifecycle that evaluates the quality of components or a system and their related work products (test objects). It assesses software quality and helps reduce risk of failure.
Testing is NOT just executing tests!
What is a Test Object?
It is the specific work product that is to be tested.
What can be a Test Object?
It can be the product (code - component testing or the system - System Testing)
or
it can be intermediate work products such as requirements specifications, architectural specifications, test cases, etc.
Before any Test it has to be clear what the Test Object is.
What is Static Testing?
Happens before we execute or test any code. It includes reviews and static analysis.
What is Dynamic Testing?
Executing code to analyze its behaviour.
It uses different types of tests techniques and test approaches to derive test cases.
What is Validation?
Confirmation through examination that the work product meets the needs of users and other stakeholders
Checks for functionality
“Was the correct product developed?”
What is Verification?
Checking if part of the code or the system align with the specified requirements.
“Was the product developed correctly”
What is a Test Objective?
It is the purpose of the test.
Can vary depending on the current requirements, which testing phase we are in, and other factors.
It is important to clarify the objective before initiating other testing activities.
Example:
Is the focus set on speed of delivery? Are we focusing finding defects? Are we focusing on Validation? Are we focusing on Compliance? etc.
What do we understand as Quality in the realm of testing?
It is the degree to which a work product satisfied the specified and implied needs of the stakeholders
What is Coverage and what is it used for?
To have measurable objectives Coverage is used.
It shows the degree to which specified coverage items have been exercised in a specific test suite.
In software testing, coverage refers to the extent to which the software’s functionality, code, or requirements are tested. It measures how much of the application is exercised during testing, helping ensure that critical parts of the system are verified.
The result is measured in percentage.
What is a Coverage Item?
A coverage item is a specific work element or aspect of the software that is being measured for coverage. Depending on the type of coverage, a coverage item can be code, code functions, code branches, requirements, execution paths, test cases
Examples:
Code Coverage
Definition:
Measures how much of the source code is executed when tests run.
Suppose a function contains 10 lines of code, but tests only execute 8 of them.
Coverage = (8/10) × 100% = 80% statement coverage.
or
Requirement Coverage
Definition:
Ensures that all documented requirements have test cases covering them.
Coverage Items:
Software requirements or user stories.
A banking application has 10 requirements, but test cases exist for only 8.
Coverage = (8/10) × 100% = 80% requirement coverage.
What is a coverate item according to ISTQB definition?
an attribute or combination of attributes derived from one or more test conditions by using a test technique
when talking about coverage items they need to be specified
Is Debugging testing?
No!
Testing can only identify failures. Debugging is then performed by programmers. Then the fixes are tested again.
What is Regression testing?
A type of change-related testing to detect whether defects have been introduced or uncovered in unchanged areas of the software.
This is done after defects in other areas of the product have been fixed. Fixes in some areas can lead to new errors in previously functioning areas.
Typical test obejctives are…
Evaluating…
Causing…
Ensuring…
Reducing…
Verivying…
Verifying…
Providing…
Building…
Validating…
- Evaluating work products (requirements, user stories, designs, code, etc)
- Causing failures, finding defects
- Ensuring required coverage of test object
- Reducing risk level of inadequate software quality
- Verifying if specified requirements have been fulfilled
- Verifying compliance of test objects with laws, contracts, regulations
- Providing information to stakeholders to make informed decisions
- Building confidence in quality of test object
- Validating completness of test object and if it works as needed
What is Confirmation Testing?
Checks if the fixes (debugging) have resolved the problem. Preferably done by the same tester who performed the initial test.
Failure VS Defect
Failures are triggered during testing and are caused by defects in the test object.
The tester triggers failures, the programmer finds the defect and fixes it.
Why is testing necessary?
Helps achieve agreed upon test objectives within a set scope, time, quality and budget.
Helps identify defects in software.
How does testing contribute to success?
- provides cost effective means of detecting defects early on
- provides means of evaluating quality of test objects at various stages in the SDLC & informs further decision making
- considers the stakeholder’s needs throughout the SDLC and provides indirect representation for users
- ensures that contract requirements, legal requirements, and regulatory compliance is met
What is the difference between Testing (Quality Control) and QA (Quality Assurance)
Testing: product oriented form of quality control, corrective approach, activity focus lies on achieving quality
QA: process oriented, preventitive approach, focus lies on defect prevention, implementing and improving processes that will generate good products
Are test results used by QA or testing or both?
Both!
- Testing uses them to fix defects
- QA use them to evaluate how well the development and test process is performing
Give example for Error, Defect, Failure
Humans make errors (mistakes) which produce defects (faults, bugs) which may result in failures.
Where can defects be found?
documentation, requirements, test scripts, source code, supporting work products
What happens if defects are not caught early in the SDLC?
They often lead to defective work products later in the lifecycle.