What is Static Testing?
Static testing is a form of software testing where the software is not actually used. This is in contrast to dynamic testing. It is generally not detailed testing but checks mainly for the sanity of the code, algorithm, or document. It is primarily syntax checking of the code or and manually reading of the code or document to find errors.
This type of testing can be used by the developer who wrote the code, in isolation. Code reviews, inspections, and walkthroughs are also used. From the black box testing point of view, static testing involves the review of requirements or specifications.
This is done with an eye toward completeness or appropriateness for the task at hand. This is the verification portion of Verification and Validation.
Bugs discovered at this stage of development are less expensive to fix than later in the development cycle.
In software development, static testing also called dry run testing, is a form of software testing where the actual program or application is not used. Instead, this testing method requires programmers to manually read their own code to find any errors. Static testing is a stage of White Box Testing.
Static testing involves three major steps. They are
The review is “A process or meeting during which artifacts of the software product are examined by project stockholders, user representatives, or other interested parties for feedback or approval “.
Software Review can be on technical specifications, designs, source code, user documentation, support and maintenance documentation, test plans, test specifications, standards, and any other type of specific to work product, it can be conducted at any stage of the software development life cycle.
The purpose of conducting the review is to minimize the defect ratio as early as possible in the Software Development life cycle. As a general principle, the earlier a document is reviewed, the greater will be the impact of its defects on any downstream activities and their work products.
The magnitude cost of defect fixing after the release of the product is around 60 – 100x. The review can be formal or informal. Informal reviews are referred to as walkthrough and formal as Inspection.
A thorough review of the processes and design of the product/ application. Subject matter specialists and designers perform this exercise. Architectural, Development and Implementation issues are discussed and frozen at this point in time.
Our QA architects get involved at this stage to determine the potential influence of architecture and design on the QA process, platform, and tools selection.
An inspection is a formal, rigorous, in-depth group review designed to identify problems as close to their point of origin as possible. Inspection is a recognized industry best practice to improve the quality of a product and to improve productivity. Inspections are a formal review and generally need is predefined at the start of the product planning.
The objectives of the inspection process are to:
- Find problems at the earliest possible point in the software development process.
- Verify that the work product meets its requirements.
- Ensure that the work product has been presented according to predefined standards.
- Provide data on product quality and process effectiveness.
- Inspection advantages are to build technical knowledge and skill among team members by reviewing the output of other people.
- Increase the effectiveness of software testing.
IEEE 1028 recommends three following roles in an Inspection:
The inspection leader shall be responsible for administrative tasks pertaining to the inspection, shall be responsible for planning and preparation, shall ensure that the inspection conducted in an orderly manner and meets its objectives, should be responsible for collecting inspection data.
The recorder should record inspection data required for process analysis. The inspection leader may be the recorder.
The reader shall lead the inspection team through the software product in a comprehensive and logical fashion, interpreting sections of the work product and highlighting important aspects.
The author shall be responsible for the software product meeting its inspection entry criteria, for contributing to the inspection based on special understanding of the software product, and for performing any rework required to make the software product meet its inspection exit criteria.
Inspectors shall identify and describe anomalies in the software product. Inspectors shall be chosen to represent different viewpoints at the meeting (for example, sponsor, requirements, design, code, safety, test, independent test, project management, quality management, and hardware engineering).
Only those viewpoints pertinent to the inspection of the product should be present. Some inspectors should be assigned specific review topics to ensure effective coverage. For example, one inspector may focus on conformance with a specific standard or standards, another on syntax, and another for overall coherence. These roles should be assigned by the inspection leader when planning the inspection.
All participants in the review are inspectors. The author shall not act as an inspection leader and should not act as a reader or recorder. Other roles may be shared among the team members. Individual participants may act in more than one role. Individuals holding management positions over any member of the inspection team shall not participate in the inspection.
Following are review phases:
- Examination meeting
Inspection Leader performs the following tasks in the planning phase.
- Determine which work products need to be inspected.
- Determine if a work product that needs to be inspected is ready to be inspected.
- Identify the inspection team.
- Determine if an overview meeting is needed.
The moderator ensures that all inspection team members have had inspection process training. The moderator obtains a commitment from each team member to participate.
This commitment means the person agrees to spend the time required to perform his or her assigned role on the team. Identify the review materials required for the inspection, and distribute materials to relevant stakeholders.
The purpose of the overview meeting is to educate inspectors; the meeting is lead by Inspector lead and is presented by the author, the overview is presented for the inspection, this meeting normally acts as optional meeting, purpose to sync the entire participant and the area to be inspected.
The objective of the preparation phase is to prepare for the inspection meeting by critically reviewing the review materials and the work product, participant drill down on the document distributed by the lead inspector and identify the defect before the meeting.
The objective of the inspection meeting is to identify the final defect list in the work product being inspected, based on the initial list of defects prepared by the inspectors [ identified at
the preparation phase and the new one found during the inspection meeting.