Do you Know about Static Testing…

                                            

What is Static Testing?                                

Software Testing technique has two types of testing methods, there are Static testing & Dynamic Testing. Static testing is used to check defects or misplacement in software applications without executing the code. It’s a human testing technique that doesn’t involve executing or running the program or software product.

            Note:- “we are not executing the code. Just write about it.” 

         Ex: when I got some requirements, I'm writing all possible

             scenarios on it, and that comes the static testing.

This testing method is performed in the early stage of development to avoid errors and it’s easier to identify the errors and solve them. Actually, this testing method always helps find errors that may not be found by Dynamic Testing.

Static testing methods have main two types of testing techniques.

                                            
Figure 1

Review:

It’s a process or technique that is performed to find the potential defects in the design of any program or software. Review is a process to detect and remove errors and defects in the different supporting documents [softwrae requirement specifications.] In here documents are directly examined by people and discrepancies are sorted out. 

We can classify reviews into four parts-

    Informal Reviews

         The creator of the document puts the contents in the front of all ones and thus they identified the errors

          in the early stages.

    Walkthroughs

        It's basically done by experts to check the errors so that there might not be a problem further in the

         development or testing phase.

         It is following four steps:

  •     Organization
  •     Preparation
  •     Walkthrough
  •     Rework & Follow-up

                                

Walkthroughs figure 2

    Technical review
            checking the documents by one-by-one to detect and fix the errors. it's done by a team of colleagues.
    Inspections
       Basically the verification of documents by a higher authority like the verification of software requirement     
        specifications (SRS). The software inspection process comprises six phases which are as follows.

                                                
Inspections Figure 3

Static Analysis:

Static Analysis includes the evaluation of the code quality. they use different tools for doing analysis of the code and comparison of the same with the standard.

Static Analysis helps to find the following defects.

  • Unused variables

  • Dead code

  • Infinite Loops

  • Variable with undefined value

  • Wrong syntax

We can classify Static Analysis into three parts-

        Data Flow:
            Related to stream processing
        Control Flow:
            It’s basically how the statements or instructions are executed.
        Cyclomatic Complexity:
            The measurement of the complexity of the program is basically related to the number of independent paths
                in the control flow graph of the program.

What type of errors can be easier to find during Static Testing?

  • Deviation from standards

  • Non-maintainable code

  • Design Defects

  • Missing Requirements

  • Inconsistent interface specifications

Why Static Testing?

      Detection of Bugs:

              When we make software, we can’t depend on Dynamic testing only. Because 

Dynamic testing revealed the bugs at the last stage. then developers need more time and 

effects to debug. 

        Increased Size of Software:

When the size of software increases, it becomes difficult to handle it as the efficiency of code coverage decreases. so, Static testing is required to get rid of errors or bugs earlier in the software.

        Dynamic testing is Time-consuming:

Dynamic testing uncovers the bug and provides some details regarding the bugs. 

however, it takes more time to fix the bugs as it comprises detecting the failure from the test case to the root cause, making it a difficult process altogether.

        Dynamic testing is expensive more than Static testing 

What are the BENEFITS of static testing?

        Decreased SDLC cost:

In the early stage of SDLC, we identified the errors. then, requires fewer efforts and time to 

modify the software and resolve it.so, decreasing the overall SDLC cost. 

        Increased Software Quality

When the flaws are detected in the software, they are fixed then and there which leads to an increased quality of the product.

        Finding the exact location of bugs:

In static testing, the exact location of the bug can be traced whereas the same is not easily possible in the case of dynamic testing.

        Instance Evaluation and Feedback:

Evaluation of the product happens frequently making the product of better quality as immediate feedback is received during each phase while developing the product.

        Can Increase the effectiveness of dynamic testing

As the code gets cleaner and better after static testing, it requires fewer efforts and time to create and maintain good quality test cases, thereby making dynamic testing more effective.

Tips for a successful Static Testing Process:

  • Focus only on things that really count

  • Explicitly plan and track review activities. A software walkthrough and inspection are generally composite into peer reviews

  • Train participants with Examples

  • Resolve people issues

  • Keep process formal as the project culture

  • Continuous Improvement – Process and Tools

  • By removing the major delays in test execution, testing cost and time can be reduced

Comments

Post a Comment