---
marp: true
theme: default
paginate: true
title: "01 Testing Foundations"
---

# What is Testing?

- Testing evaluates software quality and risk
- Testing provides information, not absolute proof
- Quality includes functional and non-functional attributes

References: https://www.istqb.org/certifications/certified-tester-foundation-level | https://iso25000.com/index.php/en/iso-25000-standards/iso-25010

---

# Quality Attributes (ISO 25010)

- Key attributes include performance, security, maintainability
- Functional correctness is only one part of quality
- Test strategy should map to target attributes

References: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010

---

# Testing Principles (ISTQB-oriented)

- Early testing saves cost and rework
- Defects cluster in a small number of modules
- Tests wear out and need regular review

References: https://www.istqb.org/certifications/certified-tester-foundation-level

---

# Static vs Dynamic Testing

- Static: reviews, walkthroughs, linters, SAST
- Dynamic: executing software with test cases
- Both are complementary and should coexist

References: https://www.istqb.org/certifications/certified-tester-foundation-level | https://owasp.org/www-project-top-ten/

---

# Test Levels and Types

- Levels: component, integration, system, acceptance
- Types: functional, non-functional, structural
- Select level/type based on risk and feedback speed

References: https://martinfowler.com/articles/practical-test-pyramid.html | https://www.selenium.dev/documentation/

---
