Posted by: ahmedashfaque | October 10, 2009

Static testing! What it is?

You may have heard of static software testing. You may wonder what it does mean.

Before explaining static testing, let me explain what is dynamic testing. When a software application is run (by executing the source code on a computer), the compiler converts the source code into byte code or machine language code so that the computer can understand it. So if any application is running on a computer, then its machine code is getting continuously executed in computer processor and application instruction and data is kept in computer memory which in turn is sent to the display device (monitor) if it is to be displayed there. So the user who is running the application can see the User Interface part of the application on the monitor. Now whenever the user does any activity on the user interface (clicking on menus, command buttons, links etc.), he is invoking any command of the application which is running. By these commands, the user can play with the application and see what the application does with different commands.

Now when the user is using the running application for any purpose then he will be using the commands of the application so that he can do some work. He thus expects the application to do some thing he is expecting in response to his commands. For instance, he may like to buy a book ‘Software Testing as a Service’ from site. He will direct his browser to the Amazon site ( Then he may search for the book in the search box by typing ‘Software Testing as a Service’ and hitting the OK button. Once he gets the link for the book in the browser then he can proceed to buy it after hitting some more commands of the application run by Amazon at their website.

Amazon website is today used by millions of users worldwide everyday. But when the website application would have been built (some 10-15 years back) then it should have been tested thoroughly to make sure that the application has no defects (well almost!) and users can use it without facing many problems.

Suppose the Amazon website need to be tested in dynamic mode then basically it will be tested by running the application and using it the same way any end user uses it (in running condition). So in dynamic testing, the application is run and then commands are executed. Now the the person testing the application should be expecting a result (or outcome) after hitting any command. For example, when the user directs his browser to amazon website he expects that the browser gets redirected to the amazon website. IF the browser is not redirecting to the amazon website but instead is redirecting to some other website then definitely there is some defect. The testing person then reports this defect.

This was all about dynamic testing. Coming to static testing, in static testing we are not executing any code. We will test any work product (like requirement specifications, software design or source code) by checking it either manually or using any tool but we will not run any code. For example, we can check a software design to see if the software design is capturing all requirement specifications or not. Similarly we can check source code to see if the source code contains any irregular code structure or if it has any memory leaks. These tests will be done without running the application.

That is why they are called static testing.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s


%d bloggers like this: