SlideShare a Scribd company logo
1 of 28
Software
Coding and Testing
by:
Dr. Bharat V. Chawda
Computer Engineering Department,
BBIT, VVNagar, Gujarat, India
1
Overview
 Introduction
 Code Review
 Software Documentation
 Testing
 Test Documentation
(As per GTU Curriculum – Diploma in Computer/IT Engineering)
Based on Books:
1. Fundamentals of Software Engineering – by Rajib Mall
2. Software Engineering: A Practitioner’s Approach – by Roger Pressman
2
Introduction: Coding
 When?
 After:
 Design phase is complete, and
 Design docs are successfully reviewed
 Objective
 Design of System  Code in high-level lang
 Unit test this code
 Coding Standards
 Coding Guidelines
3
Code Review
 When?
 After: Module successfully compiles
 All the syntax errors have been eliminated
 Code review v/s Testing
 CR: Cost-effective strategy for error elimination
 CR: Direct detects errors
 T: Detects failures only: diff i/p, circumstances
 Testing: Requires efforts: Debugging – locate
errors; Error Correction – fix the bug
 CR: Two Types
 Code Walkthrough, Code Inspection
4
Code Walkthrough
 Informal code analysis technique
 When to review?
 After: Module is Coded, Compiled, and Syntax Errors
are eliminated
 How?
 Few members of dev team are assigned this task
 Each member selects some test cases
 Simulate execution of code by hand
 (Trace execution through different Statements and
Instructions of the code)
 Note down findings; Discuss with coder in WT meeting
5
Code Walkthrough (cont)
 Objective
 Discover the algorithmic and logical errors in
the code
 Guidelines
 Team size: Not too big, not too small: 3-7
member
 Focus on discovery of errors, not on how to fix
them
 Managers should not attend WT meeting – To
avoid feeling: engineers are being evaluated
6
Code Inspection
 Code is examined for the presence of some
common/classical programming
errors
 Use of uninitialized variables
 Incompatible assignments
 Non terminating loops; Jumps into loops;
Improper modification of loop variables
 Mismatch in arguments in procedure (fun) calls
 Array indices out of bounds
 Improper storage allocation and de-allocation
 Use of incorrect logical operators; Precedence
 Comparison of equality of floating point values 7
Code Inspection (cont)
 Objective:
 Check for the common types of errors
 Check whether coding standard have been
adhered to
 SW companies can maintain list of
commonly committed error  check list for
code inspection
8
Software Documentation
 SW Product
 Executable files + Source Code + Documents
 Documents: Users’ manual, SRS doc, Design
doc, Test doc, Installation manual, etc
 Why required?
 Enhances understandability of SW product;
Reduces effort & time required 4 maintenance
 Help users to und & effectively use the system
 Help in effectively tackling manpower turnover
 Help manager to effectively track progress
9
SW: Internal Documentation
 Code comprehension features: provided in
the source code itself
 Comments embedded in the source code
 Use of meaningful variable names
 Module and function headers
 Code indentation
 Code structuring (modules + functions)
 Use of constant identifiers
 Use of enumerated types
 Use of user-defined data types
10
SW: External Documentation
 Contains various types of supportive docs
 Users’ manual
 SRS doc
 Design doc
 Test doc
 Installation manual…
 Features: Good external documentation
 Consistency
 Understandability
11
Gunning’s Fog Index
 Metric to measure the readability of a document
 Fog(D) = [0.4 * words/sentences] +
[% of words having >=3 syllables]
 Example: “The Gunning’s fog index is based on
the premise that use of short sentences and
simple words makes a document easy to
understand”
 Fog(D) = [0.4 * 23 / 1] + [4 / 23 * 100]
= 26
 Indicates the no. of years of formal education
required to comfortably understand document
12
Testing: Introduction
 Testing:
 Aim: Identify all defects in a program
 Error / Defect / Bug / Fault:
 Mistake committed by development team
during any of the development phases.
 Failure:
 Manifestation of an error
 Symptom of an error
 Test case: Triplet [I, S, O]: I/P, State, O/P
 Test suite: Set of all test cases…
13
Testing: Levels/Stages
 Unit Testing
 Integration Testing
 System Testing
14
Unit Testing
 When?
 After: Module has been coded and reviewed
 How?
 Design test cases
 Develop Environment
 Do testing
 Environment
 Driver + Module + Stub
(Stub: Dummy procedures with simplified behavior)
(Driver: Non-local data str + Code to call fun of module)
15
Driver
Stub
Module under Test
Global
Data
Black Box Testing
16
int find_max(int x, int y)
{
int max;
if (x>y)
max = x;
else
max = y;
return max;
}
x
y
max
find_max
Black Box Testing
 Concept
 Based on functional specification of SW
 Based on functional behavior: Inputs/Outputs
 Also known as: Functional Testing
 No knowledge of design & code is required
 Two main approaches
 Equivalence Class Partitioning
 Boundary Value Analysis
17
Black Box Testing: Example
 SW: Computes square root of integer
values in the range of 0 and 5000.
 Test Cases: Equivalence Class Partitioning
 {-5, 500, 6000}
 Test Cases: Boundary Value Analysis
 {-1, 0, 5000, 5001}
18
White Box Testing
19
int find_max(int x, int y)
{
int max;
if (x>y)
max = x;
else
max = y;
return max;
}
x
y
max
find_max
White Box Testing
 Concept
 Based on analysis of code
 Based on structure of the implementation
 Also known as: Structural Testing
 Knowledge of design & code is required
 Two Types
 Fault based: Targets: detect certain types of F
 Coverage based: Targets: execute (cover)
certain elements of a program
20
White Box T: Coverage based
 Strategies
 Statement Coverage
 Each statement should be executed at least once
 Branch Coverage
 Each branch : traversed at least once
 Condition Coverage
 Each condition : True at least once and false at least
once
 Path Coverage
 Each linearly independent path : executed at least
once
21
White Box T: Example
int test (int x, int y)
{ int z;
z = -1;
if (x>0 && y>0)
z = x;
return z;
}
22
Statement Coverage:
{(x=1,y=1)}
Branch Coverage:
{(1,1), (0,0)}
Condition Coverage:
{(0,0), (0,1), (1,0), (1,1)}
White Box T: Path Coverage
 Concept
 All linearly independent paths in the program
are executed at least once
 CFG: Control Flow Graph
 Directed graph – consisting of a set of Nodes
(N) and Edges (E) where
 Nodes (N): corresponds to a unique program
statement
 Edges (E): Transfer of control From one node
to another node
23
White Box T: Path Coverage
 Example:
int gcd (int x, int y)
{
while (x!=y)
{
if (x>y)
x=x-y;
else
y=y-x;
}
return x;
}
24
White Box T: Path Coverage
 Example:
int gcd (int x, int y)
{
1. while (x!=y)
{
2. if (x>y)
3. x=x-y;
else
4. y=y-x;
5. }
6. return x;
}
25
1
2
3 4
5
6
 CFG:
Cyclomatic Complexity Metric
 V(G) = E – N + 2
 V(G) = Total number of Non-overlapping
Bounded Areas + 1
 V(G) = Total number of Non-overlapping
Areas
 V(G) = Decision Points + 1
 V(G) = Predicate Nodes + 1
26
Cyclomatic Complexity of previous example of GCD: 3
Test Documentation
 When: Towards end of testing
 Represents: Test summary report
 Specifies:
 Total number of tests: applied to a sub-system
 How many tests were successful
 How many tests were unsuccessful; and at
which extent (degree): totally or partially
27
Thank-U…!!!
28

More Related Content

What's hot

Unit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.pptUnit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.pptDrTThendralCompSci
 
Software Measurement and Metrics.pptx
Software Measurement and Metrics.pptxSoftware Measurement and Metrics.pptx
Software Measurement and Metrics.pptxubaidullah75790
 
Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Sudarshan Dhondaley
 
software cost factor
software cost factorsoftware cost factor
software cost factorAbinaya B
 
CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5SIMONTHOMAS S
 
Unit I Software Testing and Quality Assurance
Unit I Software Testing and Quality AssuranceUnit I Software Testing and Quality Assurance
Unit I Software Testing and Quality AssuranceVinothkumaR Ramu
 
component based development model
component based development modelcomponent based development model
component based development modelMuneeba Qamar
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and AnswersBala Ganesh
 
Integration testing
Integration testingIntegration testing
Integration testingqueen jemila
 
Integration testing
Integration testingIntegration testing
Integration testingVaibhav Dash
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineeringRupesh Vaishnav
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process ModelsAhsan Rahim
 
Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineeringkirupasuchi1996
 
Software Testing and Quality Assurance Assignment 3
Software Testing and Quality Assurance Assignment 3Software Testing and Quality Assurance Assignment 3
Software Testing and Quality Assurance Assignment 3Gurpreet singh
 
Software configuration management
Software configuration managementSoftware configuration management
Software configuration managementfizamustanser
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation TechniquesSanthi thi
 

What's hot (20)

Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 
Unit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.pptUnit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.ppt
 
Software Measurement and Metrics.pptx
Software Measurement and Metrics.pptxSoftware Measurement and Metrics.pptx
Software Measurement and Metrics.pptx
 
Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5
 
software cost factor
software cost factorsoftware cost factor
software cost factor
 
CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5
 
Unit I Software Testing and Quality Assurance
Unit I Software Testing and Quality AssuranceUnit I Software Testing and Quality Assurance
Unit I Software Testing and Quality Assurance
 
component based development model
component based development modelcomponent based development model
component based development model
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
 
Integration testing
Integration testingIntegration testing
Integration testing
 
System testing
System testingSystem testing
System testing
 
Unit testing
Unit testing Unit testing
Unit testing
 
Integration testing
Integration testingIntegration testing
Integration testing
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
 
Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineering
 
Software Testing and Quality Assurance Assignment 3
Software Testing and Quality Assurance Assignment 3Software Testing and Quality Assurance Assignment 3
Software Testing and Quality Assurance Assignment 3
 
Software configuration management
Software configuration managementSoftware configuration management
Software configuration management
 
Software design
Software designSoftware design
Software design
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation Techniques
 

Similar to SE2023 0401 Software Coding and Testing.pptx

CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdgCS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdgRahithAhsan1
 
Chapter 10 Testing and Quality Assurance1Unders.docx
Chapter 10 Testing and Quality Assurance1Unders.docxChapter 10 Testing and Quality Assurance1Unders.docx
Chapter 10 Testing and Quality Assurance1Unders.docxketurahhazelhurst
 
Coding and testing in Software Engineering
Coding and testing in Software EngineeringCoding and testing in Software Engineering
Coding and testing in Software EngineeringAbhay Vijay
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis Engineering Software Lab
 
Software Testing - Day One
Software Testing - Day OneSoftware Testing - Day One
Software Testing - Day OneGovardhan Reddy
 
Testing material (1).docx
Testing material (1).docxTesting material (1).docx
Testing material (1).docxKVamshiKrishna5
 
Manual Testing Interview Questions & Answers.docx
Manual Testing Interview Questions & Answers.docxManual Testing Interview Questions & Answers.docx
Manual Testing Interview Questions & Answers.docxssuser305f65
 
Software testing
Software testingSoftware testing
Software testingBala Ganesh
 
Software Testing interview - Q&A and tips
Software Testing interview - Q&A and tipsSoftware Testing interview - Q&A and tips
Software Testing interview - Q&A and tipsPankaj Dubey
 
Object oriented sad 6
Object oriented sad 6Object oriented sad 6
Object oriented sad 6Bisrat Girma
 
Software testing strategies
Software testing strategiesSoftware testing strategies
Software testing strategiesKrishna Sujeer
 
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010TEST Huddle
 
Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)Babul Mirdha
 
Control Flow Testing
Control Flow TestingControl Flow Testing
Control Flow TestingHirra Sultan
 

Similar to SE2023 0401 Software Coding and Testing.pptx (20)

CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdgCS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
 
Chapter 10 Testing and Quality Assurance1Unders.docx
Chapter 10 Testing and Quality Assurance1Unders.docxChapter 10 Testing and Quality Assurance1Unders.docx
Chapter 10 Testing and Quality Assurance1Unders.docx
 
Coding and testing in Software Engineering
Coding and testing in Software EngineeringCoding and testing in Software Engineering
Coding and testing in Software Engineering
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
 
Software Testing - Day One
Software Testing - Day OneSoftware Testing - Day One
Software Testing - Day One
 
Testing
TestingTesting
Testing
 
Testing material (1).docx
Testing material (1).docxTesting material (1).docx
Testing material (1).docx
 
Manual Testing Interview Questions & Answers.docx
Manual Testing Interview Questions & Answers.docxManual Testing Interview Questions & Answers.docx
Manual Testing Interview Questions & Answers.docx
 
Software testing
Software testingSoftware testing
Software testing
 
Software Testing interview - Q&A and tips
Software Testing interview - Q&A and tipsSoftware Testing interview - Q&A and tips
Software Testing interview - Q&A and tips
 
Software testing (2)
Software testing (2)Software testing (2)
Software testing (2)
 
Object oriented sad 6
Object oriented sad 6Object oriented sad 6
Object oriented sad 6
 
Ensuring code quality
Ensuring code qualityEnsuring code quality
Ensuring code quality
 
Software testing strategies
Software testing strategiesSoftware testing strategies
Software testing strategies
 
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010
 
Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)
 
pccf unit 1 _VP.pptx
pccf unit 1 _VP.pptxpccf unit 1 _VP.pptx
pccf unit 1 _VP.pptx
 
Control Flow Testing
Control Flow TestingControl Flow Testing
Control Flow Testing
 
Gcs day1
Gcs day1Gcs day1
Gcs day1
 
SWE-6 TESTING.pptx
SWE-6 TESTING.pptxSWE-6 TESTING.pptx
SWE-6 TESTING.pptx
 

More from Bharat Chawda

SE2023 0102 SDLC Models.pdf
SE2023 0102 SDLC Models.pdfSE2023 0102 SDLC Models.pdf
SE2023 0102 SDLC Models.pdfBharat Chawda
 
SE2023 0301 Software Project Management.pptx
SE2023 0301 Software Project Management.pptxSE2023 0301 Software Project Management.pptx
SE2023 0301 Software Project Management.pptxBharat Chawda
 
SE2023 0207 Software Architectural Design.pptx
SE2023 0207 Software Architectural Design.pptxSE2023 0207 Software Architectural Design.pptx
SE2023 0207 Software Architectural Design.pptxBharat Chawda
 
SE2023 0206 Use Case Diagram.pptx
SE2023 0206 Use Case Diagram.pptxSE2023 0206 Use Case Diagram.pptx
SE2023 0206 Use Case Diagram.pptxBharat Chawda
 
SE2023 0205 Activity Diagram.pptx
SE2023 0205 Activity Diagram.pptxSE2023 0205 Activity Diagram.pptx
SE2023 0205 Activity Diagram.pptxBharat Chawda
 
SE2023 0204 Data Modeling.pptx
SE2023 0204 Data Modeling.pptxSE2023 0204 Data Modeling.pptx
SE2023 0204 Data Modeling.pptxBharat Chawda
 
SE2023 0203 Inventory System.pptx
SE2023 0203 Inventory System.pptxSE2023 0203 Inventory System.pptx
SE2023 0203 Inventory System.pptxBharat Chawda
 
SE2023 0202 DFD.pptx
SE2023 0202 DFD.pptxSE2023 0202 DFD.pptx
SE2023 0202 DFD.pptxBharat Chawda
 
SE2023 0201 Software Analysis and Design.pptx
SE2023 0201 Software Analysis and Design.pptxSE2023 0201 Software Analysis and Design.pptx
SE2023 0201 Software Analysis and Design.pptxBharat Chawda
 
SE2023 0101 Software Development Process.pptx
SE2023 0101 Software Development Process.pptxSE2023 0101 Software Development Process.pptx
SE2023 0101 Software Development Process.pptxBharat Chawda
 
Book Store Management System - Functional Requirements - 2021
Book Store Management System - Functional Requirements - 2021Book Store Management System - Functional Requirements - 2021
Book Store Management System - Functional Requirements - 2021Bharat Chawda
 
Book Store Management System - Database Design - 2021
Book Store Management System - Database Design - 2021Book Store Management System - Database Design - 2021
Book Store Management System - Database Design - 2021Bharat Chawda
 
ECHM - Ecology and environment
ECHM - Ecology and environmentECHM - Ecology and environment
ECHM - Ecology and environmentBharat Chawda
 

More from Bharat Chawda (13)

SE2023 0102 SDLC Models.pdf
SE2023 0102 SDLC Models.pdfSE2023 0102 SDLC Models.pdf
SE2023 0102 SDLC Models.pdf
 
SE2023 0301 Software Project Management.pptx
SE2023 0301 Software Project Management.pptxSE2023 0301 Software Project Management.pptx
SE2023 0301 Software Project Management.pptx
 
SE2023 0207 Software Architectural Design.pptx
SE2023 0207 Software Architectural Design.pptxSE2023 0207 Software Architectural Design.pptx
SE2023 0207 Software Architectural Design.pptx
 
SE2023 0206 Use Case Diagram.pptx
SE2023 0206 Use Case Diagram.pptxSE2023 0206 Use Case Diagram.pptx
SE2023 0206 Use Case Diagram.pptx
 
SE2023 0205 Activity Diagram.pptx
SE2023 0205 Activity Diagram.pptxSE2023 0205 Activity Diagram.pptx
SE2023 0205 Activity Diagram.pptx
 
SE2023 0204 Data Modeling.pptx
SE2023 0204 Data Modeling.pptxSE2023 0204 Data Modeling.pptx
SE2023 0204 Data Modeling.pptx
 
SE2023 0203 Inventory System.pptx
SE2023 0203 Inventory System.pptxSE2023 0203 Inventory System.pptx
SE2023 0203 Inventory System.pptx
 
SE2023 0202 DFD.pptx
SE2023 0202 DFD.pptxSE2023 0202 DFD.pptx
SE2023 0202 DFD.pptx
 
SE2023 0201 Software Analysis and Design.pptx
SE2023 0201 Software Analysis and Design.pptxSE2023 0201 Software Analysis and Design.pptx
SE2023 0201 Software Analysis and Design.pptx
 
SE2023 0101 Software Development Process.pptx
SE2023 0101 Software Development Process.pptxSE2023 0101 Software Development Process.pptx
SE2023 0101 Software Development Process.pptx
 
Book Store Management System - Functional Requirements - 2021
Book Store Management System - Functional Requirements - 2021Book Store Management System - Functional Requirements - 2021
Book Store Management System - Functional Requirements - 2021
 
Book Store Management System - Database Design - 2021
Book Store Management System - Database Design - 2021Book Store Management System - Database Design - 2021
Book Store Management System - Database Design - 2021
 
ECHM - Ecology and environment
ECHM - Ecology and environmentECHM - Ecology and environment
ECHM - Ecology and environment
 

Recently uploaded

Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...FIDO Alliance
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTopCSSGallery
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfFIDO Alliance
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuidePixlogix Infotech
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfFIDO Alliance
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGDSC PJATK
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfFIDO Alliance
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewDianaGray10
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...panagenda
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandIES VE
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Paige Cruz
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentationyogeshlabana357357
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...ScyllaDB
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data SciencePaolo Missier
 

Recently uploaded (20)

Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 

SE2023 0401 Software Coding and Testing.pptx

  • 1. Software Coding and Testing by: Dr. Bharat V. Chawda Computer Engineering Department, BBIT, VVNagar, Gujarat, India 1
  • 2. Overview  Introduction  Code Review  Software Documentation  Testing  Test Documentation (As per GTU Curriculum – Diploma in Computer/IT Engineering) Based on Books: 1. Fundamentals of Software Engineering – by Rajib Mall 2. Software Engineering: A Practitioner’s Approach – by Roger Pressman 2
  • 3. Introduction: Coding  When?  After:  Design phase is complete, and  Design docs are successfully reviewed  Objective  Design of System  Code in high-level lang  Unit test this code  Coding Standards  Coding Guidelines 3
  • 4. Code Review  When?  After: Module successfully compiles  All the syntax errors have been eliminated  Code review v/s Testing  CR: Cost-effective strategy for error elimination  CR: Direct detects errors  T: Detects failures only: diff i/p, circumstances  Testing: Requires efforts: Debugging – locate errors; Error Correction – fix the bug  CR: Two Types  Code Walkthrough, Code Inspection 4
  • 5. Code Walkthrough  Informal code analysis technique  When to review?  After: Module is Coded, Compiled, and Syntax Errors are eliminated  How?  Few members of dev team are assigned this task  Each member selects some test cases  Simulate execution of code by hand  (Trace execution through different Statements and Instructions of the code)  Note down findings; Discuss with coder in WT meeting 5
  • 6. Code Walkthrough (cont)  Objective  Discover the algorithmic and logical errors in the code  Guidelines  Team size: Not too big, not too small: 3-7 member  Focus on discovery of errors, not on how to fix them  Managers should not attend WT meeting – To avoid feeling: engineers are being evaluated 6
  • 7. Code Inspection  Code is examined for the presence of some common/classical programming errors  Use of uninitialized variables  Incompatible assignments  Non terminating loops; Jumps into loops; Improper modification of loop variables  Mismatch in arguments in procedure (fun) calls  Array indices out of bounds  Improper storage allocation and de-allocation  Use of incorrect logical operators; Precedence  Comparison of equality of floating point values 7
  • 8. Code Inspection (cont)  Objective:  Check for the common types of errors  Check whether coding standard have been adhered to  SW companies can maintain list of commonly committed error  check list for code inspection 8
  • 9. Software Documentation  SW Product  Executable files + Source Code + Documents  Documents: Users’ manual, SRS doc, Design doc, Test doc, Installation manual, etc  Why required?  Enhances understandability of SW product; Reduces effort & time required 4 maintenance  Help users to und & effectively use the system  Help in effectively tackling manpower turnover  Help manager to effectively track progress 9
  • 10. SW: Internal Documentation  Code comprehension features: provided in the source code itself  Comments embedded in the source code  Use of meaningful variable names  Module and function headers  Code indentation  Code structuring (modules + functions)  Use of constant identifiers  Use of enumerated types  Use of user-defined data types 10
  • 11. SW: External Documentation  Contains various types of supportive docs  Users’ manual  SRS doc  Design doc  Test doc  Installation manual…  Features: Good external documentation  Consistency  Understandability 11
  • 12. Gunning’s Fog Index  Metric to measure the readability of a document  Fog(D) = [0.4 * words/sentences] + [% of words having >=3 syllables]  Example: “The Gunning’s fog index is based on the premise that use of short sentences and simple words makes a document easy to understand”  Fog(D) = [0.4 * 23 / 1] + [4 / 23 * 100] = 26  Indicates the no. of years of formal education required to comfortably understand document 12
  • 13. Testing: Introduction  Testing:  Aim: Identify all defects in a program  Error / Defect / Bug / Fault:  Mistake committed by development team during any of the development phases.  Failure:  Manifestation of an error  Symptom of an error  Test case: Triplet [I, S, O]: I/P, State, O/P  Test suite: Set of all test cases… 13
  • 14. Testing: Levels/Stages  Unit Testing  Integration Testing  System Testing 14
  • 15. Unit Testing  When?  After: Module has been coded and reviewed  How?  Design test cases  Develop Environment  Do testing  Environment  Driver + Module + Stub (Stub: Dummy procedures with simplified behavior) (Driver: Non-local data str + Code to call fun of module) 15 Driver Stub Module under Test Global Data
  • 16. Black Box Testing 16 int find_max(int x, int y) { int max; if (x>y) max = x; else max = y; return max; } x y max find_max
  • 17. Black Box Testing  Concept  Based on functional specification of SW  Based on functional behavior: Inputs/Outputs  Also known as: Functional Testing  No knowledge of design & code is required  Two main approaches  Equivalence Class Partitioning  Boundary Value Analysis 17
  • 18. Black Box Testing: Example  SW: Computes square root of integer values in the range of 0 and 5000.  Test Cases: Equivalence Class Partitioning  {-5, 500, 6000}  Test Cases: Boundary Value Analysis  {-1, 0, 5000, 5001} 18
  • 19. White Box Testing 19 int find_max(int x, int y) { int max; if (x>y) max = x; else max = y; return max; } x y max find_max
  • 20. White Box Testing  Concept  Based on analysis of code  Based on structure of the implementation  Also known as: Structural Testing  Knowledge of design & code is required  Two Types  Fault based: Targets: detect certain types of F  Coverage based: Targets: execute (cover) certain elements of a program 20
  • 21. White Box T: Coverage based  Strategies  Statement Coverage  Each statement should be executed at least once  Branch Coverage  Each branch : traversed at least once  Condition Coverage  Each condition : True at least once and false at least once  Path Coverage  Each linearly independent path : executed at least once 21
  • 22. White Box T: Example int test (int x, int y) { int z; z = -1; if (x>0 && y>0) z = x; return z; } 22 Statement Coverage: {(x=1,y=1)} Branch Coverage: {(1,1), (0,0)} Condition Coverage: {(0,0), (0,1), (1,0), (1,1)}
  • 23. White Box T: Path Coverage  Concept  All linearly independent paths in the program are executed at least once  CFG: Control Flow Graph  Directed graph – consisting of a set of Nodes (N) and Edges (E) where  Nodes (N): corresponds to a unique program statement  Edges (E): Transfer of control From one node to another node 23
  • 24. White Box T: Path Coverage  Example: int gcd (int x, int y) { while (x!=y) { if (x>y) x=x-y; else y=y-x; } return x; } 24
  • 25. White Box T: Path Coverage  Example: int gcd (int x, int y) { 1. while (x!=y) { 2. if (x>y) 3. x=x-y; else 4. y=y-x; 5. } 6. return x; } 25 1 2 3 4 5 6  CFG:
  • 26. Cyclomatic Complexity Metric  V(G) = E – N + 2  V(G) = Total number of Non-overlapping Bounded Areas + 1  V(G) = Total number of Non-overlapping Areas  V(G) = Decision Points + 1  V(G) = Predicate Nodes + 1 26 Cyclomatic Complexity of previous example of GCD: 3
  • 27. Test Documentation  When: Towards end of testing  Represents: Test summary report  Specifies:  Total number of tests: applied to a sub-system  How many tests were successful  How many tests were unsuccessful; and at which extent (degree): totally or partially 27