How to improve software quality using a Static Testing techniques?
‘Testing’ is a term known to each type of industry. It refers to a process to improve quality of a product. There are basically two types of testing in SDLC:
- Static testing
- Dynamic testing
Static Testing: An Overview
Static Testing is a testing done during the verification process. We can start testing even when the code is not completed. To do this we should go with static testing techniques. We can apply these techniques in the initial phase of SDLC. In this phase, the team collects requirements, and reference documents. Team finalizes system design on the basis of requirements.
Static testing enables the team to recognize defects at starting of SDLC. It helps fix defects at the same time. Early fixing of defect helps reduce application cost too. Static testing techniques are also known as Defect prevention techniques.
Now, there may a question arise in your mind that what type of defects we can recognize with Static Testing. It helps you to recognize deviations from predefined standards. It also helps find out missing requirements, improvement areas, and design defects. Sometimes, unusable-code and inconsistent interface specifications are also identified through Static testing.
Static Testing Techniques
There are following techniques that come under Static Testing:
- Review: It refers to a process of discussion between team members to find ambiguities in different documents prepared during Software Developments Life Cycle. These documents include Software Requirement Specification, Function requirement Specification, Design documents and Testing documents etc.
- Static Analysis: Senior developers of the team analyze the code written by a team in order to find out structural defects in the code. These defects may be related to garbage collection, memory leakage and non-reachable code. Following are different Static Analysis techniques:
- Data Flow
- Control Flow
Roles and Responsibilities in a formal review
Each member involved in a review process has its own roles and responsibilities. There can be five types of actors involved in a review process, these are:
- Recorder: A person who is responsible to record each and every activity performed during the discussion. A Recorder is also known as Scribe. Generally, there are following activities recorded during a review:
- Feedback provided by all members of a review meeting.
- Defect found in any document or information
- Suggestions related to process improvement
- Author: A person who prepares a document of information shared in the review. It belongs to the understanding of defect found during the review, feedback, unclear areas of discussion. An Author is also responsible to provide a well-written document.
- Reviewer: A person who verifies all defects found during review. A reviewer is also responsible for incorporate new improvements in order to enhance domain knowledge and followed standards.
- Moderator: A person who leads a review process is known as Moderator. A moderator is generally responsible for following:
- Elaborate main points of Review
- Type of review
- Review Team
- Review Duration
- Training of Review Team members
- Provides all collected data for review
- Manager: A person who manages all things to execute a review process. These things include time allocation, location and availability of members.A manager also defines that goal of the review process. In other words, we can say that a manager determines that review process is successful or not.
Types of Review
An informal review is the most common type of review. It helps to save time and fetch out key aspects of the current situation. There is no need to maintain any document for an informal review. There are following types of informal review:
- Peer Review
A walk-through is an informal review. In this session, the author provides the information as per his/her understanding. The author also prepares documents. He shares those documents her to all review members. The author also collects feedback over the provided information from all members.
The way author describes the information to all members should be very simple. All users should easily understand the upcoming application. Walk-through is very useful to all people. When people are either new to software development processes or belong to other groups. The author describes each and every point of documents. There are following key advantages of a walk-through:
- Information provided during a walk-through is useful for preparing higher-level documents.
- As there are a number of participants, so it becomes more informative session for all participants.
- When an author represents to all members from either software line or core business people.
- Documents content gets evaluated by the team members when it gets explained to all participants.
- Walkthrough session helps all participants to prepare their own understanding documents.
Peer Review is the simplest form of the informal review. It can happen between two people of a team. Peer reviewer to evaluate a specific document, code, technique or process. It also helps team members to improve quality of the document or work or process in a less time.
There are following advantages of peer review:
- Time-saving session
- More efficient discussion
- Expertise in reviewer
Formal Review: Inspection
Management team decides a specific time for conducting a formal review. Inspection is the most common form of the formal review. Each participant of a formal review has its own roles. A person, who is a trained moderator, generally lead a formal review. Sometimes a manager plays moderators roles in the formal review.
The leader represents a certain document in the formal review. All team members follow reference documents. Team members compare these documents with actual documents. Many times review team has checklists and rule to validate all documents. Scribe or author logs all defects that are found in between of formal review. The way of conducting formal review varies organization to organization. The main motive of conducting formal review are as below:
- Find out defects
- Improve documentation quality
- Proposed defect solution efficiently
Static testing plays a major role in software testing. It helps the team to identify defects in starting of development. These techniques prevent bugs in the dynamic testing. Hence, we must follow these different static testing techniques. It will definitely a cost-effective and improved way to provide a quality work.