You are on page 1of 29

SOFTWARE QUALITY

ASSURANCE
Course Outline

Course Contents – Pre Mid


Lecture 1 Introduction to SQA
Lecture 2 Role of SQA in SDLC
Lecture 3 Software Quality Management
Lecture 4 Verification & Validation
Lecture 5 Software Auditing
Lecture 6 Software Testing - I
Lecture 7 Software Testing - II
Course Outline (Cont….)

Course Contents – Post Mid


Lecture 08 Software Testing Life Cycle (STLC)
Lecture 09 Requirements Engineering
Lecture 10 Software Inspection & Formal Technical Review
Lecture 11 Software Quality Metrics
Lecture 12 SQA in Agile Development
Lecture 13 Introduction of Testing Tool (Guest Lecture)
Lecture 14 Course Recap
LECTURE # 2

ROLE OF SQA IN SDLC


Today’s Plan
 Introduction
 Software Development Models
 Role of SQA in these models
 SQA Procedures and Processes
 Roles and responsibilities of SQA team
Introduction
 Software quality assurance activities, in software
development are the backbone of whole project.
 These activities are not only responsible of product
quality, but also for process quality.
 In conventional software development QA is a
separate group of QA experts.
Software development models
 There are numerous models for software
development that are process oriented in approach.
 Each model defines its own steps, processes,
procedures and activities to be followed under a
software development life-cycle.
 While discussing about conventional software
development, Waterfall model and Spiral model
may be specified as more mature and practiced.
Typical activities in SDLC
 Requirement gathering and Requirement Analysis
 Specification
 Architecture
 Designing
 Development
 Testing and Implementation
 Maintenance
Waterfall Model

Requirements
Specification

Design

Coding

Unit
Testing
Integration
Testing
Installation &
Training

Maintenance
Waterfall and SQA Activities
Requirements
Specification Review the SRS

Design Design Reviews


Configuration Control

Coding

Documentation
Standards
Coding

Defect Tracking
Unit
Testing
Test Procedures
and Tolerances Integration
Validation
Testing
Installation &
Training

Maintenance
Spiral Model

Test Risk Analysis &


Specification

Code Design
Spiral with SQA

kin
g Risk Analysis &
c
tra Regression Specification
ect Testing
f
de

Test
Specification Review

Design
Code
Design
Review
The V Model
Agile Development
 Agility = ability to react to changing situations
quickly, appropriately, and effectively.
 notice changes early
 initiate action promptly
 create a feasible and effective alternative plan quickly
 reorient work and resources quickly and effectively
Explaining Agile Process

If a traditional
process is like
a battleship,
protected
against
everything
that might
happen…
Explaining Agile Process

An agile
process is like
a speedboat,
being able to
change
direction very
quickly
Agile Process
SQA under Agile development
 Testing is a QA activity.
 In conventional development approach, testing is
conducted as a separate and complete phase.
 Agile development changed the whole scenario of
software testing.
 Agile shifted the responsibility of testing to
developers by adopting the techniques like Pair
Programming and Test Driven Programming.
SQA under Agile development
(cont..)

 Testing is integrated in each iteration that helps to


shorten the release time and provides with better
quality.
SQA Procedures & Processes
 The collection of SQA procedures is usually called the
"SQA Procedure Manual”.
 A good reference for how to build a SQA Manual for
software companies is ISO 9000-3.
 SQA procedures are defined by each organization
depending on the project needs and nature.
 These procedures clearly defined the steps to perform
the said processes.
 Example includes: Procedures for peer review, Testing
procedures, reporting procedures etc.
SQA Procedures & Processes
(Cont..)

Typical SDLC phases and relevant Artifacts SQA Responsibilities

Requirements
RequirementsCollection
Collection Requirement
RequirementSpecs
Specs Reviews
Reviews

Analysis
Analysis Functional
FunctionalSpecs
Specs Reviews
Reviews

Architecture
Architecture&&Design
Design Design
DesignSpecs
Specs Reviews
Reviews

Development
Development Code
Code&&Executables
Executables
Implement
Implement
Test
TestCases
Cases
Testing
Testing

Deployment
Deployment Deployment
DeploymentDocs
Docs Review
Review
SQA Procedures & Processes
(Cont..)
Dev. Artifacts SQA Artifacts SQA Artifacts
(more)
Requirement
RequirementSpecs
Specs RS
RSReviews
Reviews

Functional
FunctionalSpecs
Specs FS
FSReviews
Reviews
Test
TestPlan
Plan
Design
DesignSpecs
Specs DS
DSReviews
Reviews
Test
TestCases
Cases
Code
Code&&Executables
Executables Bug
BugReports
Reports
More
MoreTest
TestCases
Cases
Deployment
DeploymentDocs
Docs DD
DDReviews
Reviews
Roles & responsibilities of SQA
team
 Review of documents developed by development team
 Track the compliance with standards
 Development of QA Plan (test plan + test cases)
 Implementation of test cases (Black Box or Glass Box
Testing)
 Management of bug repository
 Participating in code and design reviews
 Participate in product and process audits.
Quality Attributes
Quality attributes apply both to the product and the
process.

 product: delivered to the customer


 process: produces the software product
 resources: (both the product and the process
require resources)
 Underlying assumption: a quality process leads to a
quality product
Quality Attributes
Quality attributes can be external or internal.

 External: Derived from the relationship between the environment and the
system (or the process). (To derive, the system or process must run)
 e.g. Reliability, Robustness

 Internal: Derived immediately from the product or process description (To


derive, it is sufficient to have the description)
 Underlying assumption: internal quality leads to external quality (cfr.
metaphor manufacturing lines)
 e.g. Efficiency
Roles & responsibilities of SQA
team
Responsibilities of a tester
 Design test cases
 Write test scripts
 Execute test cases

Responsibility of SQA manager


 Give 25% time for reviewing test cases written
 Lead review meetings
 Resolve conflicts
Characteristics of a good SQA Engineer

 Test to break attitude


 Experience & Education as a programmer or analyst
 A thick skin
 Good sense of humor
 Tolerance for chaos
 Firmness
 Evidence oriented
 Logical
 Honest
 Self sufficient
Can you answer the following
questions?
 Why are coding standards important?
 Would you trust software developed by an ISO
9000 certified company? Justify your answer
Class ahead

Software Quality Management

You might also like