Quality Assurance
                     in
       Software Development Lifecycle

            Concepts, Practices, and Challenges




Adil Ahmed Mughal
About This Session
• What you must already know?
   – Basic concepts of Software Engineering



• What you will learn today?
   – Understanding commonly used concepts
   – How do we use theory in practice
   – What are the challenges we faced in industry
About This Session
• What you must already know?
   – Basic concepts of Software Engineering
   This is not a single side talk, its discussion!
• What you will learn today?
 Promise me that you will raise hand when you
  – Understanding commonly used concepts
              have anything to say?
   – How do we use theory in practice
   – What are the challenges we faced in industry
About Speaker
                             Adil Ahmed Mughal
Affiliations:




Contact Information:

      adil.mughal@live.com

     @adilamughal

      http://www.adilmughal.com
Concepts & Terminologies
• What is Quality?
  – Conformances to requirements
  – Fitness for use
  – performs these specified functions correctly over
    repeated use or over a long period of time
Concepts & Terminologies
• Purpose of QA
  – To ensure software quality through the related set
    of (validation and verification) activities
Concepts & Terminologies



Quality Assurance != Testing
Concepts & Terminologies
• Software Development Lifecycle (SDLC)


    Planning         Design          Testing




    Analysis       Development     Maintenance
Concepts & Terminologies
• SDLC & Quality Assurance
               Quality Assurance (Umbrella)

    Planning                   Design                      Testing




    Analysis               Development                   Maintenance



               Quality Planning
               Execution (Verification and Validation)
                               Measurement and Analysis
Concepts & Terminologies



Quality Assurance > Testing
Concepts & Terminologies



Functional & Non-Functional Testing
Concepts & Terminologies

          Functional                     Non-Functional

 Integrating                       Installation   Interoperability
                 System Testing
   Testing


 Regression                       Compatibility      Usability
                  API Testing
  Testing


GUI Validation   Documentation    Globalization      Security
   Testing          Review
Concepts & Terminologies



Error, Fault, Failure and Defect
Concepts & Terminologies


Error                      Fault                 Failure
• Missing/Incorrect        • Incorrect step in   • Inability of a
  Human action               computer program      system
                                                 • Behavioral
                                                   deviation




Collectively referred as   Defect
Concepts & Terminologies



Verification and Validation?
Concepts & Terminologies

Verification                    Validation
• Verification evaluates        • Validation evaluates the
  documents, plans, code,         product itself.
  requirements, and
  specifications
                                • Involves the execution of
                                  tests designed to cover each
• For example,                    of the specific system
  • Inconsistent Requirements     requirements
  • Design Walkthroughs
  • Code Inspections
Concepts & Terminologies

Verification                    Validation
• Verification evaluates        • Validation evaluates the
  documents, plans, code,         product itself.
 Verification and Validation?
  requirements, and
  specifications
                                • Involves the execution of
                                  tests designed to cover each
• For example,                    of the specific system
  • Inconsistent Requirements     requirements
  • Design Walkthroughs
  • Code Inspections
Practices
• So how it is done in Industry?
   Planning    • Create a QA plan/test strategy


    Analysis    • Specification Review


    Design

 Development   • Develop test cases for testing (validation)

               • Test cases execution on developed software
    Testing      and Integration testing

  Deployment   • Build validation/Shipment assurance
Practices
• It could be improved like
                 • Create a QA plan/test strategy
     Planning
                 • Review project plan
     Analysis    • Specification Review
      Design     • Analyze design
                 • Develop test cases for testing (validation)
   Development   • Code Inspection/Review
                 • Unit Testing
                 •   Test cases execution on developed software
                 •   Integration testing
      Testing
                 •   Test Automation (tools)
                 •   Non-Functional Testing
    Deployment   • Build validation/Shipment assurance
Challenges



Focus on Functional Testing
Challenges



Relative Cost of Bug Fix
Challenges
Challenges

           Time




          Quality

Feature             Cost
Challenges



Career Path and Opportunities
   Myth: Those who are not comfortable
   with programming takes QA job
Thank You!


          Adil Ahmed Mughal

adil.mughal@live.com
@adilamughal

http://www.adilmughal.com

Quality Assurance in SDLC

  • 1.
    Quality Assurance in Software Development Lifecycle Concepts, Practices, and Challenges Adil Ahmed Mughal
  • 2.
    About This Session •What you must already know? – Basic concepts of Software Engineering • What you will learn today? – Understanding commonly used concepts – How do we use theory in practice – What are the challenges we faced in industry
  • 3.
    About This Session •What you must already know? – Basic concepts of Software Engineering This is not a single side talk, its discussion! • What you will learn today? Promise me that you will raise hand when you – Understanding commonly used concepts have anything to say? – How do we use theory in practice – What are the challenges we faced in industry
  • 4.
    About Speaker Adil Ahmed Mughal Affiliations: Contact Information: adil.mughal@live.com @adilamughal http://www.adilmughal.com
  • 5.
    Concepts & Terminologies •What is Quality? – Conformances to requirements – Fitness for use – performs these specified functions correctly over repeated use or over a long period of time
  • 6.
    Concepts & Terminologies •Purpose of QA – To ensure software quality through the related set of (validation and verification) activities
  • 7.
  • 8.
    Concepts & Terminologies •Software Development Lifecycle (SDLC) Planning Design Testing Analysis Development Maintenance
  • 9.
    Concepts & Terminologies •SDLC & Quality Assurance Quality Assurance (Umbrella) Planning Design Testing Analysis Development Maintenance Quality Planning Execution (Verification and Validation) Measurement and Analysis
  • 10.
  • 11.
    Concepts & Terminologies Functional& Non-Functional Testing
  • 12.
    Concepts & Terminologies Functional Non-Functional Integrating Installation Interoperability System Testing Testing Regression Compatibility Usability API Testing Testing GUI Validation Documentation Globalization Security Testing Review
  • 13.
    Concepts & Terminologies Error,Fault, Failure and Defect
  • 14.
    Concepts & Terminologies Error Fault Failure • Missing/Incorrect • Incorrect step in • Inability of a Human action computer program system • Behavioral deviation Collectively referred as Defect
  • 15.
  • 16.
    Concepts & Terminologies Verification Validation • Verification evaluates • Validation evaluates the documents, plans, code, product itself. requirements, and specifications • Involves the execution of tests designed to cover each • For example, of the specific system • Inconsistent Requirements requirements • Design Walkthroughs • Code Inspections
  • 17.
    Concepts & Terminologies Verification Validation • Verification evaluates • Validation evaluates the documents, plans, code, product itself. Verification and Validation? requirements, and specifications • Involves the execution of tests designed to cover each • For example, of the specific system • Inconsistent Requirements requirements • Design Walkthroughs • Code Inspections
  • 18.
    Practices • So howit is done in Industry? Planning • Create a QA plan/test strategy Analysis • Specification Review Design Development • Develop test cases for testing (validation) • Test cases execution on developed software Testing and Integration testing Deployment • Build validation/Shipment assurance
  • 19.
    Practices • It couldbe improved like • Create a QA plan/test strategy Planning • Review project plan Analysis • Specification Review Design • Analyze design • Develop test cases for testing (validation) Development • Code Inspection/Review • Unit Testing • Test cases execution on developed software • Integration testing Testing • Test Automation (tools) • Non-Functional Testing Deployment • Build validation/Shipment assurance
  • 20.
  • 21.
  • 22.
  • 23.
    Challenges Time Quality Feature Cost
  • 24.
    Challenges Career Path andOpportunities Myth: Those who are not comfortable with programming takes QA job
  • 25.
    Thank You! Adil Ahmed Mughal adil.mughal@live.com @adilamughal http://www.adilmughal.com