3.1.Static Testing Basics
In contrast to dynamic testing, in static testing the software under test does not need to be executed.
Code, process specification, system architecture specification or other work products are evaluated
through manual examination (e.g., reviews) or with the help of a tool (e.g., static analysis). Test objectives
include improving quality, detecting defects and assessing characteristics like readability, completeness,
correctness, testability and consistency. Static testing can be applied for both verification and validation.
Testers, business representatives and developers work together during example mappings, collaborative
user story writing and backlog refinement sessions to ensure that user stories and related work products
meet defined criteria, e.g., the Definition of Ready (see section 5.1.3). Review techniques can be applied
to ensure user stories are complete and understandable and include testable acceptance criteria. By
asking the right questions, testers explore, challenge and help improve the proposed user stories.
Static analysis can identify problems prior to dynamic testing while often requiring less effort, since no test
cases are required, and tools (see chapter 6) are typically used. Static analysis is often incorporated into
CI frameworks (see section 2.1.4). While largely used to detect specific code defects, static analysis is
also used to evaluate maintainability and security. Spelling checkers and readability tools are other
examples of static analysis tools.