Static testing vs dynamic testing – what are the difference and why you should know about them?
In this post we’ll focus on static testing and its advantages.
When we’re testing the software, we want to ensure it will be tested properly.
We want to choose appropriate testing methods.
When the software is developed it’s most important to start the test process ASAP.
Why? Because when we’ll discover bugs in early stage of SDLC, fixing expenses are much cheaper than in the later stage.
When we’re starting to test the software by conducting the dynamic tests, we’re running the software and checking if the software behaves as expected.
However, when we want to ensure that the software fulfills the requirements without its running and check the elements are correct and are not including the bugs like requirement details, design defects, or coding defects, the best way is static testing.
We can use Static Analysis in the code, like data flow, control flow, and cyclomatic complexity.
To better understanding the static testing, we can take a look at the story below.
Tester Z (let’s say, his name is Z) gets the requirements to test the newly developed software. When Z analyses the requirements, he discovers a lot of inconsistencies. He needed to consult that with BA (Business Analyst) to avoid potential failures. When Z explained the issues with BA, he started to analyze the code provided for tests. This time he found another issue, the variable with an undefined value. After that, he also discussed that with developers, and as a result, all of the potential failures were fixed in fewer expenses than in the later stage of SDLC (Software Development Lifecycle).
We can also use static testing for maintenance testing.
It’s important to discover issues in early SDLC stage to avoid potential failures in next phases and save more time and money.
What else we can do to improve the static testing process?
A lot of companies decide to introduce Reviews, which can formal or informal. Reviews are improving the quality of the product and saving a lot of no-needed expenses.
Let’s take a look at the typical Review process.
During planning the Review we need to focus on things like defining the scope (i.a. purpose of review), estimating effort and timeframe, identifying review characteristics, selecting the people to the specific roles, defining entry and exit criteria, and checking that entry criteria are met (for more formal review types).
During initiate review, we distribute the work product (physically or electronic). We also distribute other material, such as issue log forms, checklists, and related work products. During this phase, we explain the scope, objectives, processes, roles, etc., and answer the questions about the review as well.
During individual review we’re reviewing all or part of the work product. In the meantime we notice the potential defects, recommendations, and questions.
Issue communication and analysis
This is the phase when we’re communicating identified potential defects with other participants. During this time we’re analyzing potential defects, assigning ownership and status to them as well. We’re evaluating and documenting quality characteristics too. After that, we’re evaluating the review findings against the exit criteria to make a review decision.
Fixing and reporting
This is the last stage of every review. In this time we’re creating defect reports, fixing defects found, and gathering metrics. We also communicating defects to the appropriate person or team. We focus on recording the updated status of defects (formal reviews), potentially including the agreement of the comment originator. What is the most important during this phase, we’re checking the exit criteria are correct and if everything is good, accepting the work product.
Now we know the differences between static testing and dynamic testing. We know what is static testing, how to use it, what is the Review, and how is the review process.
In the next post we’ll focus on the Review Types.
I hope you enjoyed reading this article.
The next post will arrive soon 🙂
The part content of this post was based on ISTQB FL Syllabus (v. 2018).