4. What is software?
According to the IEEE
Software is:
“Computer programs, procedures,
and possibly
associated documentation and data
pertaining to
the operation of a computer system”.
5. What is Software quality?
Low levels of defects when deployed,
ideally approaching zero
High reliability, or the capability of
running without crashes or strange
results
A majority of clients with high user-
satisfaction when surveyed
6. What is Software Quality?
1.Accroding to computer literature
Quality means “Meeting
Requirement”.
2.The product has something that other
similar products do not that adds
value. (Product based Definition).
7. Why the quality is
important?
Why business should be concerned
with quality:
Quality is competitive issue now
Quality is a must for survival
Quality gives you the global reach
Quality is cost effective
Quality helps retain customers and
increase profits
Quality is the hallmarks of world-class
business
8. Software Quality Factors
Correctness
accuracy, completeness of required output
upto-dateness, availability of the information
Reliability
Minimum failure rate
Efficiency
resources needed to perform software function
Integrity
software system security, access rights
Usability
ability to learn, perform required task
9. Software Quality Factors
Maintainability
effort to identify and fix software failures (modularity,
documentation, etc)
Flexibility
degree of adaptability (to new customers, tasks, etc)
Testability
support for testing (e.g. log files, automatic diagnostics, etc)
Portability
adaptation to other environments (hardware, software)
Reusability
use of software components for other projects
Interoperability
ability to interface with other components/systems
10. Software Quality Assurance
Systematic activities providing evidence of
the fitness for use of the total software
product.
It is achieved through the use of
established guidelines for quality control to
ensure integrity and prolonged life of
software.
It is a planned effort to ensure that a
software product fulfils criteria and has
additional attributes specific to the product.
11. It is the collection of activities and
functions used to monitor and control a
software project so that specific objectives
are achieved with the desired level of
confidence.
It is not the sole responsibility of the
software quality assurance group but is
determined by the consenses of the project
manager ,project leader, project
personnel, and the users.
Software Quality Assurance
13. Software Testing
Software testing is a popular risk
management strategy.It is used to
verify that functional requirements
were met.
The major purpose of verification and
validation activities is to ensure that
software design, code, and
documentation meet all the
requirements imposed on them.
14. Verification and validation
Software Verification and
Validation
When Combined Together Are
Abbreviated as V & V
15. Verification of software
Verification is the process confirming
that -software process meets its
specification
Verification Ensures that:
Every Step in the Process of Building
the Software Delivers the Correct Product
16. Validation of software
Validation is the process confirming
that it meets the user’s requirements.
Validation Ensures that:
Software Being Developed or Changed
Satisfies Functional and All Other
Requirements
17. Major Categories of Verification
There are Two Major Categories
of Verification Testing:
• Dynamic
Testing
• Static Testing
18. Dynamic testing
What Does Dynamic Testing Do ?
• Involves Execution of a
System or Component
• Selection of a Group of Test
Cases Consisting of Test
Data
• Finding out Output Test
Results out of Input Test
Cases
19. DYNAMIC TESTING
Sub Categories of Dynamic Testing
• Functional Testing
• Structural Testing
• Random Testing
20. Dynamic testing
Functional Testing: A Type of
Dynamic
Testing
• Involves Identification & Testing of all Functions
of the System as Defined in Basic Requirements
Documents
• It is a Black Box Testing Not Expecting that the
Tester should have any Knowledge of the Basic
Code & Implementation of the System
• It uses Test Cases Designed to Investigate Certain
Feature of the System
21. Dynamic testing
Structural Testing: A Type of Dynamic
Testing
• It is a White Box Testing Expecting Full knowledge
of the Implementation of the System
• Information of the Internal Structure of the
System is Used to Design Tests for Checking the
Function of Individual Components
• Like Functional Testing, it also uses Test Cases
Designed to Investigate Certain Feature of the
System
22. Dynamic testing
Random Testing: A Type of Dynamic
Testing
• Uses Free Selection of Test Cases out of a set of
All Possible Test Cases
• Uses Randomly Decided to Detect Faults which
Go Undetected by Other Systematic Testing
Techniques
• Exhaustive Testing is a Form of Random
Testing, Involving Input Test Cases having
Every Possible Set of Input Values
23. Static testing
Does not Involve Operation of
the System or Component
• Consistency Techniques
: Meant for Doing Analysis of Consistency
• Measurement Techniques
: Meant for Doing Measurement of Some
Property of the Program
24. Static testing
Consistency Techniques of Static
Testing
# Correct Typing
# Correct Requirements and Translation of
Specifications
# Correct Syntax
# Correct Parameter Matching between procedures
25. Static testing
Measurement Techniques of Static
Testing
Measures the System Properties
Like:
# Being Error Prone
# Being Understandable
# Being Well Structured
26. Validation of software
Validation comes Into Picture
at the End of the Development Cycle
• It Views the Complete System
Exactly Opposite of
Verification
• It Focuses on Smaller Sub-
Systems
27. Techniques of Validation
Testing
Formal Methods :
A Technique of Validation Testing
• Besides being a Verification Technique
it is a Validation Technique as well
• Involves use of Mathematical and
Logical Techniques to: Express,
Investigate, & Analyze the
Specification, Design, Documentation
and Behavior of Hardware as well as
Software
28. Techniques of Validation
Testing
Fault Injection :
A Technique of Validation Testing
Is an Intentional Activation of Faults by
Either Hardware or Software to Observe
the System Operation under such Faulty
Situations
29. Techniques of Validation
Testing
Hardware Fault Injection :
A Technique of Validation Testing
Also known as Physical Fault Injection
since Faults are Injected into the
Physical Hardware
30. Techniques of Validation
Testing
Software Fault Injection :
A Technique of Validation Testing
• Involves Injection of Errors into the
Computer Memory through some
Software Techniques
• It is a sort of a Simulation of Hardware
Fault Injection
31. Techniques of Validation
Testing
Dependency Analysis :
A Technique of Validation Testing
Involves Identification of Hazards and
Subsequently Proposing Methods to
Reduce the Risk of the Hazards
32. Techniques of Validation
Testing
Hazard Analysis :
A Technique of Validation Testing
Involves using Instructions to
Identify
Hazards, Their Root Causes , and
Possible Countermeasures