0% found this document useful (0 votes)
3 views

Week 03 Static Verification Techniques

Uploaded by

jehuabiabi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Week 03 Static Verification Techniques

Uploaded by

jehuabiabi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24

Software Quality Assurance

HNDIT-4022

Static Verification Techniques


Software Verification Vs Validation
Verification is

Verification typically involves reviews and meetings to evaluate


documents, plans, code, requirements, and specifications. This
can be done with checklists, issues lists, walkthroughs, and
inspection meetings.

Two Types of Verification;


❏ Dynamic verification, also known as Test or
Experimentation - This is good for finding bugs
❏ Static verification, also known as Analysis - This is useful
for proving correctness of a program although it may
Software Verification Vs Validation
Validation is
- Validation typically involves actual testing and takes place
after verifications are completed.
Software Verification Vs Validation…

- Software verification asks the question, "Are we building the


product right?"; that is, does the software conform to its
specification.

- Software validation asks the question, "Are we building the


right product?"; that is, is the software doing what the user
really requires.
Software Verification Vs Validation…
What is Static Testing?
- Static Testing is a software testing technique that involves
reviewing and analyzing:- software documentation – design,
or code without executing the software. It is a way of
checking for errors and defects in the software by examining
it in a “static” state rather than actively running it.
- Static Testing aims to identify issues early in software
development when they are easier and less costly to fix.
- By catching defects early, Static Testing can help improve
the software’s overall quality and reliability.
- Also, it enhances maintainability and ultimately saves time
and money in the long run.
What is Static Testing?...
There are two basic types of static testing.

1. People-based - People-based techniques are generally


known as “reviews" There are different ways in which reviews
can be performed.

2. Tool-based -The tool-based techniques examine source


code and are known as "static analysis"
Why Static Testing?
- Static Testing is a valuable technique because it helps detect
errors and defects in software before it is tested.
- For example, You review software requirements as part of
Static Testing. You may identify potential conflicts that could
be difficult to address later in the development cycle.
Similarly, if you review code during Static Testing, you may
spot issues like

coding errors,

inconsistent naming conventions


When to Perform Static Testing?
- Static testing is recommended to be done during the design,
documentation, and development phases before dynamic
testing commences.
Objectives of Static Testing
- Ensure all programming conventions, standards, and
guidelines are followed.
- Verify that the source code is complete and can be compiled
& built.
- Ensure that all design and implementation specifications are
met.
- Identify areas of the software that may have logical,
structural, formatting, or syntactic errors.
What is Subject to Static Testing?
Here are some major features that are subject to static testing,
- Requirements & Specifications Review
- Structural Design Analysis
- Code Review
- Database Analysis
- Documentation Review
- User Manual Review
Static Testing Techniques
Static Testing is a necessary software testing technique
comprising two approaches;
❏ Review
❏ Static Analysis
Static Testing Techniques…
❏ Review

Reviews are a necessary feature of Static Testing. It enables testers to


identify defects and issues in documentation, such as requirements
and design. The importance of reviews lies in detecting the sources of
failure at the earliest stage.
❏ Static Analysis

Static Analysis refers to the process of analyzing computer software


without executing it. This is typically done by examining the source
code, bytecode, or other program representations. The purpose of
static analysis is to identify potential issues, vulnerabilities, or bugs
early in the software development lifecycle .

.
Benefits of Static Testing
Static Testing provides several benefits to software development
projects.
❏ Early defect detection
❏ Improved code quality
❏ Reduced costs and time
❏ Prevention of common issues
❏ Improved collaboration
Type of Static Testing
Static Testing can be covered under two different types:

❏ Manual Static Testing


❏ Automated Static Testing
Manual Method of Static Testing
Manual static testing methods are techniques used to identify
errors and defects in software code and documentation without
actually executing the code

❏ Inspections
❏ Walkthroughs
❏ Informal reviews
❏ Technical reviews
❏ Audits
Automation Method of Static Testing
This method leverages specialized tools to analyze source code,
documentation, and other artifacts without execution.

Static Analysis : Tools dissect the code’s structure, logic, and


flow, identifying potential errors like:
- Syntactic errors
- Logic errors
- Security vulnerabilities
- Code quality issues
- Coding standard violations
- Code Reviews & Lint Checks
- Formal Methods
Automation Method of Static Testing…
- Code Reviews & Lint Checks: Tools scan the code for
adherence to defined coding standards and best practices,
highlighting areas for improvement.

- Formal Methods: Utilize mathematical techniques to prove


the correctness of code properties and ensure they adhere to
specific specifications.
Tools Used for Static Testing

Here are some tools;

❏ Checkstyle
❏ SourceMeter
❏ Soot
❏ Lint
❏ SonarQube
❏ PDM
❏ Findings
What is Tested in Static Testing?
Key areas of Static Testing;

❏ Code Quality
- Syntax errors
- Coding standards
- Potential bugs
- Performance bottlenecks
- Security vulnerabilities

❏ Documentation Quality
- Requirements completeness and consistency
- Design document correctness
- Test plan completeness and feasibility
How Static Testing is Performed?
How static testing is performed;

❏ The first step in static testing is planning.


❏ prepare the necessary artifacts, such as source codes, design
documents, requirements documents, and test cases.
❏ Static analysis is the core of this testing.
❏ Code reviews are an essential component of the static testing
process.
❏ Small team of experts systematically reviews the code and finds
potential errors using various methods.
❏ Any issues or bugs during the static testing process are reported
and documented.
❏ The results collected during the static testing process should be
analyzed to determine the quality of the software product. This is
the final step in static testing.
Advantages of Software Review
❏ Defects can be identified earlier stage of development (especially in formal
review).
❏ Earlier inspection also reduces the maintenance cost of software.
❏ It can be used to train technical authors.
❏ Reviews can improve software development productivity and reduce
development timescales.
❏ They can also reduce testing time and cost.
❏ Reviews generally reduce fault levels and lead to increased quality. This can
also result in improved customer relations.
❏ Reviews are cost-effective.
Activity:

1. What is Static Testing?


2. What is tested in static testing?
3. Who inspects the documents in static testing?
4. State the different between Static testing and
Dynamic testing.
Q&A’s ?

Thank you !

You might also like