chapter 3: static testing Flashcards
Testing that involves the execution of the test item
Dynamic testing
A condition that deviates from expectation.
Anomaly
A type of review that follows a defined process with a formally documented output.
Formal review
- A type of review that does not follow a defined process and has no formally documented output
Informal review
A type of formal review that uses defined team roles and measurement to identify defects in a work product, and improve the review process and the software development process.
Inspection
A type of STATIC TESTING in which a work product or process is evaluated by one or more individuals to detect defects or to provide improvements.
Review
The process of evaluating a component or system without executing it, based on its form, structure, content, or documentation
Static analysis
Testing that does not involve the execution of a test item.
Static testing
- A formal review by technical experts that examine the quality of a work product and identify discrepancies (a lack of similarity between two or more facts) from specifications and standards. See also: peer review
Technical review
A type of review in which an author leads members of the review through a work product and the members ask questions and make comments about possible issues. Reference: After ISO 20246 Synonyms: structured walkthrough See also: peer review
Walkthrough
static testing objectives
-improving quality
-detecting defects
-assessing characteristics like readability, completeness, correctness, testability and consistency.
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,
the Definition of Ready
-Review techniques can be applied to
-ensure user stories are complete and understandable
- include testable acceptance criteria.
-By asking the right questions, testers explore, challenge and help improve the proposed user stories.
Almost any work product can be examined using static testing:
Examples:
requirement specification documents
source code
test plans
test cases
product backlog items
test charters (Documentation of the goal or objective for a test session.)
project documentation
contracts
models.
-Any work product that can be read and understood can be the subject of a review. However, for static analysis, work products need a structure against which they can be checked (e.g., models, code or text with a formal syntax).
-Work products that are not appropriate for static testing include
those that are difficult to interpret by human beings and that should not be analyzed by tools (e.g., 3rd party executable code due to legal reasons).
value of static testing
-Static testing can detect defects in the earliest phases of the SDLC, (principle of early testing)
identifies defects which cannot be detected by dynamic testing (e.g., unreachable code, design patterns not implemented as desired, defects in non-executable work products).
-provides the ability to evaluate the quality of, and to build confidence in work products
-By verifying the documented requirements, the stakeholders can also make sure that these requirements describe their actual needs.
-Communication will also be improved between the involved stakeholders. For this reason, it is recommended to involve a wide variety of stakeholders in static testing.
-Code defects can be detected using static analysis more efficiently than in dynamic testing, usually resulting in both fewer code defects and a lower overall development effort.
Differences between Static Testing and Dynamic Testing
-Static testing and dynamic testing practices complement each other.
-Similar because they support the detection of defects in work products
differences:
Static and dynamic testing (with analysis of failures) can both lead to the detection of defects, however there are some defect types that can only be found by either static or dynamic testing.
Static testing finds defects directly, while dynamic testing causes failures from which the associated defects are determined through subsequent analysis
Static testing may more easily detect defects that lay on paths through the code that are rarely executed or hard to reach using dynamic testing
Static testing can be applied to non-executable work products, while dynamic testing can only be applied to executable work products
Static testing can be used to measure quality characteristics that are not dependent on executing code (e.g., maintainability), while dynamic testing can be used to measure quality characteristics that are dependent on executing code (e.g., performance efficiency)
static testing code execution vs dynamic testing code execution
Static testing can be used to measure quality characteristics that are not dependent on executing code (e.g., MAINTAINBILITY ),
while dynamic testing can be used to measure quality characteristics that are dependent on executing code (e.g., PERFORMANCE EFFICIENCY)