What is Static Testing? What is a Testing Review?

What is Static Testing?

Static Testing is a technique by which we can check the defects in software without actually executing it. Its counter-part is Dynamic Testing which checks an application when code is run. Refer this tutorial for a detailed difference between static and dynamic testing.

Static testing is done to avoid errors at an early stage of development as it is easier to find sources of failures then failures themselves.

 

 

 

Static testing helps find errors that may not be found by Dynamic Testing.

The two main types of static testing techniques are

     Manual examinations: Manual examinations include analysis of code done manually, also known as REVIEWS.

     Automated analysis using tools: Automated analysis are basically static analysis which is done using tools.

 

What is Testing Review?

A review in a Static Testing is a process or meeting conducted to find the potential defects in the design of any program. Another significance of review is that all the team members get to know about the progress of the project and sometimes the diversity of thoughts may result in excellent suggestions. Documents are directly examined by people and discrepancies are sorted out.

Reviews can further be classified into four parts:

     Informal reviews

     Walkthroughs

     Technical review

     Inspections

     Moderator: Performs entry check, follow up on rework, coaching team member, schedule the meeting.

     Author: Takes responsibility for fixing the defect found and improves the quality of the document

     Scribe: It does the logging of the defect during review and attends the review meeting

     Reviewer: Check material for defects and inspects

     Manager: Decide on the execution of reviews and ensures the review process objectives are met.

Types of defects which can be easier to find during static testing are:

     Deviations from standards

     Non-maintainable code

     Design defects

     Missing requirements

     Inconsistent interface specifications

Usually, the defect discovered during static testing are due to security vulnerabilities, undeclared variables, boundary violations, syntax violations, inconsistent interface, etc.

Why Static Testing

Static testing is performed due to following reasons

     Early defect detection and correction

     Reduced development timescales

     Reduced testing cost and time

     For improvement of development productivity

     To get fewer defect at later stage of testing

What is Tested in Static Testing

In Static Testing, following things are tested

     Unit Test Cases

     Business Requirements Document (BRD)

     Use Cases

     System/Functional Requirements

     Prototype

     Prototype Specification Document

     DB Fields Dictionary Spreadsheet

     Test Data

     Traceability Matrix Document

     User Manual/Training Guides/Documentation

     Test Plan Strategy Document/Test Cases

     Automation/Performance Test Scripts

How Static Testing is Performed

To perform Static Testing, it is done in following ways,

     Carry out the inspection process to completely inspect the design of the application

     Use a checklist for each document under review to ensure all reviews are covered completely

The various activities for performing Static Testing are:

  1. Use Cases Requirements Validation: It validates that all the end-user actions are identified, as well as any input and output associated with them. The more detailed and thorough the use cases are, the more accurate and comprehensive the test cases can be.
  2. Functional Requirements Validation: It ensures that the Functional Requirements identify all necessary elements. It also looks at the database functionality, interface listings, and hardware, software, and network requirements.
  3. Architecture Review: All business level process like server locations, network diagrams, protocol definitions, load balancing, database accessibility, test equipment, etc.
  4. Prototype/Screen Mockup Validation: This stage includes validation of requirements and use cases.
  5. Field Dictionary Validation: Every field in the UI is defined well enough to create field level validation test cases. Fields are check for min/max length, list values, error messages, etc.

Static Testing Techniques

     Informal Reviews

     Walkthroughs

     Technical Reviews

     Inspections

     Static Analysis

     Data Flow

     Control Flow

Tools used for Static Testing

Various tools used for Static Testing are as follow,

     Checkstyle

     IntelliJ IDEA

     FindBugs

     Jarchitect

     Soot

     Squale

     ThreadSafe

     SourceMeter

Tips for Successful Static Testing Process

Some useful tips to perform 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's reviews

     Train participants

     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