UNIT-V-KCA-035-Software Quality Engineering
UNIT-V-KCA-035-Software Quality Engineering
• Department of MCA
• MASTER OF COMPUTER APPLICATION
• (Second Year-2021-22-Semester:4th )
• KCA-035-Software Quality Engineering
• Subject Start Date: 1st February-2022
Name of Faculty:
Vishnu Kr. Shukla
(Assistant Professor )
Department of MCA
UNIT-V-
Start -
• UNIT-V-
• Software Verification, Validation &
Testing:
• Verification and Validation,
Evolutionary Nature of Verification
and Validation, Impracticality of
Testing all Data and Paths, Software
Testing, Proof of Correctness,
Functional, Structural and Error-
Oriented Analysis & Testing, Static
and Dynamic Testing Tools,
Characteristics of Modern Testing
• Introduction to Software
Verification:
• Software verification is a discipline of
software engineering whose goal is to assure that
software fully satisfies all the expected
requirements.
• Verification in Software Testing is a process of
checking documents, design, code, and program in
order to check if the software has been built
according to the requirements or not. The main
goal of verification process is to ensure quality of
software application, design, architecture etc
• What is Software Verification?
Reviewing of any software for the purpose of finding
faults is known as software verification. Verification is
the process of checking that a software achieves its goal
without any bugs.
• It is the process to ensure whether the product that is
developed is right or not. The reviewing of a document
can be done from the first phase of software
development i.e. software requirement and analysis
phase where the end product is the SRS document.
• There are many methods for practicing the verification
of the software like peer reviews, walkthroughs,
inspections, etc that can help us in the prevention of
potential faults otherwise, it may lead to the failure of
• The Secret Code of Software Validation in 5 Steps
• Step 1: Create the Validation Plan. ...
• Step 2: Define System Requirements. ...
• Step 3: Create the Validation Protocol & Test
Specifications. ...
• Step 4: Testing. ...
• Step 5: Develop/Revise Procedures & Final Report.
Methods of Verification :
1. Peer Reviews –
The very easiest method and informal way of reviewing
the documents or the programs/software for the purpose
of finding out the faults during the verification process is
the peer-review method.
2. In this method, we give the document or software
programs to others and ask them to review those
documents or software programs where we expect their
views about the quality of our product and also expect
them to find the faults in the program/document.
3. The activities that are involved in this method may include
SRS document verification, SDD verification, and program
verification. In this method, the reviewers may also
prepare a short report on their observations or findings,
• 2. Walk-through –
Walk-throughs are the formal and very systematic
type of verification method as compared to peer-
review. In a walkthrough, the author of the software
document presents the document to other persons
which can range from 2 to 7. Participants are not
expected to prepare anything.
• The presenter is responsible for preparing the
meeting. The document(s) is/are distributed to all
participants. At the time of the meeting of the walk-
through, the author introduces the content in order
to make them familiar with it and all the
participants are free to ask their doubts.
• 3. Inspections –
Inspections are the most structured and most
formal type of verification method and are
commonly known as inspections. A team of three to
six participants is constituted which is led by an
impartial moderator.
• Every person in the group participates openly,
actively, and follows the rules about how such a
review is to be conducted.
• Everyone may get time to express their views,
potential faults, and critical areas. After the
meeting, a final report is prepared after
incorporating necessary suggestions by the
• Hence, Verification is likely more effective than validation
but it may find some faults that are somewhat impossible
to find during the validation process. But at the same time,
it allows us to find faults at the earliest possible phase/time
of software development.
• Another Point of view types of verification:-
• 1. Verification by Test
• 2. Verification by Demonstration
• 3. Verification by Analysis
• 4. Verification by Inspection
• Broad scope and classification:-
• A broad definition of verification makes it equivalent
to software testing. In that case, there are two
fundamental approaches to verification:
• Dynamic verification, also known
as experimentation, dynamic testing or, simply testing.
- This is good for finding faults (software bugs).
• Static verification, also known as analysis or, static
testing -
• This is useful for proving the correctness of a program.
Although it may result in false positives when there
are one or more conflicts between the process a
software really does and what the static verification
assumes it does.
• Dynamic verification (Test):-
• Dynamic verification is performed during the execution of software, and
dynamically checks its behavior; it is commonly known as the Test phase.
Verification is a Review Process. Depending on the scope of tests, we can
categorize them in three families:
• Test in the small: a test that checks a single function or class (Unit test)
• Test in the large: a test that checks a group of classes, such as
– Module test (a single module)
– Integration test (more than one module)
– System test (the entire system)
• Acceptance test: a formal test defined to check acceptance criteria for a
software
– Functional test
– Non functional test (performance, stress test)
• The aim of software dynamic verification is to find the errors introduced by
an activity (for example, having a medical software to analyze bio-chemical
data); or by the repetitive performance of one or more activities (such as a
stress test for a web server, i.e. check if the current product of the activity
• Static verification (Analysis)
• Static verification is the process of checking that software
meets requirements by inspecting the code before it runs.
For example:
• Code conventions verification
• Bad practices (anti-pattern) detection
• Software metrics calculation
• Formal verification
• Verification by Analysis - The analysis verification method
applies to verification by investigation, mathematical
calculations, logical evaluation, and calculations using
classical textbook methods or accepted general use
computer methods. Analysis includes sampling and
correlating measured data and observed test results with
calculated expected values to establish conformance with
• OR -Verification:
Verification is the process of checking that a
software achieves its goal without any bugs. It is the
process to ensure whether the product that is
developed is right or not. It verifies whether the
developed product fulfills the requirements that we
have.
Verification is Static Testing.
• Activities involved in verification:
• Inspections
• Reviews
• Walkthroughs
• Desk-checking
• Introduction to Software Validation:-
Validation is the process of checking whether the software
product is up to the mark or in other words product has
high level requirements. It is the process of checking the
validation of product i.e. it checks what we are developing
is the right product. it is validation of actual and expected
product.
Validation is the Dynamic Testing.
• Activities involved in validation:
• Black box testing
• White box testing
• Unit testing
• Integration testing
• In short (Methods Or approaches of Software verification)
• The process of software verification can be performed through
following approaches:
• Reviews: It is an organized way of examining the documents such as
design specifications, requirements specifications, code, etc. by one or
more than one person, to explore defects in the software.
• Walkthroughs: It is, usually an informal way of evaluating the software
product, where different teams, whether associated or non-associated
with the software development, goes through the software product
and have discussion on possible errors and other defects, present in the
software.
• Inspection: It is one of the preferred and most common methods of
the static testing.
• Unlike, walkthroughs, it's a formal way of testing the software, through
examination of documents, carried out by the skilled moderator. This
method usually, checklist, rules, entry & exist criteria along with
preparation and sharing of reports, in order to take corrective &
necessary actions.
• Advantages of Software Verification:
• The advantages offered by software verification are
numerous. It is among those processes, which makes the
process of software development easy and allows the team
to create an end product that conforms to the rules and
regulations, as well as customer’s requirements. Other
advantages of this process are:
• It helps reduce the number of defects found during the later
stages of development.
• Verifying the software in its initial development phase allows
the team to get a better understanding of the product.
• It helps reduce the chances of system failures and crashes.
• Assists the team in developing a software product that
conforms to the specified requirements and design
specifications.
• Introduction to Software Validation:
• Software Validation plays an immensely significant role during
the software development life cycle (SDLC) and helps the
testing and development teams to create a quality product.
Therefore, in this article, we shall discuss the various aspects of
software validation.
• The process of evaluating software during or at the end of the
development process to determine whether it satisfies
specified requirements.
• The process of evaluating software during the development
process or at the end of the development process to determine
whether it satisfies specified business requirements.
• Validation Testing ensures that the product actually meets the
client's needs. It can also be defined as to demonstrate that the
product fulfills its intended use when deployed on appropriate
environment.
• Or - What is Software Validation?
• Software Validation is a process of evaluating software
product, so as to ensure that the software meets the
pre-defined and specified business requirements as well
as the end users/customers' demands and expectations.
• It is basically, performed with the intent to check that
whether the developed software is built as per pre-
decided software requirement specifications (SRS) and if
it caters to fulfill the customers' actual needs in the real
environment.
• Both, the verification and validation is a software testing
activity, and verification is followed by the validation.
Validation is usually carried out at the end of the
software development.
• Software Validation Procedure:
• As stated earlier, validation is the actual testing performed
on the software product. Thus, it requires proper testing
strategy. According to ISO/IEC 12207:2008, validation
process includes:
• Gathering and analysis of the specifications and
requirements.
• Based on specifications and requirements, preparation
of test strategies, plans and cases, that seems fit for use.
• Go for testing the boundary values along with stress and
functionalities test.
• Test the error message.
• Conducts software evaluation, as it ensures that the
software meets the all pre-decided requirements and is
• Activities:
• Unit Testing
• Integration Testing
• System Testing
• User Acceptance Testing
• Difference Between Software Verification and
Validation:
• Software verification and validation are two of
the most important processes used for
ensuring the quality and accuracy of the
product.
• However, these are usually confused by
people and used interchangeably.
• Hence, to help you here is a comparison
between these two software testing
techniques.
Software Verification Software Validation