# 0-3 Recap
###### tags: `ISTQB` `Software Testing` `SQA`
## Introduction
- *Software Testing: An ISTQB-BCS Certified Test Foundation guide 3rd edition*
- Relates to the 2010 version of the **ISTQB Certified Tester Foundation Level** syllabus.
- References to ISO/IEC/IEEE 29119 Software Testing:
- ISO/IEC 29119-1: Concepts & definitions
- ISO/IEC 29119-2: Test processes
- ISO/IEC 29119-3: Test documentation
- ISO/IEC 29119-4: Test techniques
- ISO/IEC 29119-5: Keyword driven testing
## 1 THE FUNDAMENTALS OF TESTING
### Why testing is needed?
- **An error** (or mistake) leads to **a defect**, which can cause **an observed failure**. Cause consequences:
- Harm people, companies, the envirnment
- Cost money, time, business reputation, life
- Keep software under control.

### What testing is?
- Debugging and Testing
- Static testing and dynamic testing
### What testing does?
- Ensure
- Examined
- Reported
### General testing principles
- Testing shows the presence of bugs
- Exhaustive testing is impossible
- Consider both ‘risk’ and ‘priorities’
:::info
:star: **Definition of Exhaustive testing**
A test approach in which all possible data combinations are used. This includes implicit data combinations present in the state of the
software/data at the start of testing.
:::
- Resources triangle

- Early testing

- Defect clustering
- The application of the Pareto principle to software testing: approximately 80% of the problems are found in about 20% of the modules.
- The pesticide paradox
- Running the same set of tests continually will not continue to find new defects.
- Any regression test set needs to change to reflect business needs, and what are now seen as the most important risks.
- Testing is context dependent
- Absence of errors fallacy
- The fact that no defects are outstanding is not a good reason to ship the software
### Fundemental Test Process
```graphviz
digraph fundemental_test_process{
splines=ortho
node[
shape=box,
fixedsize=true,
width=2,
fontsize=12
];
"Test planning and control"
->"Test analysis and design"
->"Test implementation \nand execution"
->"Evaluating exit criteria \nand reporting"
->"Test closure activities";
}
```
### The psychology of testing
## 2 LIFE CYCLES
### V-model

- Test level
### Iterative

### Test Type
- Functional testing.
- Non-functional testing.
(Security 比較common的是不是有機會屬於此類,例如要符合某一種等級的入侵)
- Structural testing.
- Testing after code has been changed.
:::danger
:question: security是functional or non-functional?
:::
### Maintenance testing
## 3 STATIC TESTING
- Review: document
- a requirement specification, a piece of code, a test plan/test case
- carried out by reading
- Static analysis:
- code
- best carried out using tools
### Review
- Stages of a formal review

- Formality of reviews

## Functional Vs Non-Functional Testing:
以下是搜尋到關於Functional testing 跟 non-Functional testing的差別,放在這裡參考
reference to https://www.guru99.com/functional-testing.html

