Review this Static Testing tutorial and learn to evaluate the quality of the software with multiple Static Testing techniques:
As you know, Software Testing is performed to improve the quality of the product by finding errors at every stage of the development cycle.
V-Model of SDLC explains that testing usually begins at a very early stage of the development lifecycle. V-Model describes the 2 V’s of Testing, 1) Verification and 2) Validation. These two V’s pretty much cover the testing types and phases in the SDLC.
Verification: It is also known as static testing and does not require the execution of source code.
Validation: It is also known as dynamic testing and requires the execution of source code to validate the output results for provided inputs.
In this tutorial, we’ll learn about verification, i.e. Static Testing.
Table of Contents:
What Is Static Testing
- A testing technique for evaluating the quality of the software without actually executing the code is known as static testing.
- This testing aims to detect errors right from the requirement gathering stage of SDLC (software development life cycle), all the way up to source code.
- Finding errors in the documentation stages helps in the prevention of errors at later stages and thus, it is cost-effective to perform static testing.
- With reference to the V-Model, Static testing is done in the first half of the cycle as shown below.
Also Read =>> Different Testing Types
What Can Be Tested
Some of the items that can be tested include:
- Source code
- Database Schema
- Requirement documents
- Design documents
- UI Wireframes
- Test Plan
- Test Cases
- Test Scripts for automation
- User manual
- Help Documentations
Static Testing Techniques
Static testing has two main techniques:
- Reviews
- Static Analysis
#1) Reviews
There are four different types of reviews included in static testing. These are:
- Informal
- Walkthrough
- Peer Review
- Inspection
Review is a process of meeting with the team and discussing the documents under review to get feedback and detect an error if any. It also helps in keeping everyone in the team on the same page about the requirements, functionality, and progress of the software.
Following are the types of reviews in static testing:
a) Informal Review: In this type of review, the author of the document presents it in front of the team. The team in this review consists of senior management, business clients, development team, etc. The main aim of informal reviews is to get casual feedback from the team members in the early stages of the product.
b) Walkthrough: Document walkthrough is generally performed by experts or senior members of the team. These walkthroughs are a check for the quality of the product and also to see if the team is working in the right direction.
c) Peer Review: It’s an informal review with teammates to check the common mistakes like spelling mistakes, requirement workflow, etc to gather their understanding of the document and get reviews in order to enhance the quality of the documents.
d) Inspection: Inspection is the most formal review in the static testing technique. Inspection is given the power to accept or reject the document under review. This has a fully defined process with defined roles in the team involved in the inspection of a document.
The stages in the process of Inspection are as below:
- Planning: In this stage, a plan to conduct the review is prepared. This plan includes the documents which need to be part of the review, people who will be involved in the review, and actions that need to be taken based on the feedback.
- Overview Meeting: In this meeting, the plan created as part of the planning phase is shared with the team and the overview is given about the inspection so that everyone who is part of the inspection is well prepared.
- Preparation: In this phase, all the team members who are part of the inspections prepare themselves for the software or the documents which are under inspection and gather the information they want to discuss.
- Inspection Meeting: This is the actual meeting where the document or the software is discussed with the team members feedback is gathered to improve the software quality.
- Rework: As part of this phase, team members work on the feedback given as part of the meeting and enhance the software for good quality.
- Follow-up: This the follow-up phase where rework is discussed and feedback is gathered on the rework to improve the quality further.
The inspection process consists of five types of participants who have defined roles. They are as follows:
- Moderator: He coordinates each phase with all the team members. Moderator schedules the meetings and follows up after the rework.
- Author: An author is responsible for writing the documents under inspections and take care of the feedback fixes to improve the document quality.
- Scribe: A scribe is usually the logger of the meeting. The scribe keeps track of all the feedback provided during the meeting and also the questions which need more information.
- Reviewer: A reviewer checks the document for defects and quality purposes.
- Manager: A manager decides the inspection process and takes care that the process meets the guidelines and is as expected.
#2) Static Code Analysis
This is the systematic process of analyzing the source code of the software without actually executing it. In this process, the source code for the software is analyzed for different parameters, such as below:
- Whether or not the code meets the industry coding standards?
- Are there any loopholes in the dry run of the code?
- Is the syntax correct?
- Is the source code optimized or needs more optimizations?
- Is there any dead code or unreachable code?
- Are there any unassigned variables?
- Infinite loops present in the code.
Static code analysis can be performed either manually or automatically by using tools. Some of the tools which can be used for static analysis of code are:
- Checkstyle
- Clang
- Sonarqube
- Soot
- Thread Safe
- Source meter
- Find Bugs
- JTest
- JArchitect
Advantages Of Static Testing
Some of the advantages include:
- Early feedback on the quality of the software.
- Defect prevention in later stages.
- Reduced cost and efforts of fixing defects in later stages of development.
- A better understanding of the software for the whole team.
Disadvantages Of Static Testing
Some of the disadvantages include:
- Lots of meetings and reviews.
- Automated tools for analysis do not work with all the programming languages.
- Requires lots of documentation.
Suggested Reading =>> Static Testing VS Dynamic Testing
Conclusion
Two V’s of testing, Verification, and Validation are the quality checks of the software. Static testing or verification helps in the prevention of defects, while dynamic testing or validations help in detecting defects. These two types of testing are complementary to each other and thus combined leads to better quality software.
We hope you liked this tutorial. Don’t forget to read our tutorial on Dynamic testing too.