STATIC TESTING &
TEST DESIGN
TECHNIQUES
SOAD ALWERFALY
what is static testing?
- Definition: Evaluating work products without executing the code.
- Goal: Find defects early (requirements, design, code) to reduce
cost and risk.
- Techniques: Reviews, walkthroughs, inspections, static analysis
tools.
STATIC VS. DYNAMIC TESTING
- Static: Reviews, walkthroughs, inspections, static analysis
tools. No execution.
- Dynamic: Executes software to validate behavior (functional,
performance, etc.).
- Complementary: Static catches defects early; dynamic
validates runtime behavior.
What Can Be Tested Statically
- Requirements, user stories, acceptance criteria.
- Design models, architecture docs, interfaces.
- Source code, configuration, scripts.
- Test cases, checklists, procedures.
- Contracts, standards, regulatory docs.
static testing techniques
• Informal Reviews
• Formal Reviews
• Technical Reviews
• Walk Through
• Inspection Process
• Static Code Review
informal review
- What: Unstructured peer feedback (comments, chats, quick read-
throughs).
- Participants: Author + peers.- Outputs: Suggestions, notes (often
not formalized).
- Relation to Static Testing: Yes—non-execution review of artifacts;
lowest formality, quick feedback.
formal review
- What: Planned, documented reviews with agenda,
roles, and exit criteria.
- Participants: Moderator, author, reviewers.
- Outputs: meeting minutes, defect list, action items.
- Relation to Static Testing: Yes—structured static
technique that improves traceability and
accountability.
technical review
- What: Expert review of technical content (architecture, design,
algorithms, code).
- Participants: Technical peers(not necessarily managers).
- Outputs: Defect findings, technology improvement proposals.
- Relation to Static Testing: Yes—focuses on technical quality
without running the product.
walkthrough
- What: Author-led tour of the work product; reviewers ask
questions.
- Participants: Author (presents), peers/stakeholders (ask/learn).
- Outputs: Clarified understanding, list of issues or questions.
- Relation to Static Testing: Yes—educational and defect-finding; less
formal than inspections.
inspection
- What: Highly formal review with defined steps and checklists.
- Roles: Moderator, author, reader, recorder, reviewers.
- Steps: Planning → Preparation → Meeting → Rework → Follow-up.
- Outputs: Logged defects, metrics (e.g., defect density).
- Relation to Static Testing :Basic static technique with the highest
accuracy and measurable results.
Static Code Review
- What: Examining source code without executing it (manual or tool-
assisted).
- Focus: Bugs, security, coding standards, complexity,
maintainability.
- Relation to Static Testing: direct static analysis of code elements.
WHEN TO USE WHICH?
- Early drafts or quick checks: Informal Review, Walkthrough.
- Deep technical validation: Technical Review.
- Compliance/governance milestones: Formal Review,
Inspection.
- Continuous code quality: Static Code Review (PRs, pipelines).
Benefits
- Early detection reduces rework costs.
- Improves readability, maintainability, and security.
- Enforces coding and documentation standards.
- Enhances team knowledge sharing.
- Typical findings: Blind spots, inconsistencies, dead code, security smells.
Advantages Of Static Testing
• Since static testing can start early in the life cycle so early feedback
on quality issues can be established.
• As the defects are getting detected at an early stage so the rework
(Review and rewrite) cost most often relatively low.
Disadvantages Of Static Testing
• It is time consuming and is done manually.
• Does not find vulnerabilities introduced in runtime environment.
• Limited number of trained staff to conduct static code analysis.
DEFECTS THAT ARE EASIER TO FIND AND FIX IN STATIC TESTING
[Link] defects
[Link] defects
[Link] defects
[Link] from standards
[Link] interface specification
[Link] defects
[Link] vulnerabilities
WHAT ARE TEST DESIGN TECHNIQUES?
- Definition: Systematic methods to derive test
conditions, cases, and data
- Goals: Increase coverage, reduce duplication,
and focus on risk
- Categories: Black-box, White-box, Experience-
based
BLACK-BOX TECHNIQUES (OVERVIEW)
- Focus on inputs/outputs and
external behavior
- No knowledge of internal code
needed
- Useful at system and acceptance
levels
EQUIVALENCE PARTITIONING (EP)
- Idea: Split inputs into partitions where system
behaves the same
- Types: Valid and invalid partitions
- Benefits: Fewer test cases, broad coverage
- Example: Age field 18–60
- Valid: [18–60]
- Invalid: (<18), (>60)
BOUNDARY VALUE ANALYSIS (BVA)
- Idea: Set of defects at boundaries
- Test min, min±1, max±1, max
- Example: Age 18–60 → 17, 18, 60, 61
DECISION TABLES
- Idea: Model complex business rules as conditions vs actions
- Steps: List conditions, reduce impossible ones, assign
actions
- Example: Loan approval based on income, credit score, debt
ratio
STATE TRANSITION TESTING
- Idea: Validate behavior via states and events
- Model: States, transformations, events, protection
conditions
- Tests: Valid transitions, invalid transitions, boundary
transitions
- Example: Login: Logged out → (enter valid creds) →
Logged in
USE CASE / SCENARIO TESTING
- Idea: End-to-end user flows
- Cover: Main path + alternate/exception paths
- Good for acceptance and high-risk business
flows
WHITE-BOX TECHNIQUES (OVERVIEW)
- Focus on internal structure and logic
- Often applied at unit/integration levels
STATEMENT AND DECISION COVERAGE
- Statement coverage: Execute each statement at least
once
- Decision (branch) coverage: Execute each true/false
outcome
- Aim: Increase confidence and reveal dead
code/unreached branches
CONTROL FLOW AND PATH TESTING
- Build control
- flow graphs (CFG)
- Target independent paths, loops (0, 1, many), and
error handling Experience
Based Techniques (Overview)
- Leverage tester knowledge, product history, and
heuristics
ERROR GUESSING
- Use past defects, checklists, and “what usually breaks”
- Examples: Nulls, empty inputs, special characters, timeouts
Exploratory Testing
- Concurrent learning, test design, and execution
- Use charters, timeboxes, and note-taking
- Great for discovering unknown risks and UX
issues
CHECKLIST- AND HEURISTIC-BASED
- Use standard tours (CRUD, interruptions, boundaries)
- Domain checklists (payments, authentication,
localization)