SlideShare a Scribd company logo
1 of 21
Software Verification and Validation
Lecture-02
Software Quality
 The degree to which a system, component,
or process meets specified requirements.
OR
 The degree to which a system, component
or process meets customer or user needs or
expectations.
Quality Assurance
 Product and software quality does not
happen by accident, and is not something
that can be added on after the fact.
 To achieve quality, we must plan for it from
the beginning, and continuously monitor it
day to day
 This requires discipline
 Methods and disciplines for achieving quality
results are the study of Quality Assurance or
QA
Quality Assurance
 Three General Principles of QA
 Know what you are doing
 Know what you should be doing
 Know how to measure the difference
Software Quality Assurance
QA Principle 1: Know What You Are Doing
 In the context of software quality, this means
continuously understanding what it is you are
building, how you are building it and what it currently
does
 This requires organization, including having a
management structure, reporting policies, regular
meetings and reviews, frequent test runs, and so on
 We normally address this by following a software
process with regular milestones, planning,
scheduling, reporting and tracking procedures
QA Principle 2: Know What You Should be Doing
 In the context of software quality, this means having
explicit requirements and specifications
 These must be continuously updated and tracked as
part of the software development and evolution cycle
 We normally address this by requirements and use-
case analysis, explicit acceptance tests with
expected results, explicit prototypes, frequent user
feedback
 Particular procedures and methods for this are
usually part of our software process
Software Quality Assurance
QA Principle 3: Know How to Measure the Difference
 In the context of software quality, this means having
explicit measures comparing what we are doing to
what we should be doing.
 Achieved using four complementary methods:
• Formal Methods - consists of using mathematical models or
methods to verify mathematically specified properties
• Testing - consists of creating explicit inputs or environments to
exercise the software, and measuring its success
• Inspection- consists of regular human reviews of requirements,
design, architecture, schedules and code
• Metrics- consists of instrumenting code or execution to measure
a known set of simple properties related to quality
Software Quality Assurance
Formal Methods
 Formal methods include formal verification (proofs of
correctness), abstract interpretation (simulated execution in
a different semantic domain, e.g., data kind rather than
value), state modelling (simulated execution using a
mathematical model to keep track of state transitions), and
other mathematical methods
 Traditionally, use of formal methods requires mathematically
sophisticated programmers, and is necessarily a slow and
careful process, and very expensive
 In the past, formal methods have been used directly in
software quality assurance in a small (but important) fraction
of systems
 Primarily safety critical systems such as onboard flight
control systems, nuclear
Testing
Focus of the Course
 The vast majority (over 99%) of software quality assurance
uses testing, inspection and metrics instead of formal
methods
 Example: at the Bank of Nova Scotia, over 80% of the total
software development effort is involved in testing!
Testing
 Testing includes a wide range of methods based on the idea
of running the software through a set of example inputs or
situations and validating the results
 Includes methods based on requirements (acceptance
testing), specification and design (functionality and interface
testing), history (regression testing), code structure (path
testing), and many more
Inspection
 Inspection includes methods based on a
human review of the software artifacts
 Includes methods based on requirements
reviews, design reviews, scheduling and
planning reviews, code walkthroughs, and so
on
 Helps discover potential problems before
they arise in practice
Metrics
 Software metrics includes methods based on using tools
to count the use of features or structures in the code or
other software artifacts, and compare them to standards
 Includes methods based on code size (number of source
lines), code complexity (number of parameters,
decisions, function points, modules or methods),
structural complexity (number or depth of calls or
transactions), design complexity, and so on.
 Helps expose anomalous or undesirable properties that
may reduce reliability and maintainability
Achieving Software Quality
Software Process
 Software quality is achieved by
applying these techniques in the
framework of a software process.
 There are many software processes
proposed, of which extreme
Programming is one of the more
recent.
SQA in SDLC
 Requirements
 Architectural design
 Detailed design
 Implementation
 Testing
Requirements Phase
 Senior QA/Manager ensures that the user/client
requirements are captured correctly
 Find out the risks in the requirement and decide how
the system will be tested.
 Properly expressed as functional, performance and
interface requirements.
 Review the requirement document and other
deliverables meeting the standard
 Prepare the formal test plan including the test tools
are being used in the project.
Architectural Design Phase
 Ensure that architectural design meets standards as
designated in the Project Plan
 Verify all captured requirement are allocated to
software components
 Verify all the design documents are completed on
time according to the project plan and kept in project
repository (ER Diagram, Process diagram, Use
Case, etc).
 Prepare the design test report and submit to the
project manager.
Detailed Design Phase
 Prepare the test objectives from the requirement and
design document created.
 Design a verification matrix or Check list and update
on regular basis
 Send the test documents to project manager for
approval and keep them in repository
Implementation Phase
 Verify the results of coding and design activities
including the schedule available in the project plan
 Check the status of all deliverable items and verify
that all are maintaining the standard.
 Getting updated with the tools and technologies
used in the projects and provide the feedback to the
team if any better solution is available.
 Complete writing the check list/ test cases to start
testing.
 Verify that the components are ready to start test or
not.
Testing Phase
 Start testing individual module and stat reporting
bugs
 Verify that all tests are run according to test plans
 Verify all the bugs available in the bug tracking
system are resolved.
 Compile the test reports and verify that the report is
complete and correct
 Certify that testing is complete according to the plan
 Start creating the documentation and verify that all
documents are ready for delivery
Verification & Validation (V&V)
 Verification:
"Are we building the product right?"
The software should conform to its specification.
 Validation:
"Are we building the right product?"
The software should do what the user really
requires.
V&V Goals
 Verification and validation should establish
confidence that the software is fit for its
purpose.
• This does NOT mean completely free of
defects.
• Rather, it must be good enough for its
intended use. The type of use will
determine the degree of confidence that
is needed.
Summary
 SQA activities in different SDLC phases
• Requirements phase
• Architectural design phase
• Detailed design phase
• Implementation phase
• Testing phase

More Related Content

Similar to Software_Verification_and_Validation.ppt

Software testing for beginners
Software testing for beginners Software testing for beginners
Software testing for beginners ssuser622d45
 
software engineering
software engineeringsoftware engineering
software engineeringshreeuva
 
Manual testing concepts course 1
Manual testing concepts course 1Manual testing concepts course 1
Manual testing concepts course 1Raghu Kiran
 
Lecture 08 (SQE, Testing, PM, RM, ME).pptx
Lecture 08 (SQE, Testing, PM, RM, ME).pptxLecture 08 (SQE, Testing, PM, RM, ME).pptx
Lecture 08 (SQE, Testing, PM, RM, ME).pptxSirRafiLectures
 
Quality Management
Quality ManagementQuality Management
Quality ManagementBuchiri
 
Quality Mangt
Quality MangtQuality Mangt
Quality Mangtajithsrc
 
Software testing
Software testingSoftware testing
Software testingRavi Dasari
 
16103271 software-testing-ppt
16103271 software-testing-ppt16103271 software-testing-ppt
16103271 software-testing-pptatish90
 
SQA Lecture 01 (Introduction) - Testing and SQA
SQA Lecture 01 (Introduction) - Testing and SQASQA Lecture 01 (Introduction) - Testing and SQA
SQA Lecture 01 (Introduction) - Testing and SQAsunena224
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurancelokareminakshi
 
Software quality assurance lecture 1
Software quality assurance lecture 1Software quality assurance lecture 1
Software quality assurance lecture 1Abdul Basit
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceEr. Nancy
 
Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24koolkampus
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance Webtech Learning
 

Similar to Software_Verification_and_Validation.ppt (20)

Quality Assurance and Testing services
Quality Assurance and Testing servicesQuality Assurance and Testing services
Quality Assurance and Testing services
 
SQA_Class
SQA_ClassSQA_Class
SQA_Class
 
stfbegn.ppt
stfbegn.pptstfbegn.ppt
stfbegn.ppt
 
Software testing for beginners
Software testing for beginners Software testing for beginners
Software testing for beginners
 
software engineering
software engineeringsoftware engineering
software engineering
 
Manual testing concepts course 1
Manual testing concepts course 1Manual testing concepts course 1
Manual testing concepts course 1
 
Lecture 08 (SQE, Testing, PM, RM, ME).pptx
Lecture 08 (SQE, Testing, PM, RM, ME).pptxLecture 08 (SQE, Testing, PM, RM, ME).pptx
Lecture 08 (SQE, Testing, PM, RM, ME).pptx
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Quality Management
Quality ManagementQuality Management
Quality Management
 
Ch27
Ch27Ch27
Ch27
 
Quality Mangt
Quality MangtQuality Mangt
Quality Mangt
 
Software testing
Software testingSoftware testing
Software testing
 
16103271 software-testing-ppt
16103271 software-testing-ppt16103271 software-testing-ppt
16103271 software-testing-ppt
 
SQA Lecture 01 (Introduction) - Testing and SQA
SQA Lecture 01 (Introduction) - Testing and SQASQA Lecture 01 (Introduction) - Testing and SQA
SQA Lecture 01 (Introduction) - Testing and SQA
 
CMM.ppt
CMM.pptCMM.ppt
CMM.ppt
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Software quality assurance lecture 1
Software quality assurance lecture 1Software quality assurance lecture 1
Software quality assurance lecture 1
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24Quality Management in Software Engineering SE24
Quality Management in Software Engineering SE24
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance
 

More from Saba651353

deadlock and starvation resources allocation.pptx
deadlock and starvation resources allocation.pptxdeadlock and starvation resources allocation.pptx
deadlock and starvation resources allocation.pptxSaba651353
 
scheduling Uni processor Long-term .ppt
scheduling  Uni processor Long-term .pptscheduling  Uni processor Long-term .ppt
scheduling Uni processor Long-term .pptSaba651353
 
ARTIFICIAL INTELLIGENCE AI technology .pptx
ARTIFICIAL INTELLIGENCE AI technology .pptxARTIFICIAL INTELLIGENCE AI technology .pptx
ARTIFICIAL INTELLIGENCE AI technology .pptxSaba651353
 
Introduction_wsn.pptx
Introduction_wsn.pptxIntroduction_wsn.pptx
Introduction_wsn.pptxSaba651353
 
Microcontroller.pptx
Microcontroller.pptxMicrocontroller.pptx
Microcontroller.pptxSaba651353
 
LlosengCh10E2.ppt
LlosengCh10E2.pptLlosengCh10E2.ppt
LlosengCh10E2.pptSaba651353
 
Principles-of-SoftwareTesting.pptx
Principles-of-SoftwareTesting.pptxPrinciples-of-SoftwareTesting.pptx
Principles-of-SoftwareTesting.pptxSaba651353
 
security and usable.ppt
security and usable.pptsecurity and usable.ppt
security and usable.pptSaba651353
 
RFID_NFC_Tags.ppt
RFID_NFC_Tags.pptRFID_NFC_Tags.ppt
RFID_NFC_Tags.pptSaba651353
 
COMMUNICATING FINITE MACHINE.pptx
COMMUNICATING FINITE MACHINE.pptxCOMMUNICATING FINITE MACHINE.pptx
COMMUNICATING FINITE MACHINE.pptxSaba651353
 
730-214 - IEEE Standard for Software Quality Assurance.pptx
730-214 - IEEE Standard for Software Quality Assurance.pptx730-214 - IEEE Standard for Software Quality Assurance.pptx
730-214 - IEEE Standard for Software Quality Assurance.pptxSaba651353
 

More from Saba651353 (11)

deadlock and starvation resources allocation.pptx
deadlock and starvation resources allocation.pptxdeadlock and starvation resources allocation.pptx
deadlock and starvation resources allocation.pptx
 
scheduling Uni processor Long-term .ppt
scheduling  Uni processor Long-term .pptscheduling  Uni processor Long-term .ppt
scheduling Uni processor Long-term .ppt
 
ARTIFICIAL INTELLIGENCE AI technology .pptx
ARTIFICIAL INTELLIGENCE AI technology .pptxARTIFICIAL INTELLIGENCE AI technology .pptx
ARTIFICIAL INTELLIGENCE AI technology .pptx
 
Introduction_wsn.pptx
Introduction_wsn.pptxIntroduction_wsn.pptx
Introduction_wsn.pptx
 
Microcontroller.pptx
Microcontroller.pptxMicrocontroller.pptx
Microcontroller.pptx
 
LlosengCh10E2.ppt
LlosengCh10E2.pptLlosengCh10E2.ppt
LlosengCh10E2.ppt
 
Principles-of-SoftwareTesting.pptx
Principles-of-SoftwareTesting.pptxPrinciples-of-SoftwareTesting.pptx
Principles-of-SoftwareTesting.pptx
 
security and usable.ppt
security and usable.pptsecurity and usable.ppt
security and usable.ppt
 
RFID_NFC_Tags.ppt
RFID_NFC_Tags.pptRFID_NFC_Tags.ppt
RFID_NFC_Tags.ppt
 
COMMUNICATING FINITE MACHINE.pptx
COMMUNICATING FINITE MACHINE.pptxCOMMUNICATING FINITE MACHINE.pptx
COMMUNICATING FINITE MACHINE.pptx
 
730-214 - IEEE Standard for Software Quality Assurance.pptx
730-214 - IEEE Standard for Software Quality Assurance.pptx730-214 - IEEE Standard for Software Quality Assurance.pptx
730-214 - IEEE Standard for Software Quality Assurance.pptx
 

Recently uploaded

WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2
 
Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2WSO2
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Eraconfluent
 
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2
 

Recently uploaded (20)

WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
 
Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
 

Software_Verification_and_Validation.ppt

  • 1. Software Verification and Validation Lecture-02
  • 2. Software Quality  The degree to which a system, component, or process meets specified requirements. OR  The degree to which a system, component or process meets customer or user needs or expectations.
  • 3. Quality Assurance  Product and software quality does not happen by accident, and is not something that can be added on after the fact.  To achieve quality, we must plan for it from the beginning, and continuously monitor it day to day  This requires discipline  Methods and disciplines for achieving quality results are the study of Quality Assurance or QA
  • 4. Quality Assurance  Three General Principles of QA  Know what you are doing  Know what you should be doing  Know how to measure the difference
  • 5. Software Quality Assurance QA Principle 1: Know What You Are Doing  In the context of software quality, this means continuously understanding what it is you are building, how you are building it and what it currently does  This requires organization, including having a management structure, reporting policies, regular meetings and reviews, frequent test runs, and so on  We normally address this by following a software process with regular milestones, planning, scheduling, reporting and tracking procedures
  • 6. QA Principle 2: Know What You Should be Doing  In the context of software quality, this means having explicit requirements and specifications  These must be continuously updated and tracked as part of the software development and evolution cycle  We normally address this by requirements and use- case analysis, explicit acceptance tests with expected results, explicit prototypes, frequent user feedback  Particular procedures and methods for this are usually part of our software process Software Quality Assurance
  • 7. QA Principle 3: Know How to Measure the Difference  In the context of software quality, this means having explicit measures comparing what we are doing to what we should be doing.  Achieved using four complementary methods: • Formal Methods - consists of using mathematical models or methods to verify mathematically specified properties • Testing - consists of creating explicit inputs or environments to exercise the software, and measuring its success • Inspection- consists of regular human reviews of requirements, design, architecture, schedules and code • Metrics- consists of instrumenting code or execution to measure a known set of simple properties related to quality Software Quality Assurance
  • 8. Formal Methods  Formal methods include formal verification (proofs of correctness), abstract interpretation (simulated execution in a different semantic domain, e.g., data kind rather than value), state modelling (simulated execution using a mathematical model to keep track of state transitions), and other mathematical methods  Traditionally, use of formal methods requires mathematically sophisticated programmers, and is necessarily a slow and careful process, and very expensive  In the past, formal methods have been used directly in software quality assurance in a small (but important) fraction of systems  Primarily safety critical systems such as onboard flight control systems, nuclear
  • 9. Testing Focus of the Course  The vast majority (over 99%) of software quality assurance uses testing, inspection and metrics instead of formal methods  Example: at the Bank of Nova Scotia, over 80% of the total software development effort is involved in testing! Testing  Testing includes a wide range of methods based on the idea of running the software through a set of example inputs or situations and validating the results  Includes methods based on requirements (acceptance testing), specification and design (functionality and interface testing), history (regression testing), code structure (path testing), and many more
  • 10. Inspection  Inspection includes methods based on a human review of the software artifacts  Includes methods based on requirements reviews, design reviews, scheduling and planning reviews, code walkthroughs, and so on  Helps discover potential problems before they arise in practice
  • 11. Metrics  Software metrics includes methods based on using tools to count the use of features or structures in the code or other software artifacts, and compare them to standards  Includes methods based on code size (number of source lines), code complexity (number of parameters, decisions, function points, modules or methods), structural complexity (number or depth of calls or transactions), design complexity, and so on.  Helps expose anomalous or undesirable properties that may reduce reliability and maintainability
  • 12. Achieving Software Quality Software Process  Software quality is achieved by applying these techniques in the framework of a software process.  There are many software processes proposed, of which extreme Programming is one of the more recent.
  • 13. SQA in SDLC  Requirements  Architectural design  Detailed design  Implementation  Testing
  • 14. Requirements Phase  Senior QA/Manager ensures that the user/client requirements are captured correctly  Find out the risks in the requirement and decide how the system will be tested.  Properly expressed as functional, performance and interface requirements.  Review the requirement document and other deliverables meeting the standard  Prepare the formal test plan including the test tools are being used in the project.
  • 15. Architectural Design Phase  Ensure that architectural design meets standards as designated in the Project Plan  Verify all captured requirement are allocated to software components  Verify all the design documents are completed on time according to the project plan and kept in project repository (ER Diagram, Process diagram, Use Case, etc).  Prepare the design test report and submit to the project manager.
  • 16. Detailed Design Phase  Prepare the test objectives from the requirement and design document created.  Design a verification matrix or Check list and update on regular basis  Send the test documents to project manager for approval and keep them in repository
  • 17. Implementation Phase  Verify the results of coding and design activities including the schedule available in the project plan  Check the status of all deliverable items and verify that all are maintaining the standard.  Getting updated with the tools and technologies used in the projects and provide the feedback to the team if any better solution is available.  Complete writing the check list/ test cases to start testing.  Verify that the components are ready to start test or not.
  • 18. Testing Phase  Start testing individual module and stat reporting bugs  Verify that all tests are run according to test plans  Verify all the bugs available in the bug tracking system are resolved.  Compile the test reports and verify that the report is complete and correct  Certify that testing is complete according to the plan  Start creating the documentation and verify that all documents are ready for delivery
  • 19. Verification & Validation (V&V)  Verification: "Are we building the product right?" The software should conform to its specification.  Validation: "Are we building the right product?" The software should do what the user really requires.
  • 20. V&V Goals  Verification and validation should establish confidence that the software is fit for its purpose. • This does NOT mean completely free of defects. • Rather, it must be good enough for its intended use. The type of use will determine the degree of confidence that is needed.
  • 21. Summary  SQA activities in different SDLC phases • Requirements phase • Architectural design phase • Detailed design phase • Implementation phase • Testing phase