Software Engineering: Azhar Ansari

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 24

Software Engineering

Azhar Ansari
Session # 6

Software Quality Assurance


“What is quality software and how to
achieve it?”
Some Famous Disasters
ARIANE Click to edit the outline


The Ariane 501 rocket’s guidancetext format
computer software just threw an
uncaught exception. 
Second Outline

The loss was $500,000,000 uninsured. Level
NASDAQ  Third Outline

17 min outage due to upgrade. Level

Up to 1 500 000 000 trades a day. 
Fourth Outline

Lost revenue.
Level
Y2K
 Fifth
Outline
Level
Standish Group Chaos Report

According to Standish Group Chaos Report in 1996:

16.2% on time, in budget, met requirements

52.7% completed but over budget, time, incomplete

31.3% cancelled during development

Failures can be due to factors unrelated to testing.

Projects still fail

Things may be slightly better but still problems.
What is Quality Software?

Is it software that works?

Is it software that is error-free?

Is it software that is very well-documented and has help
facility for all its functions?

Is it software that does not ‘hang’ the machine?

Is it software that does not ‘bomb’/crash?
Quality in your group project

How do you ensure the quality of the software you are
developing?

Have you defined the standards and tasks to ensure the
quality of the software?

Will the customer say that your software is a quality product?

Are you fulfilling the customer’s expectations?
What is Software Quality

According to the IEEE, Software Quality is:
1. The degree to which a system, component, or process
meets specified requirements.
2. The degree to which a system, component, or process
meets customer or user needs or expectations.

According to Philip B. Crosby,
“Quality is conformance to the requirements”
Software Quality Attributes

Correctness •
 Evolvability
Click to edit the outline

Reliability •
Reusability
text format

Robustness •
Portability

Performance • 
Second Outline
Understandability

User friendliness •
Productivity
Level

Verifiability •
Size

Maintainability •  Third Outline
Timeliness

Reparability •
VisibilityLevel

Safety 
Fourth Outline
Level
 Fifth
Select the critical attributes and plan how to achieve them

Outline
Level
Benefits of Software Quality

Reduced maintenance cost

Stable and useful product

Satisfied customers

Build corporate culture and identity

Better chances for software and design reuse
Software Quality Assurance (SQA)

QA is a system of procedures, checks, audits, and corrective
actions to ensure that all development activities are of the
highest achievable quality.

It determines whether products or services meet or exceed
customer expectations.

QA makes sure the project will be completed based on the
previously agreed specifications, standards and functionality
required without defects and possible problems.

It monitors and tries to improve the development process
from the beginning of the project to ensure this.
Software Quality Assurance (SQA)

Essential activity for any business that produce product to
used by others

It need to be planned and systematic
– It does not just happen

Assure each of the software qualities is met
– Goal set in requirements specification

Goal realized in the implementation

SQA is applied at every stage of the software process

Quality standard is selected to apply to the software process
Principle of SQA

Works on Deming’s Cycle PDCA (Plan – Do – Check – Act)
1. Set the standard and quality attributes that a software
product must meet

The goal to achieve
2. Measure the quality of software product

There is a way to determine how well the product conforms to
the standards and quality attributes
3. Track the values of the quality attributes

It is possible to assess how well we are doing
4. Use the information of software quality to improve the
quality of future software products

There is a feedback into the software development process
SQA Activities

Prepares an SQA plan for a project

Participates in the development of the project’s software
process description.

Reviews software engineering activities to verify compliance
with the defined software process.

Perform audits.

Inspections and Software Testing.

Enforcement of standards.

Identifying deviations and noncompliance, documenting
them.

Reporting to the senior management.
Inspection

Inspection in software engineering, refers to peer review of
any work product by trained individuals who look for defects
using a well defined process.

An inspection might also be referred to as a Fagan inspection
after Michael Fagan, the inventor of the process.

Inspection has two purposes:
1. Primary
2. Secondary
Formal Technical Review (FTR)

FTR is one of the most widely used techniques for assessing
and improving software quality.

The FTR is a software quality assurance activity with the
objectives to uncover errors in function, logic or
implementation for any representation of the software.

FTR is also a learning ground for junior developers to know
more about different approaches to software analysis, design
and implementation.

FTR activities include walkthroughs and inspections.

All major software items should be subjected to technical
review.
Software Testing
“Testing is a process of executing a program with
the aim of finding errors” Glenford Myers


Software testing is a fundamental component of software
quality assurance.

Testing is an integral part of the process used to build
software.

Required for building good quality software.

Testing is the one step in the software process that can be
seen by the developer as destructive instead of constructive.

Primary objective of testing is to find errors and not to


QA vs. QC

Detects, reports
Prevents the introduction
and corrects
of issues
defects.
 or defects.
Click to edit the outline

QA improves
QC improves the
thedevelopment
process that of atext
is appliedformat
specific
toproduct
multipleorproducts
service.
• that will ever
Detective be produced by a process.
in nature.

Preventive in nature.

Second Outline

QC is reactive.
Level

• QA is proactive.
QC determines if the “end result” is satisfactory or not.
•  Third
QA ensures a product or service is created, Outline or
implemented
produced correctly Level

Fourth Outline
Level
 Fifth
Outline
Level
Levels of Testing
Unit Testing

Initial level of testing.

The most ‘micro’ scale of testing.

Tests done on particular functions or code modules.

Requires knowledge of the internal program design and
code.

Done by Programmers (not by testers).
Levels of Testing
Integration Testing

Continuous testing of an application as and when a new
functionality is added.

Application’s functionality aspects are required to be
independent enough to work separately before completion of
development.

Done by programmers or testers.

Testing of combined parts of an application to determine
their functional correctness.
Levels of Testing
System Testing

It is the highest level of testing

It validates the system as a whole
Levels of Testing
Load Testing

Testing an application under heavy loads.

For example, Testing of a web site under a range of loads to
determine, when the system response time degraded or fails.
Testing Methodologies
Black Box Testing

No knowledge of internal design or code required.

Tests are based on requirements and functionality.

Also known as Functional testing.

Tests are data driven.
Testing Methodologies
White Box Testing

Knowledge of the internal program design and code required.

Tests are based on coverage of code statements, branches,
paths, conditions etc.

Also known as Structural testing.

Tests are logic driven.
Testing Methodologies
Gray Box Testing

You might also like