Sei sulla pagina 1di 50

Chapter No.

Software Quality Assurance Fundamentals

Sanjay P. Bhakkad
Associate Professor,
IMSCD&R, Ahmednagar

What is Software?
 Software is:

(1) instructions (computer programs) that when


executed provide desired features, function, and
performance;
(2) data structures that enable the programs to
adequately manipulate information and
(3) documentation that describes the operation and use
of the programs.

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Why Software Fails?


 Miscommunication or no communication about the








application's requirements
Software complexity
Programming errors
Changing requirements
Time pressures
Poorly designed/documented code
Use of software development tools
Self egos

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Difference between defect, error, bug,


failure and fault:

 Error refers to a missing or wrong person action resulting in certain


fault being injected into software.
 Fault refers to an underlying condition within software that causes
failure to happen.
 Failure refers to a behavioral deviation from the user wants or the
product specification.
4

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Difference between
error, defect, bug, and failure
 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.

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Quality : Concept, Meaning & Definition


 Quality is a subjective term for which each person or sector has its own

definition.
 In technical usage, quality can have two meanings:
1.
2.

the characteristics of a product or service that bear on its ability to satisfy


stated or implied needs;
a product or service free of deficiencies.

 According to Joseph Juran, quality means fitness for use;


 According to Philip Crosby, quality means conformance to

requirements.

 In manufacturing, a measure of excellence or a state of

being free from defects, deficiencies & significant variations.


 In an IT product or service, quality is sometimes defined as meeting the
requirements of the customer.
6

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Quality : Concept, Meaning & Definition


The American Heritage dictionary defines quality as:
 A characteristic or attribute of something
 Quality refers to measurable characteristics i.e. things we are able to
compare to known standards.
Two kinds of Quality:
 Quality of Design refers to the characteristics that designers
specify for an item.
 Includes, requirements, specifications and the design of the system
 Quality of Conformance is the degree to which the design
specifications are followed.
 It focuses on implementation based on the design.
7

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Quality : Concept, Meaning & Definition


 Robert L. Glass contends that quality is important, but if the

user isnt satisfied, nothing else really matters.


User Satisfaction = compliant product + good quality
+ delivery within budget and schedule
 DeMarco reinforces this view A products quality is a
function of how much it changes the world for the better.
 This view of quality contends that if a software product
provides substantial benefit to its end-users, they may be
willing to tolerate occasional reliability or performance
problems.
8

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Quality Assurance
 assurance can mean the act of giving confidence, the state of

being certain or the act of making certain;


 Quality Assurance is defined as all the planned and systematic
activities implemented within the quality system that can be
demonstrated to provide confidence that a product or service
will fulfill requirements for quality.
 In the ISO 9000 standard, clause 3.2.11 defines Quality
Assurance as:
A part of quality management focused on providing
confidence that quality requirements will be fulfilled
9

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Quality Control
 control can mean an evaluation to indicate needed

corrective responses, the act of guiding in the system


variability.
 Quality Control is defined as the operational techniques
and activities used to fulfill requirements for quality.
 In the ISO 9000 standard, clause 3.2.10 defines Quality
Control as:
A part of quality management focused on fulfilling
quality requirements

10

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

QC vs. QA

11

Quality Control

Quality Assurance

Corrective Action (Reactive)

Preventive Action (Proactive)

Focus is on Product

Focus is on Process

Provides confidence to the Producer

Provides confidence to the Customer

This is a Line function

This is a Staff function

Objective is to Find defects

Objective is to Prevent defects

Used to verify the quality of the output

Process of managing for quality

Validation/Software Testing is an example of QC

Verification is an example of QA

Examples:
Walkthrough
Testing
Inspection
Checkpoint review

Examples:
Defining Processes
Quality Audit
Selection of Tools
Training

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Software Quality Assurance (SQA)


 Software Quality Assurance is a planned and

systematic pattern of actions that are required to


ensure high quality in software.
 NASA defined SQA as The function of software
quality that assures that the standards, processes,
and procedures are appropriate for the project
and are correctly implemented.

12

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA is a set of activities for ensuring quality in software engineering processes (that
ultimately result in quality in software products).
 It includes the following activities:


 Process definition and implementation


 Auditing
 Training

Processes could be:











Software Development Methodology


Project Management
Configuration Management
Requirements Development/Management
Estimation
Software Design
Testing
etc

Once the processes have been defined and implemented, Quality Assurance has the
following responsibilities:
 identify weaknesses in the processes
 correct those weaknesses to continually improve the process

The quality management system under which the software system is created is normally
based on one or more of the following models/standards:
 CMMI
 Six Sigma
 ISO 9000

13

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Planning and Standards


 The SQA Planning provides a road map for instituting

software quality assurance.


 SQA plan serves as a template for SQA activities that are
instituted for each software project.
 The IEEE Standard for SQA Plans states that the plan
should contain the following sections:

14

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Planning and Standards


 Initial section:
 describe the purpose and scope of the

document
 indicate the software process activities that are
covered by quality assurance.
 All the documents noted in the SQA Plan are
listed and all applicable standards are noted.

15

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Planning and Standards


 Management section:
 describes SQAs place in the organizational

structure,
 SQA tasks and activities and their placement
throughout the software process, and
 the organizational roles and responsibilities
relative to product quality.

16

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Planning and Standards


 Documentation section:
 describes each of the work products produced as part

of the software process. These include


 Project documents (e.g. Project Plan)
 Models (e.g. ERDs, Class hierarchies)
 Technical Documents (e.g. Specifications, Test plans)
 User Documents (e.g. Help files)

 This section also defines the minimum set of work

products that are acceptable to achieve high quality.

17

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Planning and Standards


 Standards, practices, and conventions section:
 lists all applicable standards and practices that are

applied during the software process. E.g.:


 document standards,
 design standards,
 coding standards,
 testing standards,
 commentary standards,
 metrics, and
 review guidelines.
18

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Planning and Standards


 Reviews and Audit section:
 identifies the reviews and audits to be

conducted by the software engineering team,


the SQA group, and the customer.
 It provides an overview of the approach for
each review and audit.

19

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Planning and Standards


 Test section:
 references the software test plan and

procedure.
 defines test record keeping requirements.
 defines procedures for reporting, tracking, and
resolving errors and defects, and
 identifies the organizational responsibilities for
these activities.
20

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Planning and Standards


 The remainder of the SQA plan:
 identifies the tools and methods that support SQA

activities and tasks


 references software configuration management
procedures for controlling change
 defines a contract management approach
 identifies training required to meet the needs of the
plan, and
 defines methods for identifying, assessing, monitoring,
and controlling risk
21

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Activities
 SQA is an umbrella activity that ensures conformance to

standards and procedures throughout the SDLC of


software product.
 SQA is composed of variety of tasks associated with two
different constituencies:
 The software engineers who do technical work, and
 An SQA group that has responsibility for quality
assurance, planning, oversight, record keeping, analysis
and reporting.
22

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Activities
 The software engineering institute recommends a set of

SQA activities that address quality assurance. These


include:
 Application of Technical Methods
 Conduct of Formal Technical Review
 Software Testing
 Enforcement of Standards
 Control of Change
 Measurement
 Records Keeping and Reporting
23

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Activities
 Application of Technical Methods:
 Employing proper methods and tools for developing

software.
 SQA starts early along with the process of software
development.
 Technical methods and tools enable the analyst to
achieve a high quality specification and help the
designer to develop a high-quality design.
 We can always point specifications ( or the prototype )
and the design are individually checked for quality.
24

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Activities
Conduct of Formal Technical Review:
 FTR in conducted to assess the quality and design of
the prototype.
 It involves a meeting with the technical staff to discuss
the quality requirements of a software product.
 FTR helps in detecting errors at an early phase of
development.
 This prevents errors from percolating down to later
phase and saves the time of rework.
25

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Activities
 Software Testing:
 Software testing is a critical task of SQA activity, which

aims at error detection.


 Unit testing is the first level of testing, followed by
integration testing and system level testing.
 Functional testing is also performed at some occasions.
 Beta testing with selected clients is also conducted to
test the product before it is finally released.

26

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Activities
 Enforcement of Standards:
 This task of SQA emphasis on application of formal

standards and procedures.


 Standards and procedures may vary from project to
project, and company to company.
 Standards may be self-imposed, as per clients dictation
or regulatory mandate.
 The development process should also adhere to the
procedure defined for product development.
27

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Activities
 Control of change:
 Any and every change to software will almost

incorporate an error or trigger side effects that will


propagate errors.
 The change control mechanism ensures software
quality by formalizing requests for change, evaluating
the nature of change, and controlling the impact of
change.
 This task combines the human procedures and
automated tools.
28

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Activities
 Measurement:
 Software quality metrics helps in estimating the cost and

resource requirements of project.


 To control software quality; it is essential to measure
quality and then compare it with established standards.
 Software quality metrics are used to evaluate the
effectiveness of techniques and tools, the productivity of
development activities and the quality of products.
 Metrics enables mangers and developers to monitor the
activities throughout the SDLC and initiate corrective
actions.
29

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

SQA Activities
 Record keeping and Reporting:
 Keeping records and reporting ensure the

collection and circulation of information


relevant to SQA.
 The results of FTR, audits, change control,
testing, and other SQA activities are reported &
compiled for future reference.

30

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Building blocks of SQA


 SQA Project Metrics:
 S/W is of no use if the metrics do not live up

according to expectation.
 The SQA team should ensure that the expected
metrics will be posted.
 At the same time, the SQA team should also select the
right tool to gauge the application.
 To gauge the actual application, the metrics are
divided into four categories:
31

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Building blocks of SQA


1. Quality of Requirements:


These set of metrics will show how well the


application is planned. These metrics checks for:





32

Completeness of the requirements


Ability to be understood
Whether the documents are well written and useful
The requirements that were written by the developers
and the intended users should be traceable.

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Building blocks of SQA


2.

Product Quality:
 These set of metrics will gauge the ability of the developers to

formulate codes and functions.


 These metrics checks for:
 How simple the application has been written
 Maintainability of the application

Easily understandable applications makes troubleshooting easy.


 Reusability of the application
 Since the codes could easily be distinguished, parts of the applications
can be used in other programs.
 Documentation that support the application
 Whether comments are clear & could be found in every function.


33

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Building blocks of SQA


3. Implementation Capability:
 The metrics used in this classification is based on the

SDLC used by the developers.


 The SQA team will rate the developers ability to finish each

action in the stage of the SDLC on time.


 The time required in every stage is set by the project

manager.
 The staff hours are rated according to the need of the stage.

 Irrespective of the time, the developers are also rated

if they ever finish a task at all.


 The necessary tasks and offset tasks.
34

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Building blocks of SQA


4. Software Efficiency:
 These metrics ensures that the application do not have

any errors at all.


 Secured against hacking

 SQA team develop the test cases to highlight the errors.


 The developers are then rated how fast they could

locate the root of the problem and how fast they could
built a fix to the problem.
The better the metrics rating, the better the application would work.
35

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Building blocks of SQA


 Selecting the Right Quality Model:
 Every application developed has a core or a feature that

differentiates the application from other software.


 In order to select a good Quality Model, the SQA team should just
focus on that feature and look for the quality model that can fully
gauge the feature.
 It helps to prove the validity of the application against the feature
needed by the clients.
 Finding errors in the application is a great challenge to the SQA
team. But with the right tools the software could be easily gauged
and the application will work as expected.
 The Quality Models could easily gauge every aspect of the
application.
36

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Building blocks of SQA


 SQA Software and Tools:
 The tools used in SQA are generally testing tools

wherein an application is run through a series of tests to


gauge the performance of the application.
 The tools used in SQA vary in purpose and performance.
 These applications range from testing the code or
running the application under great stress.
 These tools are employed to test the application and
produce numbers and statistics regarding the actual
application.
37

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Topics already covered


 Quality Factors
 Software Quality Metrics
 Process Improvement
 Process and Product Quality
 ISO 9000

38

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Capability Maturity Model (CMM)


 The Capability Maturity Model (CMM) is a methodology

used to develop and refine an organization's software


development process.
 It is an overall indicator of the process maturity exhibited
by a software organization.
 CMM was developed and is promoted by the Software
Engineering Institute (SEI), a research and development
center sponsored by the U.S. Department of Defense.
 CMM model comprises five levels of process maturity,
each with specific characteristics and features.
39

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Capability Maturity Model (CMM)

40

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Capability Maturity Model (CMM)


1. Initial Level:
 The software processes are ad hoc, disorganized

and even chaotic.


 Few processes are defined, and success depends
more on individual efforts than on following a
process and using a systematic team effort.
 Processes would not be sufficiently defined and
documented to allow them to be replicated.
41

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Capability Maturity Model (CMM)


2. Repeatable Level:
 Basic project management processes are

established to track cost, schedule, and


functionality.
 Planning and managing new product is based
on experience with similar projects.
 The requisite processes would have been
made established, defined, and documented.
42

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Capability Maturity Model (CMM)


3. Defined Level:
 An organization has developed its own software

process for management and engineering


 These processes are documented, standardized,
and integrated into a standard software process
for the organization.
 Consistent practices across the organization
minimize the learning curve for people moving
to new teams and projects.
43

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Capability Maturity Model (CMM)


4. Managed Level:
 Detailed measures of software process and

product quality are collected.


 Both the software process and products are
quantitatively understood and controlled.
 Better project management is achieved.

44

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Capability Maturity Model (CMM)


5. Optimizing Level:
 Continuous process improvement is enabled.
 The organization has quantitative feedback

systems in place to identify process weakness


and strengthen them pro-actively.
 Permanent improvement of existing processes;
anticipate possible errors and defects and
decrease the costs of software development, by
creating reusable components for example.
45

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Six Sigma
 Six Sigma is the most widely used strategy for statistical

quality assurance in industry today.


 Originally popularized by Motorola in the 1980s.
 The Six Sigma strategy:
 Is a rigorous and disciplined methodology
 That uses data and statistical analysis
 To measure and improve companys operational
performance
 By identifying and eliminating defects in the
manufacturing and service-related processes.
46

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Six Sigma
 The term Six Sigma imply an extremely high quality

standard.
 The Six Sigma methodology defines 3 core steps:
 Define customer requirements and deliverables and
project goals via well defined methods of customer
communication.
 Measure the existing process and its output to determine
current quality performance.
 Analyze defect metrics and determine the vital few
causes.
47

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Six Sigma
 If an existing software process is in place, but improvement

is required, Six Sigma suggest two additional steps:


 Improve the process by eliminating the root causes of
defects.
 Control the process to ensure that future work does not
reintroduce the causes of defects.
 These core and additional steps are sometimes referred to as
a the DMAIC (Define, Measure, Analyze, Improve and
Control ) method.

48

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Six Sigma
 If an organization is developing a software process, the core

steps are augmented as follows:


 Design the process to
(1) avoid the root causes of defects and
(2) to meet customer requirements.

 Verify that the process model will, in fact, avoid defects

and meet customer requirements.


 This variation is sometimes called the DMADV (Define,
Measure, Analyze, Design and Verify) method.

49

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Assignment No. 1:
Submit up to 27/07/2015
1. Process improvement is a vehicle for quality assurance

comment.
2. Software quality metrics helps to give quantitative view
of software quality - Comment.
3. Describe SQA activities.
4. Explain CMM in detail.
5. Write Short Notes:
a) Formal Technical Review
b) Quality Factors
c) Six Sigma
d) Quality Metrics
50

Sanjay P. Bhakkad, Associate Professor, IMSCD&R Ahmednagar

Potrebbero piacerti anche