SlideShare uma empresa Scribd logo
1 de 35
Software Quality Assurance – A general
walkthrough
• What is it?
• What are its objectives?
• What do QAs do?
Content
• Essence
• Terminology
• Classification
  – Unit, System …
  – BlackBox, WhiteBox
Definition
• Glen Myers
  – Testing is the process of executing a
    program with the intent of finding errors
Objective explained
• Paul Jorgensen
  – Testing is obviously concerned with errors,
    faults, failures and incidents. A test is the
    act of exercising software with test cases
    with an objective of
     • Finding failure
     • Demonstrate correct execution
A Testing Life Cycle
                                                Fix
       Error
Requirement                                         Fault
   Specs          Error                           Resolution
 Fault
                                                Fault
        Design                                Isolation
                         Error
       Fault
                                           Fault
               Coding
                                       Classification
                 Fault                      incident
                             Testing
Verification versus Validation
• Verification is concerned with phase
  containment of errors
• Validation is concerned about the final
  product to be error free
Relationship – program behaviors
               Program Behaviors




            Specified     Programmed
           (expected)      (observed)
            Behavior        Behavior    Fault
Fault
                                        Of
Of
                                        Commission
Omission

                  Correct portion
Classification of Test
• There are two levels of classification
  – One distinguishes at granularity level
     • Unit level
     • System level
     • Integration level
  – Other classification (mostly for unit level) is
    based on methodologies
     • Black box (Functional) Testing
     • White box (Structural) Testing
Relationship – Testing wrt Behavior
                 Program
                 Behaviors
             5                6
           Specified      Programmed
          (expected)    2 (observed)
           Behavior     1 Behavior
                   4        3
                 Test Cases
             (Verified behavior)
      8                7
Cont…
• 2, 5
  – Specified behavior that are not tested
• 1, 4
  – Specified behavior that are tested
• 3, 7
  – Test cases corresponding to unspecified
    behavior
Cont…
• 2, 6
  – Programmed behavior that are not tested
• 1, 3
  – Programmed behavior that are tested
• 4, 7
  – Test cases corresponding to un-
    programmed behaviors
Inferences
• If there are specified behaviors for which
  there are no test cases, the testing is
  incomplete
• If there are test cases that correspond to
  unspecified behaviors
  – Either such test cases are unwarranted
  – Specification is deficient (also implies that
    testers should participate in specification and
    design reviews)
Test methodologies
• Functional (Black box) inspects specified
  behavior
• Structural (White box) inspects
  programmed behavior
When to use what
• Few set of guidelines available
• A logical approach could be
  – Prepare functional test cases as part of
    specification. However they could be used
    only after unit and/or system is available.
  – Preparation of Structural test cases could
    be part of implementation/code phase.
  – Unit, Integration and System testing are
    performed in order.
Unit testing – essence
• Applicable to modular design
  – Unit testing inspects individual modules
• Locate error in smaller region
  – In an integrated system, it may not be
    easier to determine which module has
    caused fault
  – Reduces debugging efforts
Test cases and Test suites
• Test case is a triplet [I, S, O] where
  – I is input data
  – S is state of system at which data will be
    input
  – O is the expected output
• Test suite is set of all test cases
• Test cases are not randomly selected.
  Instead even they need to be designed.
Need for designing test cases
• Almost every non-trivial system has an
  extremely large input data domain
  thereby making exhaustive testing
  impractical
• If randomly selected then test case may
  loose significance since it may expose
  an already detected error by some
  other test case
Time for an exercise
• Give me all possible test cases for this
  object:
Black box testing
• Equivalence class partitioning
• Boundary value analysis
• Comparison testing
Equivalence Class Partitioning

• Input values to a program are
  partitioned into equivalence classes.
• Partitioning is done such that:
   – program behaves in similar ways to
     every input value belonging to an
     equivalence class.
Why define equivalence classes?
• Test the code with just one
  representative value from each
  equivalence class:
  – as good as testing using any other values
    from the equivalence classes.
Equivalence Class Partitioning
• How do you determine the equivalence
  classes?
  – examine the input data.
  – few general guidelines for determining the
    equivalence classes can be given
Equivalence Class Partitioning
• If the input data to the program is
  specified by a range of values:
  – e.g. numbers between 1 to 5000.
  – one valid and two invalid equivalence
    classes are defined.

          1                       5000
Equivalence Class Partitioning
• If input is an enumerated set of values:
  – e.g. {a,b,c}
  – one equivalence class for valid input values

  – another equivalence class for invalid input
    values should be defined.
Example
• A program reads an input value in the
  range of 1 and 5000:
  – computes the square root of the input
    number

                    SQRT
Example (cont.)
• There are three equivalence classes:
  – the set of negative integers,
  – set of integers in the range of 1 and 5000,
  – integers larger than 5000.


          1                        5000
Example (cont.)
• The test suite must include:
  – representatives from each of the three
    equivalence classes:
  – a possible test suite can be:
    {-5,500,6000}.

          1                       5000
Boundary Value Analysis
• Some typical programming errors occur:
  – at boundaries of equivalence classes
  – might be purely due to psychological
    factors.
• Programmers often fail to see:
  – special processing required at the
    boundaries of equivalence classes.
Boundary Value Analysis
• Programmers may improperly use <
  instead of <=
• Boundary value analysis:
  – select test cases at the boundaries of
    different equivalence classes.
Example
• For a function that computes the square
  root of an integer in the range of 1 and
  5000:
  – test cases must include the values:
    {0,1,5000,5001}.

          1                       5000
• Acceptance testing
• Formal testing with respect to user needs, requirements, and business
  processes conducted to determine whether or not a system satisfies
  the acceptance criteria and to enable the user, customers or other
  authorized entity to determine whether or not to accept the system.
• Alpha testing
• Simulated or actual operational testing by potential users/customers or
  an independent test team at the developers’ site, but outside the
  development organization. Alpha testing is often employed for off-the-
  shelf software as a form of internal acceptance testing.
• Back-to-back testing
• Testing in which two or more variants of a component or system are
  executed with the same inputs, the outputs compared, and analyzed in
  cases of discrepancies.
• Beta testing
• Operational testing by potential and/or existing users/customers at an
  external site not otherwise involved with the developers, to determine
  whether or not a component or system satisfies the user/customer
  needs and fits within the business processes. Beta testing is often
  employed as a form of external acceptance testing for off-the-shelf
  software in order to acquire feedback from the market.
Continued…
•   Black-box testing
•   Testing, either functional or non-functional, without reference to the internal
    structure of the component or system.
•   Boundary value
•   An input value or output value which is on the edge of an equivalence partition
    or at the smallest incremental distance on either side of an edge, for example
    the minimum or maximum value of a range.
•   Boundary value analysis
•   A black box test design technique in which test cases are designed based on
    boundary values.
•   Branch testing
•   A white box test design technique in which test cases are designed to execute
    branches.
•   Defect
•   A flaw in a component or system that can cause the component or system to fail
    to perform its required function, e.g. an incorrect statement or data definition. A
    defect, if encountered during execution, may cause a failure of the component
    or system.
Continued…
•   Functional testing
•   Testing based on an analysis of the specification of the functionality of a component or
    system.
•   Integration testing
•   Testing performed to expose defects in the interfaces and in the interactions between
    integrated components or systems.
•   Load testing
•   A test type concerned with measuring the behavior of a component or system with
    increasing load, e.g. number of parallel users and/or numbers of transactions to determine
    what load can be handled by the component or system.
•   Monkey testing
•   Testing by means of a random selection from a large range of inputs and by randomly
    pushing buttons, ignorant on how the product is being used.
•   Recoverability testing
•   The process of testing to determine the recoverability of a software product.
•   Regression testing
•   Testing of a previously tested program following modification to ensure that defects have
    not been introduced or uncovered in unchanged areas of the software, as a result of the
    changes made. It is performed when the software or its environment is changed.
Continued…
•   Severity
•   The degree of impact that a defect has on the development or operation of a component or system.
•   Smoke test
•   A subset of all defined/planned test cases that cover the main functionality of a component or system, to
    ascertaining that the most crucial functions of a program work, but not bothering with finer details. A daily
    build and smoke test is among industry best practices.
•   Test automation
•   The use of software to perform or support test activities, e.g. test management, test design, test execution
    and results checking.
•   Test case specification
•   A document specifying a set of test cases (objective, inputs, test actions, expected results, and execution
    preconditions) for a test item.
•   Test design specification
•   A document specifying the test conditions (coverage items) for a test item, the detailed test approach and
    identifying the associated high level test cases.
•   Test environment
•   An environment containing hardware, instrumentation, simulators, software tools, and other support
    elements needed to conduct a test.
•   Test harness
•   A test environment comprised of stubs and drivers needed to execute a test.
•   Test log
•   A chronological record of relevant details about the execution of tests.
Questions?

Mais conteúdo relacionado

Mais procurados

Interview questions for manual testing technology.
Interview questions for manual testing technology.Interview questions for manual testing technology.
Interview questions for manual testing technology.Vinay Agnihotri
 
Software Testing Fundamentals | Basics Of Software Testing
Software Testing Fundamentals | Basics Of Software TestingSoftware Testing Fundamentals | Basics Of Software Testing
Software Testing Fundamentals | Basics Of Software TestingKostCare
 
Testing artifacts test cases
Testing artifacts   test casesTesting artifacts   test cases
Testing artifacts test casesPetro Chernii
 
Importance of Software testing in SDLC and Agile
Importance of Software testing in SDLC and AgileImportance of Software testing in SDLC and Agile
Importance of Software testing in SDLC and AgileChandan Mishra
 
ISTQB / ISEB Foundation Exam Practice - 6
ISTQB / ISEB Foundation Exam Practice - 6ISTQB / ISEB Foundation Exam Practice - 6
ISTQB / ISEB Foundation Exam Practice - 6Yogindernath Gupta
 
Software Testing Introduction
Software Testing IntroductionSoftware Testing Introduction
Software Testing IntroductionArunKumar5524
 
SOFTWARE TESTING UNIT-4
SOFTWARE TESTING UNIT-4  SOFTWARE TESTING UNIT-4
SOFTWARE TESTING UNIT-4 Mohammad Faizan
 
ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1Yogindernath Gupta
 
A survey of software testing
A survey of software testingA survey of software testing
A survey of software testingTao He
 
Evolution of Software Testing - Chuan Chuan Law
Evolution of Software Testing - Chuan Chuan Law Evolution of Software Testing - Chuan Chuan Law
Evolution of Software Testing - Chuan Chuan Law Chuan Chuan Law
 
Testing (System Analysis and Design)
Testing (System Analysis and Design)Testing (System Analysis and Design)
Testing (System Analysis and Design)Areeb Khan
 

Mais procurados (20)

Software testing
Software testingSoftware testing
Software testing
 
Notes on teaching software testing
Notes on teaching software testingNotes on teaching software testing
Notes on teaching software testing
 
Interview questions for manual testing technology.
Interview questions for manual testing technology.Interview questions for manual testing technology.
Interview questions for manual testing technology.
 
Software Testing or Quality Assurance
Software Testing or Quality AssuranceSoftware Testing or Quality Assurance
Software Testing or Quality Assurance
 
Software Testing Fundamentals | Basics Of Software Testing
Software Testing Fundamentals | Basics Of Software TestingSoftware Testing Fundamentals | Basics Of Software Testing
Software Testing Fundamentals | Basics Of Software Testing
 
Testing artifacts test cases
Testing artifacts   test casesTesting artifacts   test cases
Testing artifacts test cases
 
Importance of Software testing in SDLC and Agile
Importance of Software testing in SDLC and AgileImportance of Software testing in SDLC and Agile
Importance of Software testing in SDLC and Agile
 
Software testing introduction
Software testing  introductionSoftware testing  introduction
Software testing introduction
 
ISTQB / ISEB Foundation Exam Practice - 6
ISTQB / ISEB Foundation Exam Practice - 6ISTQB / ISEB Foundation Exam Practice - 6
ISTQB / ISEB Foundation Exam Practice - 6
 
Software Testing Introduction
Software Testing IntroductionSoftware Testing Introduction
Software Testing Introduction
 
SOFTWARE TESTING UNIT-4
SOFTWARE TESTING UNIT-4  SOFTWARE TESTING UNIT-4
SOFTWARE TESTING UNIT-4
 
ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1
 
A survey of software testing
A survey of software testingA survey of software testing
A survey of software testing
 
CTFL Module 03
CTFL Module 03CTFL Module 03
CTFL Module 03
 
Evolution of Software Testing - Chuan Chuan Law
Evolution of Software Testing - Chuan Chuan Law Evolution of Software Testing - Chuan Chuan Law
Evolution of Software Testing - Chuan Chuan Law
 
Testing
TestingTesting
Testing
 
3.software testing
3.software testing3.software testing
3.software testing
 
System testing
System testingSystem testing
System testing
 
Stm unit1
Stm unit1Stm unit1
Stm unit1
 
Testing (System Analysis and Design)
Testing (System Analysis and Design)Testing (System Analysis and Design)
Testing (System Analysis and Design)
 

Destaque (6)

Wo
WoWo
Wo
 
Kiểm thử
Kiểm thửKiểm thử
Kiểm thử
 
Software testing day1
Software testing day1Software testing day1
Software testing day1
 
Tp addition
Tp additionTp addition
Tp addition
 
Gd test kieu_test
Gd test kieu_testGd test kieu_test
Gd test kieu_test
 
56251639 bao-dam-chat-luong-pm
56251639 bao-dam-chat-luong-pm56251639 bao-dam-chat-luong-pm
56251639 bao-dam-chat-luong-pm
 

Semelhante a Software QA Guide

Software Engineering Lec 10 -software testing--
Software Engineering Lec 10 -software testing--Software Engineering Lec 10 -software testing--
Software Engineering Lec 10 -software testing--Taymoor Nazmy
 
Software testing part
Software testing partSoftware testing part
Software testing partPreeti Mishra
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssuranceSaqib Raza
 
Software testing software engineering.pdf
Software testing software engineering.pdfSoftware testing software engineering.pdf
Software testing software engineering.pdfvaibhavshukla3003
 
Software engineering Testing technique,test case,test suit design
Software engineering Testing technique,test case,test suit designSoftware engineering Testing technique,test case,test suit design
Software engineering Testing technique,test case,test suit designMaitree Patel
 
Software testing-and-analysis
Software testing-and-analysisSoftware testing-and-analysis
Software testing-and-analysisWBUTTUTORIALS
 
Fundamentals of software part 1
Fundamentals of software part 1Fundamentals of software part 1
Fundamentals of software part 1Siddharth Sharma
 
A Software Testing Intro
A Software Testing IntroA Software Testing Intro
A Software Testing IntroEvozon Test Lab
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tacticsPreeti Mishra
 
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...ShudipPal
 
Unit 5 testing -software quality assurance
Unit 5  testing -software quality assuranceUnit 5  testing -software quality assurance
Unit 5 testing -software quality assurancegopal10scs185
 
Unit 5 testing -software quality assurance
Unit 5  testing -software quality assuranceUnit 5  testing -software quality assurance
Unit 5 testing -software quality assurancegopal10scs185
 
An Insight into the Black Box and White Box Software Testing
An Insight into the Black Box and White Box Software Testing An Insight into the Black Box and White Box Software Testing
An Insight into the Black Box and White Box Software Testing BugRaptors
 
Introduction to software testing
Introduction to software testingIntroduction to software testing
Introduction to software testingSyed Usman Ahmed
 

Semelhante a Software QA Guide (20)

Software Engineering Lec 10 -software testing--
Software Engineering Lec 10 -software testing--Software Engineering Lec 10 -software testing--
Software Engineering Lec 10 -software testing--
 
Testing
TestingTesting
Testing
 
Testing fundamentals
Testing fundamentalsTesting fundamentals
Testing fundamentals
 
Software testing part
Software testing partSoftware testing part
Software testing part
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
G53 qat09pdf6up
G53 qat09pdf6upG53 qat09pdf6up
G53 qat09pdf6up
 
Software testing software engineering.pdf
Software testing software engineering.pdfSoftware testing software engineering.pdf
Software testing software engineering.pdf
 
Software engineering Testing technique,test case,test suit design
Software engineering Testing technique,test case,test suit designSoftware engineering Testing technique,test case,test suit design
Software engineering Testing technique,test case,test suit design
 
Software testing-and-analysis
Software testing-and-analysisSoftware testing-and-analysis
Software testing-and-analysis
 
Fundamentals of software part 1
Fundamentals of software part 1Fundamentals of software part 1
Fundamentals of software part 1
 
A Software Testing Intro
A Software Testing IntroA Software Testing Intro
A Software Testing Intro
 
Testing
TestingTesting
Testing
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tactics
 
Testing Technique
Testing TechniqueTesting Technique
Testing Technique
 
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
 
Unit 5 testing -software quality assurance
Unit 5  testing -software quality assuranceUnit 5  testing -software quality assurance
Unit 5 testing -software quality assurance
 
Unit 5 testing -software quality assurance
Unit 5  testing -software quality assuranceUnit 5  testing -software quality assurance
Unit 5 testing -software quality assurance
 
An Insight into the Black Box and White Box Software Testing
An Insight into the Black Box and White Box Software Testing An Insight into the Black Box and White Box Software Testing
An Insight into the Black Box and White Box Software Testing
 
Introduction to software testing
Introduction to software testingIntroduction to software testing
Introduction to software testing
 
Black box testing
Black box testingBlack box testing
Black box testing
 

Último

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Último (20)

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 

Software QA Guide

  • 1. Software Quality Assurance – A general walkthrough • What is it? • What are its objectives? • What do QAs do?
  • 2. Content • Essence • Terminology • Classification – Unit, System … – BlackBox, WhiteBox
  • 3. Definition • Glen Myers – Testing is the process of executing a program with the intent of finding errors
  • 4. Objective explained • Paul Jorgensen – Testing is obviously concerned with errors, faults, failures and incidents. A test is the act of exercising software with test cases with an objective of • Finding failure • Demonstrate correct execution
  • 5. A Testing Life Cycle Fix Error Requirement Fault Specs Error Resolution Fault Fault Design Isolation Error Fault Fault Coding Classification Fault incident Testing
  • 6. Verification versus Validation • Verification is concerned with phase containment of errors • Validation is concerned about the final product to be error free
  • 7. Relationship – program behaviors Program Behaviors Specified Programmed (expected) (observed) Behavior Behavior Fault Fault Of Of Commission Omission Correct portion
  • 8. Classification of Test • There are two levels of classification – One distinguishes at granularity level • Unit level • System level • Integration level – Other classification (mostly for unit level) is based on methodologies • Black box (Functional) Testing • White box (Structural) Testing
  • 9. Relationship – Testing wrt Behavior Program Behaviors 5 6 Specified Programmed (expected) 2 (observed) Behavior 1 Behavior 4 3 Test Cases (Verified behavior) 8 7
  • 10. Cont… • 2, 5 – Specified behavior that are not tested • 1, 4 – Specified behavior that are tested • 3, 7 – Test cases corresponding to unspecified behavior
  • 11. Cont… • 2, 6 – Programmed behavior that are not tested • 1, 3 – Programmed behavior that are tested • 4, 7 – Test cases corresponding to un- programmed behaviors
  • 12. Inferences • If there are specified behaviors for which there are no test cases, the testing is incomplete • If there are test cases that correspond to unspecified behaviors – Either such test cases are unwarranted – Specification is deficient (also implies that testers should participate in specification and design reviews)
  • 13. Test methodologies • Functional (Black box) inspects specified behavior • Structural (White box) inspects programmed behavior
  • 14. When to use what • Few set of guidelines available • A logical approach could be – Prepare functional test cases as part of specification. However they could be used only after unit and/or system is available. – Preparation of Structural test cases could be part of implementation/code phase. – Unit, Integration and System testing are performed in order.
  • 15. Unit testing – essence • Applicable to modular design – Unit testing inspects individual modules • Locate error in smaller region – In an integrated system, it may not be easier to determine which module has caused fault – Reduces debugging efforts
  • 16. Test cases and Test suites • Test case is a triplet [I, S, O] where – I is input data – S is state of system at which data will be input – O is the expected output • Test suite is set of all test cases • Test cases are not randomly selected. Instead even they need to be designed.
  • 17. Need for designing test cases • Almost every non-trivial system has an extremely large input data domain thereby making exhaustive testing impractical • If randomly selected then test case may loose significance since it may expose an already detected error by some other test case
  • 18. Time for an exercise • Give me all possible test cases for this object:
  • 19. Black box testing • Equivalence class partitioning • Boundary value analysis • Comparison testing
  • 20. Equivalence Class Partitioning • Input values to a program are partitioned into equivalence classes. • Partitioning is done such that: – program behaves in similar ways to every input value belonging to an equivalence class.
  • 21. Why define equivalence classes? • Test the code with just one representative value from each equivalence class: – as good as testing using any other values from the equivalence classes.
  • 22. Equivalence Class Partitioning • How do you determine the equivalence classes? – examine the input data. – few general guidelines for determining the equivalence classes can be given
  • 23. Equivalence Class Partitioning • If the input data to the program is specified by a range of values: – e.g. numbers between 1 to 5000. – one valid and two invalid equivalence classes are defined. 1 5000
  • 24. Equivalence Class Partitioning • If input is an enumerated set of values: – e.g. {a,b,c} – one equivalence class for valid input values – another equivalence class for invalid input values should be defined.
  • 25. Example • A program reads an input value in the range of 1 and 5000: – computes the square root of the input number SQRT
  • 26. Example (cont.) • There are three equivalence classes: – the set of negative integers, – set of integers in the range of 1 and 5000, – integers larger than 5000. 1 5000
  • 27. Example (cont.) • The test suite must include: – representatives from each of the three equivalence classes: – a possible test suite can be: {-5,500,6000}. 1 5000
  • 28. Boundary Value Analysis • Some typical programming errors occur: – at boundaries of equivalence classes – might be purely due to psychological factors. • Programmers often fail to see: – special processing required at the boundaries of equivalence classes.
  • 29. Boundary Value Analysis • Programmers may improperly use < instead of <= • Boundary value analysis: – select test cases at the boundaries of different equivalence classes.
  • 30. Example • For a function that computes the square root of an integer in the range of 1 and 5000: – test cases must include the values: {0,1,5000,5001}. 1 5000
  • 31. • Acceptance testing • Formal testing with respect to user needs, requirements, and business processes conducted to determine whether or not a system satisfies the acceptance criteria and to enable the user, customers or other authorized entity to determine whether or not to accept the system. • Alpha testing • Simulated or actual operational testing by potential users/customers or an independent test team at the developers’ site, but outside the development organization. Alpha testing is often employed for off-the- shelf software as a form of internal acceptance testing. • Back-to-back testing • Testing in which two or more variants of a component or system are executed with the same inputs, the outputs compared, and analyzed in cases of discrepancies. • Beta testing • Operational testing by potential and/or existing users/customers at an external site not otherwise involved with the developers, to determine whether or not a component or system satisfies the user/customer needs and fits within the business processes. Beta testing is often employed as a form of external acceptance testing for off-the-shelf software in order to acquire feedback from the market.
  • 32. Continued… • Black-box testing • Testing, either functional or non-functional, without reference to the internal structure of the component or system. • Boundary value • An input value or output value which is on the edge of an equivalence partition or at the smallest incremental distance on either side of an edge, for example the minimum or maximum value of a range. • Boundary value analysis • A black box test design technique in which test cases are designed based on boundary values. • Branch testing • A white box test design technique in which test cases are designed to execute branches. • Defect • A flaw in a component or system that can cause the component or system to fail to perform its required function, e.g. an incorrect statement or data definition. A defect, if encountered during execution, may cause a failure of the component or system.
  • 33. Continued… • Functional testing • Testing based on an analysis of the specification of the functionality of a component or system. • Integration testing • Testing performed to expose defects in the interfaces and in the interactions between integrated components or systems. • Load testing • A test type concerned with measuring the behavior of a component or system with increasing load, e.g. number of parallel users and/or numbers of transactions to determine what load can be handled by the component or system. • Monkey testing • Testing by means of a random selection from a large range of inputs and by randomly pushing buttons, ignorant on how the product is being used. • Recoverability testing • The process of testing to determine the recoverability of a software product. • Regression testing • Testing of a previously tested program following modification to ensure that defects have not been introduced or uncovered in unchanged areas of the software, as a result of the changes made. It is performed when the software or its environment is changed.
  • 34. Continued… • Severity • The degree of impact that a defect has on the development or operation of a component or system. • Smoke test • A subset of all defined/planned test cases that cover the main functionality of a component or system, to ascertaining that the most crucial functions of a program work, but not bothering with finer details. A daily build and smoke test is among industry best practices. • Test automation • The use of software to perform or support test activities, e.g. test management, test design, test execution and results checking. • Test case specification • A document specifying a set of test cases (objective, inputs, test actions, expected results, and execution preconditions) for a test item. • Test design specification • A document specifying the test conditions (coverage items) for a test item, the detailed test approach and identifying the associated high level test cases. • Test environment • An environment containing hardware, instrumentation, simulators, software tools, and other support elements needed to conduct a test. • Test harness • A test environment comprised of stubs and drivers needed to execute a test. • Test log • A chronological record of relevant details about the execution of tests.