Difference Between Static and Dynamic Testing

What is software testing?

Software testing is a way to assess the quality of the software and to reduce the risk of software failure in operation. By including software testing processes and techniques in our development process, we reduce the number of defects that appear in the operational environment, and this will increase the quality of the software, reduce costings, and increase the probability that our project will be a success when delivered to the market.

There are two main categories of software testing, dynamic testing & static testing. Both are vital to the success of our projects and must be used to produce high-quality software.

What is static testing?

Static testing means that we test or assess the software quality without executing it, in other words, we test the software without providing any input to it. So how do we do this activity? How do we test the software without providing inputs to it?

Let’s have a look at the following wireframe [A wireframe is a two-dimensional illustration of a page’s interface that specifically focuses on space allocation and prioritization of content, functionalities available, and intended behaviors. For these reasons, wireframes typically do not include any styling, color, or graphics]. If you receive a screen like this as part of the design of a website, you can perform static testing on it, even if it is still just a wireframe that is not developed yet and you can’t perform any type of interaction with it.

Like we see, in this wireframe, we have three options [Male & Female] and the user should only choose one of them. The checkbox that appears next to the two choices means that you can choose both of them at the same time and submit your result and this is a wrong implementation of the gender choice field. The correct icon that should appear next to each one of them is a radio button, which means that you are only allowed to choose one option of the two.

How to become a software tester

What is dynamic testing?

This activity is called “review”, which is a type of static testing. You can perform review activities on any work product like “requirements, user stories, design, or even code”. In the code for example, if you are checking that each function has proper commenting that explains its goal, this is also a review activity.

On the other hand, dynamic testing requires providing input to the software and waiting for output. So you can’t perform dynamic testing on requirements, user stories, or design. But you can perform it on the code.

How to become a software tester

In this piece of code, checking that the name of the “salary” variable is relevant to the function developed is static testing. On the other hand, providing different values to salary variables and checking that a relevant tax is applied to the specified user is considered dynamic testing. The software tester is required to perform both types of testing, dynamic and static testing. But static testing is mostly done before dynamic testing, and this is a way of applying the testing principle “Early testing saves time and money”.

Latest Posts