KEMBAR78
Verification & Validation in Testing | PDF | Software Testing | Verification And Validation
0% found this document useful (0 votes)
60 views26 pages

Verification & Validation in Testing

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

Verification & Validation in Testing

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

1

Verification & Validation


Fundamentals of Testing

Adelina Aleksieva-Petrova
2

Software Testing

• A process of analyzing a software item to detect the differences between


existing and required conditions (i.e., defects) and to evaluate the features of
the software item. (ANSI/IEEE 1059 ).
Testing Objectives

• Finding defects

• Gaining confidence in the level of quality

• Providing information for decision-making

• Preventing defects
Testing as a process
Activities include:
▫ planning and control,
▫ choosing test conditions,
▫ designing and executing test cases,
▫ checking results,
▫ evaluating exit criteria,
▫ reporting on the testing process and system under test,
▫ finalizing or completing closure activities after a test phase has been
completed
▫ reviewing documents (including source code) and conducting static
analysis
Static and Dynamic Testing

• Software testing encompasses both static and dynamic testing

• Static testing is any evaluation of the software or related work


products – e.g., requirements specifications or user stories
▫ It occurs without executing the software itself

• Dynamic testing is an evaluation of that software or related work


products
▫ It does involve executing the software
Verification and Validation Testing 1/2
Verification Validation
We check whether we are developing the right We check whether the developed product is
product or not. right.
Verification is also known as static testing. Validation is also known as dynamic testing.
Verification includes different methods like Validation includes testing like functional
Inspections, Reviews, and Walkthroughs. testing, system testing, integration, and User
acceptance testing.
It is a process of checking the work-products It is a process of checking the software during
(not the final product) of a development cycle to or at the end of the development cycle to decide
decide whether the product meets the specified whether the software follow the specified
requirements. business requirements.
Quality assurance comes under verification Quality control comes under validation
testing. testing.
Resource: https://www.javatpoint.com/verification-and-validation-testing
Verification and Validation Testing 2/2
Verification Validation
The execution of code does not happen in the In validation testing, the execution of code
verification testing. happens.
In verification testing, we can find the bugs early In the validation testing, we can find those bugs,
in the development phase of the product. which are not caught in the verification process.
Verification testing is executed by the Quality Validation testing is executed by the testing team
assurance team to make sure that the product is to test the application.
developed according to customers' requirements.
Verification is done before the validation testing. After verification testing, validation testing takes
place.
In this type of testing, we can verify that the In this type of testing, we can validate that the
inputs follow the outputs or not. user accepts the product or not.

Resource: https://www.javatpoint.com/verification-and-validation-testing
Different viewpoints of Testing
• Development testing – cause as
many failures as possible
• Acceptance testing – confirm that
the system works as expected

• Maintenance testing – no new defects have been introduced during


development of changes
• Operational testing – assess system characteristics
• Other viewpoints …
Debugging and testing
• Testing is “the process consisting of all life cycle activities, both static and
dynamic, concerned with planning, preparation and evaluation of
software products and related work products to determine that they
satisfy specified requirements, to demonstrate that they are fit for
purpose and to detect defects.” (ISTQB definition)

• Debugging is “the process of finding, analysing and removing the causes


of failures in software.” (ISTQB definition)
▫ e.g., dynamic testing can show failures that are caused by defects; while
debugging is the development activity that finds, analyses and removes
the cause of the failure
Why is Testing Necessary?
Software Systems Context
• Software systems are an integral part of life
• Most people have had an experience with software that did not work as
expected
• Software that does not work correctly
can lead to many problems, including
▫ loss of money,
▫ loss of time,
▫ loss of business reputation,
▫ an injury or even death…
Causes of Software Defects 1/2
Why does software fail?

• Software engineering remains a human-intensive activity – and humans


are fallible beings.
▫ mistake
▫ defect (fault, bug)
▫ failure

• A defect can exist that will never cause a failure in actual use – because
the conditions that could cause the failure can never arise.
Causes of Software Defects 2/2
Testing and Quality

• Quality cannot be defined by technical excellence alone!


• Testing plays an essential supporting role in delivering quality software
• Testing can give confidence in the quality of the software if it finds few or
no defects
• A properly designed test that passes reduces the overall level of risk in a
system
How Much Testing is Enough? 1/2

• Testing Principle – exhaustive testing is impossible


• Testing everything (all combinations of inputs and preconditions) is not
feasible, except for trivial cases.
• Instead of exhaustive testing, risks and priorities are used to focus testing
efforts
• Question: How many tests would be needed to exhaustively test a one-digit
numeric field?
How Much Testing is Enough? 2/2
• The software development process (like any other) must balance
competing demands for resources

• Time, money and quality


are three resources that affect one another – and also influence the
features that are (or are not) included in the delivered software
Seven Testing Principles
A number of testing principles have been suggested over the past 40 years and
offer general guidelines common for all testing.

• Principle 1 – Testing shows presence of defects


• Principle 2 – Exhaustive testing is impossible
• Principle 3 – Early testing
• Principle 4 – Defect clustering
• Principle 5 – Pesticide paradox
• Principle 6 – Testing is context dependent
• Principle 7 – Absence-of-errors fallacy
Test Process

• The most visible part of testing is test execution – but the testing process
includes other stages

• The fundamental test process consists of the following main activities:


▫ Test planning and control
▫ Test analysis and design
▫ Test implementation and execution
▫ Evaluating exit criteria and reporting
▫ Test closure activities
V&V In Different Phases Of The
Development Lifecycle 1/4
#1) V & V tasks – Planning
• Verification of contract.
• Evaluation of Concept document.
• Performing risk analysis.

#2) V & V tasks – Requirement phase


• Evaluation of software requirements.
• Evaluation/analysis of the interfaces.
• Generation of the systems test plan.
• Generation of Acceptance test plan.

Resource: https://www.softwaretestinghelp.com/what-is-verification-and-validation/
V&V In Different Phases Of The
Development Lifecycle 2/4
#3) V&V tasks – Design Phase
• Evaluation of software design.
• Evaluation / Analysis of the Interfaces (UI).
• Generation of Integration test plan.
• Generation of the Component test plan.
• Generation of test design.
#4) V&V Tasks – Implementation Phase
• Evaluation of source code.
• Evaluation of documents.
• Generation of test cases.
• Generation of the test procedure.
• Execution of Components test cases.
Resource: https://www.softwaretestinghelp.com/what-is-verification-and-validation/
V&V In Different Phases Of The
Development Lifecycle 3/4
#5) V&V Tasks – Test Phase
• Execution of systems test case.
• Execution of the acceptance test case.
• Updating traceability metrics.
• Risk analysis

#6) V&V Tasks – Installation and checkout phase


• Audit of installation and configuration.
• The final test of the installation candidate build.
• Generation of the final test report.

Resource: https://www.softwaretestinghelp.com/what-is-verification-and-validation/
V&V In Different Phases Of The
Development Lifecycle 3/4
#7) V&V Tasks – Operation Phase
• Evaluation of new constraint.
• Assessment of the change proposed.

#8) V&V Tasks – Maintenance Phase


• Evaluation of the anomalies.
• Assessment of migration.
• Assessment of the retrial features.
• Assessment of the proposed change.
• Validating the production issues.

Resource: https://www.softwaretestinghelp.com/what-is-verification-and-validation/
The Psychology of Testing
The testing mindset

• The mindset to be used while testing is different from that used while
developing software
▫ Developers build products to meet a real-world need;
▫ Testers check to see if they’re good enough
• With the right mindset, developers are able to test their own code;
• However, separation of this responsibility to a tester is typically done to
help focus effort and provide an independent view
24

ISO standard

• IEEE 829 A standard for the format of documents used in different stages of
software testing.
• IEEE 1061 A methodology for establishing quality requirements, identifying,
implementing, analyzing, and validating the process, and product of software
quality metrics.
• IEEE 1059 Guide for Software Verification and Validation Plans.
• IEEE 1008 A standard for unit testing.
• IEEE 1012 A standard for Software Verification and Validation.
• IEEE 1028 A standard for software inspections.
• IEEE 1044 A standard for the classification of software anomalies.
25

ISO standard (cont.)

• IEEE 1044-1 A guide for the classification of software anomalies.


• IEEE 830 A guide for developing system requirements specifications.
• IEEE 730 A standard for software quality assurance plans.
• IEEE 1061 A standard for software quality metrics and methodology.
• IEEE 12207 A standard for software life cycle processes and life cycle data.
• BS 7925-1 A vocabulary of terms used in software testing.
• BS 7925-2 A standard for software component testing.
CMMI

Verification Activities Validation Activities


Performing peer reviews. Validate that the products and its
components are suitable for the
environment.
Verify the selected work products. When the validation process is being
implemented, It is monitored and
controlled.
Standardize a definite process by Do lessons learned activities and
establishing organizational level collect improvement information.
policies for planning and doing Institutionalize a definite process.
reviews.

You might also like