SlideShare a Scribd company logo
Software Engineering
WEEK 9
Software Quality Assurance
Sibel Kuzgun Akın
What is the quality?
● Quality refers to any measurable
characteristics such as correctness,
maintainability, portability, testability,
usability, reliability, efficiency, integrity,
reusability and interoperability.
● Quality, simpicically means that a product
should meet its specification.
Concepts of the quality
● Quality assurance
– Establish organisational procedures and standards for
quality
● Quality planning
– Select applicable procedures and standards for a
particular project and modify them if required
● Quality control
– Ensure those procedures and standards are followed by
the software development team
● Cost of quality
– Includes all costs incured in the pursuit of quality or in
performing quality related activities such as appraisal
costs, failure costs and external failure costs.
“It is better to try to keep a bad thing from happening
than it is to fix the bad thing once it has happened.”
● https://www.seguetech.com/rising-costs-defects/
Software Quality Assurance
● IEEE Glossary: Degree to which a system,
component or a process meets
– (1) specified requirements
– (2) customer or user needs or expectations
● ISO: The totatily of feautures or
characteristics of a product or service that
bear on its ability to satisfy specified or
implied needs.
Software Quality Attributes
● Safety
● Security
● Realiability
● Resilience
● Robustness
● Understandability
● Testability
● Adaptability
● Modularity
● Complexity
● Portability
● Usability
● Reusability
● Efficiency
● Learnability
Process based quality
Quality management and
software development
Formal technical reviews
● Purpose is to find defects before they are
passed on to another software engineering
activity or released to the customer.
● Software engineers and others conduct
formal technical reviews for software
engineers.
● Using formal technical reviews
(walkthroughs or inspections) is an effective
mean for improving software quality.
Software reviews
● To uncover errors in function, logic or
implementation for any representation of
the software.
● To verify that software meets its
requirements.
● To ensure that software representation
meets predefined standards.
● To achieve software development in a
uniform manner.
● To make projects more managable.
Product and process standards
Product standards
● Design review form
● Document naming
standards
● Procedure header
format
● Programming style
standard
● Project plan format
● Change request form
Process standards:
● Design review conduct
● Submission of
documents
● Version release process
● Project plan approval
process
● Change control process
● Test recording process
Internal and external attributes
Software Metrics
Software metric is a generic term that covers
● Cost and effort estimation models and
measures
● Productivity measures and models
● Quality models and measures
● Control and assurance
● Data collection
● Algorithmic / computational complexity
● Performance evaluation and models
Software Metric
● Software metric is a number derived from a
process, product or resource.
● Metrics can help address some of the most
critical issues in software development and
provide support for planning, monitoring,
controlling, and evaluating the software
process.
● We may use software metrics to collect
data from software to achieve quality
goals.
Cohesion
● Cohesion is an attribute of individual syb-
systems, describing their relative functional
strength, i.e. the extent to which the
individual sub-system components are
needed to perform the same task.
● We want to increase cohesion in order
to improve software modularity and
reusability.
Categories of cohesion
6. Functional cohesion Good
5. Sequential cohesion |
4. Communicational cohesion |
3. Procedural cohesion |
2. Temporal cohesion |
1. Logical cohesion |
0. Coincidental cohesion Bad
Functional cohesion
● If a function does a single, well defined
task it has functional cohesion.
● The functional strength is inversely
proportional to the generality of a function.
● The functional cohesion of a function can
be indirectly measured by measuring its
generality.
● Control variables increase the functionality
by twice that of data variables.
Sequential cohesion
● If the function performs more than one
task, but these tasks occur in an order
which was described in the specification,
there is sequential cohesion.
Communicational cohesion
● If the function performs more than one
task, but these tasks are all on the same
body of data, then its cohesion is
communicational.
Procedural cohesion
● There is procedural cohesion if the function
performs more than one task, and these
tasks are only related to a general
procedure effected by the software.
Temporal cohesion
● The function is temporally cohesive if it
performs more than one task, and these
tasks are only related logically.
Coincidental cohesion
● In the case of coincidental cohesion, the
function performs more than one task, and
these tasks are unrelated.
Another classification of cohesion
● Functional cohesion
● Data flow cohesion
● Action bundling cohesion
● Logical bundling cohesion
Data flow cohesion
● It describes the interdependencies among
the different statements of the function
depending on processing of data.
Coupling
● Coupling is a measure of degree of
interdependence between subsystems.
● Coupling of a sub-system is the
dependence of it on the other sub-systems
or global elements.
● We want to decrease coupling to
improve modularity and reusability.
Types of Coupling
5. Content coupling Bad
4. Common coupling |
3. Control coupling |
2. Stamp coupling |
1. Data coupling |
0. No coupling Good
Coupling
● In the case of content coupling, a function
branches into, changes data or alters a
statement in another function.
● Common coupling means that two
functions refer to the same global data.
● If a function passes a variable to another
function with the intention of controlling its
behavior, that is control coupling.
Coupling
● If two functions accept the same record
type as a parameter, there is a stamp
coupling between them.
● In the case of data coupling two functions
communicate by parameters which do not
contain any control element.
● No coupling means there is not any
communication between modules
Modular Dependency
Compile time dependency versus link time
dependency
Structured programming:
● Sharing extern variables among modules
● Including header files
● Calling functions of other modules
Object oriented programming:
● Using other classes
● Inheriting from other classes
Reusability
● Reusability is the degree to which a
component can be used in more than one
software system, or in building other
components, with little or no adaptation.
● We want to increase reusability.
Size
● LOC (lines of code)
● Number of
functions
● Number of classes
● Number of modules
● Module length
● Comment lines
● Blank lines
● Identifier length
Size of a system is a property that describes
its greatness.
Size Metric
Style
● Function length
● Identifier length
● Indentation
● Comments
● Blank lines
● Line length
● Embedded spaces
● Constants
● Number of reserved
words and standard
functions
● Included files
Understandability
● Understandability is defined as the amount
of programmer effort required to
understand a software component.
● We want to increase the understandability
of a program.
● Understandability affects the testability
maintainability of a program. If
understandability increases, maintainability
and testability increases.
Understandability: Language
● Different naming styles can significantly
affect the visual appearance of programs.
● Intuitively, the programs with natural
names are said to be more understandable
than the programs with abbreviated names.
● Smaller languages are usually easier to
understand than larger languages. So, as
the number of symbols in a language
increases, the understandability decreases.
Understandability: Unstructuredness
Unstructuredness in a program decreases
understandability.
● Goto: NEVER EVER USE!
● Branching out of a loop
● Branching to the test statement of a loop
● Infinite loop
● More than one return statements
● Exit () statements

More Related Content

What's hot

Software Engineering - Ch8
Software Engineering - Ch8Software Engineering - Ch8
Software Engineering - Ch8Siddharth Ayer
 
Bai giang-se-20feb14
Bai giang-se-20feb14Bai giang-se-20feb14
Software engineering
Software engineeringSoftware engineering
Software engineering
sakthibalabalamuruga
 
Bai giang-se-13feb14
Bai giang-se-13feb14Bai giang-se-13feb14
Software Process Model
Software Process ModelSoftware Process Model
Software Process Model
Dyanara Pritz Menia
 
Software engineering
Software engineeringSoftware engineering
Software engineering
sweetysweety8
 
System analsis and design
System analsis and designSystem analsis and design
System analsis and design
Rizwan Kabir
 
Bai giang-se-20jan14
Bai giang-se-20jan14Bai giang-se-20jan14
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
andyr91
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering process
Raheel Aslam
 
Bai giang-se-27feb14
Bai giang-se-27feb14Bai giang-se-27feb14
SWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software EngineeringSWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software Engineering
ghayour abbas
 
Slides chapters 26-27
Slides chapters 26-27Slides chapters 26-27
Slides chapters 26-27
Priyanka Shetty
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system developmentcymark09
 
Advanced topics in software engineering
Advanced topics in software engineeringAdvanced topics in software engineering
Advanced topics in software engineering
Rupesh Vaishnav
 
Ch 14 s.e use case diagrams
Ch 14 s.e use case diagramsCh 14 s.e use case diagrams
Ch 14 s.e use case diagrams
Badar Waseer
 
Software engineering model
Software engineering modelSoftware engineering model
Software engineering model
Manish Chaurasia
 

What's hot (20)

Software Engineering - Ch8
Software Engineering - Ch8Software Engineering - Ch8
Software Engineering - Ch8
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
Bai giang-se-20feb14
Bai giang-se-20feb14Bai giang-se-20feb14
Bai giang-se-20feb14
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Bai giang-se-13feb14
Bai giang-se-13feb14Bai giang-se-13feb14
Bai giang-se-13feb14
 
Software Process Model
Software Process ModelSoftware Process Model
Software Process Model
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
System analsis and design
System analsis and designSystem analsis and design
System analsis and design
 
Bai giang-se-20jan14
Bai giang-se-20jan14Bai giang-se-20jan14
Bai giang-se-20jan14
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering process
 
Bai giang-se-27feb14
Bai giang-se-27feb14Bai giang-se-27feb14
Bai giang-se-27feb14
 
testing
testingtesting
testing
 
SWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software EngineeringSWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software Engineering
 
Slides chapters 26-27
Slides chapters 26-27Slides chapters 26-27
Slides chapters 26-27
 
Incremental model
Incremental modelIncremental model
Incremental model
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system development
 
Advanced topics in software engineering
Advanced topics in software engineeringAdvanced topics in software engineering
Advanced topics in software engineering
 
Ch 14 s.e use case diagrams
Ch 14 s.e use case diagramsCh 14 s.e use case diagrams
Ch 14 s.e use case diagrams
 
Software engineering model
Software engineering modelSoftware engineering model
Software engineering model
 

Similar to Software Quality Assurance

Technical Practices for Agile Engineering - PNSQC 2019
Technical Practices for Agile Engineering - PNSQC 2019Technical Practices for Agile Engineering - PNSQC 2019
Technical Practices for Agile Engineering - PNSQC 2019
Moss Drake
 
Unit 8 software quality and matrices
Unit 8 software quality and matricesUnit 8 software quality and matrices
Unit 8 software quality and matrices
Preeti Mishra
 
Software Metrics - Software Engineering
Software Metrics - Software EngineeringSoftware Metrics - Software Engineering
Software Metrics - Software Engineering
Drishti Bhalla
 
All Software Testing in Software Engineering
All Software Testing in Software EngineeringAll Software Testing in Software Engineering
All Software Testing in Software Engineering
sankalpkumarsahoo174
 
CH. 4.pdf
CH. 4.pdfCH. 4.pdf
CH. 4.pdf
RajniSavaliya
 
Lecture 2 (Software Processes)
Lecture 2 (Software Processes)Lecture 2 (Software Processes)
Lecture 2 (Software Processes)
Education Front
 
Software Productivity Measurement
Software Productivity MeasurementSoftware Productivity Measurement
Software Productivity Measurement
Ajeng Savitri
 
softwareMaintenance.pdf
softwareMaintenance.pdfsoftwareMaintenance.pdf
softwareMaintenance.pdf
kumari36
 
Testing throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & ImplementationTesting throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & Implementation
yogi syafrialdi
 
Quality Attribute: Testability
Quality Attribute: TestabilityQuality Attribute: Testability
Quality Attribute: Testability
Pranay Singh
 
Building Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software EngineeringBuilding Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software Engineering
Muhammad Shehata
 
Relational Analysis of Software Developer’s Quality Assures
Relational Analysis of Software Developer’s Quality AssuresRelational Analysis of Software Developer’s Quality Assures
Relational Analysis of Software Developer’s Quality Assures
IOSR Journals
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
Aman Adhikari
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
Rupesh Vaishnav
 
1 introduction of OOAD
1 introduction of OOAD1 introduction of OOAD
1 introduction of OOAD
Manish Chaurasia
 
Softwarequalityassurance with Abu ul hassan Sahadvi
Softwarequalityassurance with Abu ul hassan SahadviSoftwarequalityassurance with Abu ul hassan Sahadvi
Softwarequalityassurance with Abu ul hassan Sahadvi
AbuulHassan2
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
ethiouniverse
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
SHREEHARI WADAWADAGI
 

Similar to Software Quality Assurance (20)

Technical Practices for Agile Engineering - PNSQC 2019
Technical Practices for Agile Engineering - PNSQC 2019Technical Practices for Agile Engineering - PNSQC 2019
Technical Practices for Agile Engineering - PNSQC 2019
 
Unit 8 software quality and matrices
Unit 8 software quality and matricesUnit 8 software quality and matrices
Unit 8 software quality and matrices
 
Software Metrics - Software Engineering
Software Metrics - Software EngineeringSoftware Metrics - Software Engineering
Software Metrics - Software Engineering
 
All Software Testing in Software Engineering
All Software Testing in Software EngineeringAll Software Testing in Software Engineering
All Software Testing in Software Engineering
 
CH. 4.pdf
CH. 4.pdfCH. 4.pdf
CH. 4.pdf
 
Lecture 2 (Software Processes)
Lecture 2 (Software Processes)Lecture 2 (Software Processes)
Lecture 2 (Software Processes)
 
Software Productivity Measurement
Software Productivity MeasurementSoftware Productivity Measurement
Software Productivity Measurement
 
softwareMaintenance.pdf
softwareMaintenance.pdfsoftwareMaintenance.pdf
softwareMaintenance.pdf
 
Testing throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & ImplementationTesting throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & Implementation
 
Quality Attribute: Testability
Quality Attribute: TestabilityQuality Attribute: Testability
Quality Attribute: Testability
 
Building Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software EngineeringBuilding Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software Engineering
 
Relational Analysis of Software Developer’s Quality Assures
Relational Analysis of Software Developer’s Quality AssuresRelational Analysis of Software Developer’s Quality Assures
Relational Analysis of Software Developer’s Quality Assures
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
 
1 introduction of OOAD
1 introduction of OOAD1 introduction of OOAD
1 introduction of OOAD
 
Softwarequalityassurance with Abu ul hassan Sahadvi
Softwarequalityassurance with Abu ul hassan SahadviSoftwarequalityassurance with Abu ul hassan Sahadvi
Softwarequalityassurance with Abu ul hassan Sahadvi
 
1841 1843
1841 18431841 1843
1841 1843
 
1841 1843
1841 18431841 1843
1841 1843
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
 

More from Sibel Kuzgun AKIN

Requirements Analysis
Requirements AnalysisRequirements Analysis
Requirements Analysis
Sibel Kuzgun AKIN
 
Cost Estimation
Cost EstimationCost Estimation
Cost Estimation
Sibel Kuzgun AKIN
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Sibel Kuzgun AKIN
 
Normal Formlar
Normal FormlarNormal Formlar
Normal Formlar
Sibel Kuzgun AKIN
 
ER Şemaları
ER ŞemalarıER Şemaları
ER Şemaları
Sibel Kuzgun AKIN
 
Veri Tabanı: SQL Gelişmiş Sorgular (Hafta 3)
Veri Tabanı: SQL Gelişmiş Sorgular (Hafta 3)Veri Tabanı: SQL Gelişmiş Sorgular (Hafta 3)
Veri Tabanı: SQL Gelişmiş Sorgular (Hafta 3)
Sibel Kuzgun AKIN
 
Veri Tabani: SQL'e Giriş (Hafta 2)
Veri Tabani: SQL'e Giriş (Hafta 2)Veri Tabani: SQL'e Giriş (Hafta 2)
Veri Tabani: SQL'e Giriş (Hafta 2)
Sibel Kuzgun AKIN
 
Veri Tabanı: Temel Kavramlar (Hafta 1)
Veri Tabanı: Temel Kavramlar (Hafta 1)Veri Tabanı: Temel Kavramlar (Hafta 1)
Veri Tabanı: Temel Kavramlar (Hafta 1)
Sibel Kuzgun AKIN
 

More from Sibel Kuzgun AKIN (8)

Requirements Analysis
Requirements AnalysisRequirements Analysis
Requirements Analysis
 
Cost Estimation
Cost EstimationCost Estimation
Cost Estimation
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Normal Formlar
Normal FormlarNormal Formlar
Normal Formlar
 
ER Şemaları
ER ŞemalarıER Şemaları
ER Şemaları
 
Veri Tabanı: SQL Gelişmiş Sorgular (Hafta 3)
Veri Tabanı: SQL Gelişmiş Sorgular (Hafta 3)Veri Tabanı: SQL Gelişmiş Sorgular (Hafta 3)
Veri Tabanı: SQL Gelişmiş Sorgular (Hafta 3)
 
Veri Tabani: SQL'e Giriş (Hafta 2)
Veri Tabani: SQL'e Giriş (Hafta 2)Veri Tabani: SQL'e Giriş (Hafta 2)
Veri Tabani: SQL'e Giriş (Hafta 2)
 
Veri Tabanı: Temel Kavramlar (Hafta 1)
Veri Tabanı: Temel Kavramlar (Hafta 1)Veri Tabanı: Temel Kavramlar (Hafta 1)
Veri Tabanı: Temel Kavramlar (Hafta 1)
 

Recently uploaded

Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 

Recently uploaded (20)

Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 

Software Quality Assurance

  • 1. Software Engineering WEEK 9 Software Quality Assurance Sibel Kuzgun Akın
  • 2. What is the quality? ● Quality refers to any measurable characteristics such as correctness, maintainability, portability, testability, usability, reliability, efficiency, integrity, reusability and interoperability. ● Quality, simpicically means that a product should meet its specification.
  • 3. Concepts of the quality ● Quality assurance – Establish organisational procedures and standards for quality ● Quality planning – Select applicable procedures and standards for a particular project and modify them if required ● Quality control – Ensure those procedures and standards are followed by the software development team ● Cost of quality – Includes all costs incured in the pursuit of quality or in performing quality related activities such as appraisal costs, failure costs and external failure costs.
  • 4. “It is better to try to keep a bad thing from happening than it is to fix the bad thing once it has happened.” ● https://www.seguetech.com/rising-costs-defects/
  • 5. Software Quality Assurance ● IEEE Glossary: Degree to which a system, component or a process meets – (1) specified requirements – (2) customer or user needs or expectations ● ISO: The totatily of feautures or characteristics of a product or service that bear on its ability to satisfy specified or implied needs.
  • 6. Software Quality Attributes ● Safety ● Security ● Realiability ● Resilience ● Robustness ● Understandability ● Testability ● Adaptability ● Modularity ● Complexity ● Portability ● Usability ● Reusability ● Efficiency ● Learnability
  • 9. Formal technical reviews ● Purpose is to find defects before they are passed on to another software engineering activity or released to the customer. ● Software engineers and others conduct formal technical reviews for software engineers. ● Using formal technical reviews (walkthroughs or inspections) is an effective mean for improving software quality.
  • 10. Software reviews ● To uncover errors in function, logic or implementation for any representation of the software. ● To verify that software meets its requirements. ● To ensure that software representation meets predefined standards. ● To achieve software development in a uniform manner. ● To make projects more managable.
  • 11. Product and process standards Product standards ● Design review form ● Document naming standards ● Procedure header format ● Programming style standard ● Project plan format ● Change request form Process standards: ● Design review conduct ● Submission of documents ● Version release process ● Project plan approval process ● Change control process ● Test recording process
  • 12. Internal and external attributes
  • 13. Software Metrics Software metric is a generic term that covers ● Cost and effort estimation models and measures ● Productivity measures and models ● Quality models and measures ● Control and assurance ● Data collection ● Algorithmic / computational complexity ● Performance evaluation and models
  • 14. Software Metric ● Software metric is a number derived from a process, product or resource. ● Metrics can help address some of the most critical issues in software development and provide support for planning, monitoring, controlling, and evaluating the software process. ● We may use software metrics to collect data from software to achieve quality goals.
  • 15. Cohesion ● Cohesion is an attribute of individual syb- systems, describing their relative functional strength, i.e. the extent to which the individual sub-system components are needed to perform the same task. ● We want to increase cohesion in order to improve software modularity and reusability.
  • 16. Categories of cohesion 6. Functional cohesion Good 5. Sequential cohesion | 4. Communicational cohesion | 3. Procedural cohesion | 2. Temporal cohesion | 1. Logical cohesion | 0. Coincidental cohesion Bad
  • 17. Functional cohesion ● If a function does a single, well defined task it has functional cohesion. ● The functional strength is inversely proportional to the generality of a function. ● The functional cohesion of a function can be indirectly measured by measuring its generality. ● Control variables increase the functionality by twice that of data variables.
  • 18. Sequential cohesion ● If the function performs more than one task, but these tasks occur in an order which was described in the specification, there is sequential cohesion.
  • 19. Communicational cohesion ● If the function performs more than one task, but these tasks are all on the same body of data, then its cohesion is communicational.
  • 20. Procedural cohesion ● There is procedural cohesion if the function performs more than one task, and these tasks are only related to a general procedure effected by the software.
  • 21. Temporal cohesion ● The function is temporally cohesive if it performs more than one task, and these tasks are only related logically.
  • 22. Coincidental cohesion ● In the case of coincidental cohesion, the function performs more than one task, and these tasks are unrelated.
  • 23. Another classification of cohesion ● Functional cohesion ● Data flow cohesion ● Action bundling cohesion ● Logical bundling cohesion
  • 24. Data flow cohesion ● It describes the interdependencies among the different statements of the function depending on processing of data.
  • 25. Coupling ● Coupling is a measure of degree of interdependence between subsystems. ● Coupling of a sub-system is the dependence of it on the other sub-systems or global elements. ● We want to decrease coupling to improve modularity and reusability.
  • 26. Types of Coupling 5. Content coupling Bad 4. Common coupling | 3. Control coupling | 2. Stamp coupling | 1. Data coupling | 0. No coupling Good
  • 27. Coupling ● In the case of content coupling, a function branches into, changes data or alters a statement in another function. ● Common coupling means that two functions refer to the same global data. ● If a function passes a variable to another function with the intention of controlling its behavior, that is control coupling.
  • 28. Coupling ● If two functions accept the same record type as a parameter, there is a stamp coupling between them. ● In the case of data coupling two functions communicate by parameters which do not contain any control element. ● No coupling means there is not any communication between modules
  • 29. Modular Dependency Compile time dependency versus link time dependency Structured programming: ● Sharing extern variables among modules ● Including header files ● Calling functions of other modules Object oriented programming: ● Using other classes ● Inheriting from other classes
  • 30. Reusability ● Reusability is the degree to which a component can be used in more than one software system, or in building other components, with little or no adaptation. ● We want to increase reusability.
  • 31. Size ● LOC (lines of code) ● Number of functions ● Number of classes ● Number of modules ● Module length ● Comment lines ● Blank lines ● Identifier length Size of a system is a property that describes its greatness.
  • 33. Style ● Function length ● Identifier length ● Indentation ● Comments ● Blank lines ● Line length ● Embedded spaces ● Constants ● Number of reserved words and standard functions ● Included files
  • 34. Understandability ● Understandability is defined as the amount of programmer effort required to understand a software component. ● We want to increase the understandability of a program. ● Understandability affects the testability maintainability of a program. If understandability increases, maintainability and testability increases.
  • 35. Understandability: Language ● Different naming styles can significantly affect the visual appearance of programs. ● Intuitively, the programs with natural names are said to be more understandable than the programs with abbreviated names. ● Smaller languages are usually easier to understand than larger languages. So, as the number of symbols in a language increases, the understandability decreases.
  • 36. Understandability: Unstructuredness Unstructuredness in a program decreases understandability. ● Goto: NEVER EVER USE! ● Branching out of a loop ● Branching to the test statement of a loop ● Infinite loop ● More than one return statements ● Exit () statements