3. 04-Oct-14 3
People’s Quality Expectations
In general, people’s quality expectations for software
systems they use and rely upon are two-fold:
1. The software systems must do what they are
supposed to do. In other words, they must do the
right things. (Validation)
2. The software must perform these specific tasks
correctly or satisfactorily. In other words, they must
do the things right. (Verification)
4. 04-Oct-14 4
Main tasks for software quality
engineering
• Quality planning;
• Execution of selected QA or software validation and
verification activities;
• Measurement and analysis to provide convincing
evidence to demonstrate software quality to all parties
involved.
5. 04-Oct-14 5
Two Types of Software
• Fat Software:
• Large system
• Complex and poor design
• Non-essential features
• Lean Software
• Small system
• Simple and Disciplined methodology
• Essential features
6. 04-Oct-14 6
QA Techniques
There are many other QA alternatives supported by related
techniques and activities –
• Inspection is a critical examination of software code or
other artifacts by human inspectors to identify and remove
problems directly, without resorting to execution.
• Formal verification
• Defect prevention
• Fault tolerance prevents global system failures even if
local problems exist, through various redundancies
strategically designed and implemented into the software
systems.
7. 04-Oct-14
Testing, quality assurance and quality
engineering
7
• Software QA activities are carried out to prevent or eliminate
certain classes of problems
• Software testing plays a central role among the software QA
activities.
• QA activities need to be managed in an engineering process
Fig: Scope and content hierarchy: Testing, quality assurance (QA), and software quality engineering
9. 04-Oct-14 9
What is Software Quality
• In the transcendental view, quality is hard to define or
describe in abstract terms, but can be recognized if it is
present. It is generally associated with some intangible
properties that delight users.
• In the user view, quality is fitness for purpose or
meeting user’s needs.
• In the manufacturing view, quality means
conformance to process standards.
10. 04-Oct-14 10
What is Software Quality
• In the product view, the focus is on inherent
characteristics in the product itself in the hope that
controlling these internal quality indicators will result
in improved external product behavior (quality in use).
• In the value-based view, quality is the customers’
willingness to pay for a software.
11. 04-Oct-14 11
Quality expectations
Consumer View:
• Software ok or not, doing the right thing
• Over a period of time working reliably
Producer View:
• conform to product specifications or providing services
that conform to service agreement.
• Well Designed
12. Difference Between QA and Testing
Software Development Life Cycle:
12
Feasibility
Analysis
Requirements
Analysis Design
Testing
Coding
Deliver &
Support
QA QA QA
04-Oct-14
13. 04-Oct-14 13
CORRECTNESS AND DEFECTS
Key to the correctness aspect of software quality is the
concept of defect, failure, fault, and error.
Defect: Generally refers to some problem with the
software, either with its external behavior or with its
internal characteristics.
• Error: A human action that produces an incorrect result.
• Fault: An incorrect step, process, or data definition in a
computer program. (Incorrectness of the system)
• Failure: The inability of a system or component to
perform its required functions within specified
performance requirements.
14. DEFECTS EXAMPLE
int add(int a, int b){
return(a-b);
}
Res = add(7,6);
14
Error Fault
Failure
04-Oct-14
16. 04-Oct-14 16
Related Terms
Bugs: Software problems or defects are commonly
referred to as bugs.
Debug:
• The term “debug” general means get rid of the bugs
• defect detection and removal for the overall concept and
activities of the system
• Specific activities related to defect discovery, including testing,
inspection, etc.
• Specific follow-up activities after defect discovery, including
defect diagnosis, analysis, fixing, and re-verification.
17. 04-Oct-14 17
Failure Measurement (3 ways)
Failure properties and direct failure measurement: Failure properties
include information about the specific failures, what they are, how they occur,
etc. These properties can be measured directly by examining failure count,
distribution, density, etc.
Failure likelihood and reliability measurement: How often or how likely a
failure is going to occur is of critical concern to software users and customers.
This likelihood is captured in various reliability measures, where reliability
can be defined as the probability of failure-free operations for a specific time
period or for a given set of input.
Failure severity measurement and safety assurance: The failure impact is
also a critical concern for users and customers of many software products and
services. Accidents, which are defined to be failures with severe consequences,
need to be avoided, contained, or dealt with to ensure the safety for the
personnel involved and to minimize other damages.
18. 04-Oct-14 18
Dealing with Defect (3 Ways)
1. Defect prevention
These QA activities prevent certain types of faults from being injected
into the software through error blocking or error source removal.
2. Defect detection and removal
These QA alternatives detect and remove certain faults once they have
been injected into the software systems through inspection and testing.
3. Defect containment
Some QA alternatives, such as the use of fault-tolerance techniques,
break the causal relation between faults and failures so that local faults
will not cause global failures, thus “tolerating” these local faults.
• limiting the damage caused by software system failures.
Reference: Chapter-3
Software Requirements/functionalities fulfill
Functionality works correctly
Software QA starts from the beginning of the SDLC and being involved during development and Testing is a subpart of the SDLC.
QA is planned and systematic way to evaluate quality of process used to produce a quality product.
- The goal of a QA is to provide assurance that a product is meeting customer’s quality expectations.
- QA deals with how to prevent bugs from occurring in a product being developed.
//- Software Quality Assurance Engineer’s main responsibility is to create and implement methods and standards to improve development process.
Software testing is a planned process that is used to identify the correctness, completeness, security and quality of software.
- Testing is generally done to demonstrate that the software is doing what it is supposed to do as well as the software is not doing what it is not supposed to do.
- The goal of testing or software tester is to locate defects and make sure that they get fixed.
Software problems or defects, are also commonly referred to as “bugs”.
The term “debug” general means “get rid of the bugs”.
Software problems or defects, are also commonly referred to as “bugs”.
The term “debug” general means “get rid of the bugs”.