Software Testing
Verification versus Validation
■ Verification: Are we building the product right?
■ Validation: Are we building the right product?
■ Software Verification: The process of evaluating software to determine whether
the products of a given development phase satisfy the conditions imposed at the
start of that phase.
■ Software Validation: The process of evaluating software during or at the end of
the development process to determine whether it satisfies specified
requirements
https://www.youtube.com/watch?v=qxitgylm1EU
The Tests
Tests show:
■ Errors
■ Compliance with requirements
■ Performance
■ An indicator of quality
Who runs the tests?
■ Developer
– It includes the operation of the system. It is oriented towards the delivery of the product.
It tests the system at very high level.
■ Tester
– He must understand the operation of the system. He tries to defeat the system. It is
oriented rather towards the quality of the product.
Test Validation
■ Validation is a process by which one or more programs are executed in
a system (hardware and software) to verify that it meets the
requirements and to detect bugs before delivery of the product.
What is Testing?
■ Testing is the process of showing that a program correctly performs its specification.
■ Testing is the process of finding the maximum number of errors in a program.
■ Testing is the process of showing that a program achieve the quality requirements.
https://www.youtube.com/watch?v=TDynSmrzpXw
Software errors, faults and failures
■ Bug / fault / fault as a result of human errors resulting
in non-compliance and manifesting as a failure during
execution (system reliability / availability).
Defect, error, bug, failure and fault
■ Difference between defect, error, bug, failure and fault:
“A mistake in coding is called error ,error found by tester
is called defect, defect accepted by development team
then it is called bug ,build does not meet the
requirements then it is failure.”
Test Methods
■ Static tests
– Test without running the application by program review
– Code review, cross-reading, analysis of anomalies, ...
■ Dynamic tests
– Test by running the application
– Structural tests, functional tests
Test Levels
■ Unit / Componente
■ Integration
■ Functional Validation (System)
■ Acceptance
Test Levels - Unit / Componente
■ Objective: To demonstrate that each module performs all the intended function and
only this function.
■ Logic tests (error search, verification of the correct sequence of branches traveled);
■ Calculation tests (verification of the results of calculations, the accuracy of the
algorithms).
Test Levels - Integration
■ Objective: To demonstrate the correct functioning of functional units consisting of an
assembly of modules.
■ Verification of inter-module linkages, data flow, dynamic aspects, predicted event
sequences and interruption restarts.
Test Levels - Functional Validation (System)
■ Objective: To ensure that the software installed in the hardware meets the functional
specifications by checking in particular the general functions and the interfaces of
the software.
■ Confirms that the system as a whole meets hardware and software requirements
and requirements, real-time operation, performance, use and allocation of
resources.
■ Often black box test
■ Done when integration is completed
Test Levels - Acceptance
■ Made by customers to confirm that the software meets their needs
■ Contractual
■ Linked to the payment
Strategy, Techniques and Types of Tests
■ Bottom-up approach ■ Exploratory
■ Top-down approach ■ Based on risk
■ Black Box ■ Equivalence or Parallel Class
■ White Box ■ Exhaustive Testing
■ Gray box ■ Boundary Value Analysis
■ Simulation ■ Cause-effect diagram
■ Alpha / Beta tests ■ Automatic
■ Forced Error ■ Manual
Seven Principles of 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
https://www.guru99.com/software-testing-seven-principles.html
What are the main objectives for a
the testing activities?
Source: ISTQB® Worldwide Software Testing Practices Report 2015 - 2016
In which region do you currently work?
Source: ISTQB® Worldwide Software Testing Practices Report 2015 - 2016
Who is responsible for the software testing?
Source: ISTQB® Worldwide Software Testing Practices Report 2015 - 2016
Who is responsible for the software testing?
■ In-house means software development performed by employees of the company that is
paying for development.
■ Insourcing means software development performed by employees of a third-part provider
who performs the task on-site.
■ Outsourced means software development performed by employees of a different company
that is paying for development. Outsourced development frequently stills requires an in-
house employee to oversee the outsourced development.
■ With those concepts, you can extend to the geographic location of the developers.
– On-shore/distributed development means that the developers are located in the same
geography of the company that is paying for the development.
– Off-shore development means that the developers are located in a different geography,
and more specifically in a different country, than the company that is paying for the
development.
– near-shore development means that the developers are located in nearby country, often
sharing a border with the target country.
Which skills does the industry expect from testers?
Source: ISTQB® Worldwide Software Testing Practices Report 2015 - 2016
What is your job title?
Source: ISTQB® Worldwide Software Testing Practices Report 2015 - 2016
Which Career Path is more
Common for a Tester?
Source: ISTQB® Worldwide Software Testing Practices Report 2015 - 2016
What could be the next level in the
career path for a Test Manager?
Source: ISTQB® Worldwide Software Testing Practices Report 2015 - 2016
To whom does the test team report?
Source: ISTQB® Worldwide Software Testing Practices Report 2015 - 2016
To which industry are you going to work?
Source: ISTQB® Worldwide Software Testing Practices Report 2015 - 2016
What percent of a typical IT/ R&D project
budget is allocated to software testing?
Source: ISTQB® Worldwide Software Testing Practices Report 2015 - 2016
Segmentation by Industry
Source: ISTQB® Worldwide Software Testing Practices Report 2015 - 2016
What is your expectation for software
testing budget in the next 12 months?
Source: ISTQB® Worldwide Software Testing Practices Report 2015 - 2016
Which Software Development Lifecycle
(SDLC) model are you using?
Source: ISTQB® Worldwide Software Testing Practices Report 2015 - 2016
Assignment # 2_Part 1
■ 1. Go to:
https://www.toolsqa.com/software-testing/difference-between-verification-and-validation/
■ A) In an office word make a template (2X2) and explain with your own words the difference
between Verification and Validation.
■ B) Go to the links in the same reading and using another template explain with your own
words the differences between Static testing and Dynamic testing.
■ 5. Read A Look at the Software Tester Career Path and and answer the following
questions:
https://blog.gurock.com/software-tester-career-path/
■ A) As a software tester do you have the opportunity to transition into different roles…
Which ones? Which one catches your attention the most?
■ B) What do people with more experience in a testing company do?
■ C) With your own words, what is formal organizational leadership?
■ D) What is the most important task for a tester? Why?
■ 6. Now read Top 7 Major Goals of A Software Tester and answer the following
questions:
https://www.softwaretestinghelp.com/goals-of-a-software-tester/
■ In some lines define each of the 7 major goals of a software tester.
■ 7. In one or two lines explain each one of the seven principles of testing.
https://www.guru99.com/software-testing-seven-principles.html