Skip to main content

ISTQB - Static Testing

  • Static testing is a type of software testing where the code or documentation is examined without actually running the program. It's like reviewing the work to find mistakes early in the development process.

  • It involves reviewing and analyzing the code, design documents, or requirements before the code is executed. This can be done manually or using tools.

Types of Static Testing

Reviews

  • This involves people going through documents or code to spot mistakes. It can be done in a formal meeting (formal review) or just as a quick check (informal review).

Static Analysis

  • This is an automated way of analyzing the source code without running it. Static analysis tools scan the code to find errors like security vulnerabilities or poor coding practices.

Benefits of Static Testing

  • Early detection of errors, since it happens before the software is executed, you can catch problems early when they are cheaper and easier to fix.

  • Saves time and money, finding and fixing bugs early means less rework later on.

  • Static testing is like inspecting and reviewing code or documents to find issues before the system is actually run. It's a proactive way to improve quality early in the process.

Categories of Test Design Techniques

Specification-based (Black-box) Techniques

  • Testing is based on the requirements or specifications of the software, without looking at the internal workings (code) of the system. You only care about the inputs and expected outputs.

Structure-based (White-box) Techniques

  • Testing that looks at the internal structure or code of the system. You design tests based on how the code is written to ensure all parts of the code are exercised.

Experience-based Techniques

  • Testing is based on the experience, intuition, and knowledge of the testers. This method doesn't rely on formal specifications or code but uses the tester's understanding of where bugs are likely to be found.

Summary

  • Specification-based (Black-box): You test based on the inputs and expected outputs, without looking at the code. You only care if the system works as described in the requirements.

  • Structure-based (White-box): You test based on how the system is built internally, focusing on code coverage and execution paths.

  • Experience-based: You rely on your knowledge and experience to focus testing on areas most likely to have problems, often without formal guidelines.

Common Testing Techniques

Equivalence Partitioning

  • This technique involves dividing input data into groups (or partitions) that are expected to behave the same way. Instead of testing every possible input, you test one representative value from each group.

Boundary Value Analysis

  • This technique focuses on testing the boundaries of input ranges. Since bugs often occur at the edges of input limits, you test values right on, just below, and just above the boundaries.

Decision Table Testing

  • This technique is used when there are multiple conditions that influence the output. A decision table lists the different possible combinations of inputs and their expected results.

State Transition Testing

  • This technique tests how a system moves from one state to another, depending on user actions or inputs. You test if the system behaves correctly as it transitions between states.

Exploratory Testing

  • In this approach, testers explore the system without predefined test cases. You test the application as you go, based on your understanding, intuition, and experience. This is especially useful in discovering unexpected issues.

Module Review

Click to start the definition to term matching quiz
Drag the defintion to the correct term.
Test type item not available at this time.
Click to start the multiple choice quiz
Choose from the listed options below.
Test type item not available at this time.