Unit01 - Software Development Process
SDLC Models
Software Engineering
Diploma in Computer/IT Engineering,
Gujarat Technological University, Gujarat, India
Unit01 - Software Development Process
SDLC Models
Software Engineering
Diploma in Computer/IT Engineering,
Gujarat Technological University, Gujarat, India
Chapter 3 Classes and Objects 3
2.1 The Nature of Objects 4
2.2 Relationships among Object 7
2.3 The Nature of Classes 10
2.4 Relationships among Classes 11
2.5 Interplay of Classes and Objects 14
2.6 Identifying Classes and Objects 15
2.7 Importance of Proper Classification 18
2.8 Key abstractions and Mechanism 19
YouTube Link: https://youtu.be/8UfQ8quw0Eg
(**Test Automation Masters Program: https://www.edureka.co/masters-program/automation-testing-engineer-training **)
This Edureka PPT on "What is Integration Testing?" will help you get in-depth knowledge on integration testing and why it is important to subject software builds to integration tests before moving on to next level of testing.
Levels of Software Testing
What is Integration Testing?
Different Approaches to Integration Testing
How to do Integration Testing?
Examples of Integration Testing
Integration Testing Challenges & Best Practices
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
Chapter 10 Testing and Quality Assurance1Unders.docxketurahhazelhurst
Chapter 10:
Testing and Quality
Assurance
1
Understand quality & basic techniques for software verification and validation.
Analyze basics of software testing and testing techniques.
Discuss the concept of “inspection” process.
Objectives
2
Quality assurance (QA): activities designed
to measure and improve quality in a product— and process.
Quality control (QC): activities designed to validate and verify the quality of the product through detecting faults and “fixing” the defects.
Need good techniques, process, tools,
and team.
Testing Introduction
similar
3
Two traditional definitions:
Conforms to requirements.
Fit to use.
Verification: checking software conforms to
its requirements (did the software evolve
from the requirements properly; does the software “work”?)
Is the system correct?
Validation: checking software meets user requirements (fit to use)
Are we building the correct system?
What Is “Quality”?
4
Testing: executing program in a controlled environment and “verifying/validating” output.
Inspections and reviews.
Formal methods (proving software correct).
Static analysis detects “error-prone conditions.”
Some “Error-Detection” Techniques (finding errors)
5
Error: a mistake made by a programmer or software engineer that caused the fault, which in turn may cause a failure
Fault (defect, bug): condition that may cause a failure in the system
Failure (problem): inability of system to perform a function according to its spec due to some fault
Fault or failure/problem severity (based on consequences)
Fault or failure/problem priority (based on importance of developing a fix, which is in turn based
on severity)
Faults and Failures
6
Activity performed for:
Evaluating product quality
Improving products by identifying defects and having them fixed prior to software release
Dynamic (running-program) verification of program’s behavior on a finite set of test cases selected from execution domain.
Testing can NOT prove product works 100%—even though we use testing to demonstrate that parts of the software works.
Testing
Not always
done!
7
Who tests?
Programmers
Testers/Req. Analyst
Users
What is tested?
Unit code testing
Functional code testing
Integration/system testing
User interface testing
Testing (cont.)
Why test?
Acceptance (customer)
Conformance (std, laws, etc.)
Configuration (user vs. dev.)
Performance, stress, security, etc.
How (test cases designed)?
Intuition
Specification based (black box)
Code based (white box)
Existing cases (regression)
8
Progression of Testing
Equivalence Class Partitioning
Divide the input into several groups, deemed “equivalent” for purposes of finding errors.
Pick one “representative” for each class used for testing.
Equivalence classes determined by req./design specifications and some intuition
Example: pick “larger” of
two integers and . . .
Lessen duplication.
Complete coverage.
10
Suppose we have n distinct functional requirements.
Su ...
Chapter 3 Classes and Objects 3
2.1 The Nature of Objects 4
2.2 Relationships among Object 7
2.3 The Nature of Classes 10
2.4 Relationships among Classes 11
2.5 Interplay of Classes and Objects 14
2.6 Identifying Classes and Objects 15
2.7 Importance of Proper Classification 18
2.8 Key abstractions and Mechanism 19
YouTube Link: https://youtu.be/8UfQ8quw0Eg
(**Test Automation Masters Program: https://www.edureka.co/masters-program/automation-testing-engineer-training **)
This Edureka PPT on "What is Integration Testing?" will help you get in-depth knowledge on integration testing and why it is important to subject software builds to integration tests before moving on to next level of testing.
Levels of Software Testing
What is Integration Testing?
Different Approaches to Integration Testing
How to do Integration Testing?
Examples of Integration Testing
Integration Testing Challenges & Best Practices
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
Chapter 10 Testing and Quality Assurance1Unders.docxketurahhazelhurst
Chapter 10:
Testing and Quality
Assurance
1
Understand quality & basic techniques for software verification and validation.
Analyze basics of software testing and testing techniques.
Discuss the concept of “inspection” process.
Objectives
2
Quality assurance (QA): activities designed
to measure and improve quality in a product— and process.
Quality control (QC): activities designed to validate and verify the quality of the product through detecting faults and “fixing” the defects.
Need good techniques, process, tools,
and team.
Testing Introduction
similar
3
Two traditional definitions:
Conforms to requirements.
Fit to use.
Verification: checking software conforms to
its requirements (did the software evolve
from the requirements properly; does the software “work”?)
Is the system correct?
Validation: checking software meets user requirements (fit to use)
Are we building the correct system?
What Is “Quality”?
4
Testing: executing program in a controlled environment and “verifying/validating” output.
Inspections and reviews.
Formal methods (proving software correct).
Static analysis detects “error-prone conditions.”
Some “Error-Detection” Techniques (finding errors)
5
Error: a mistake made by a programmer or software engineer that caused the fault, which in turn may cause a failure
Fault (defect, bug): condition that may cause a failure in the system
Failure (problem): inability of system to perform a function according to its spec due to some fault
Fault or failure/problem severity (based on consequences)
Fault or failure/problem priority (based on importance of developing a fix, which is in turn based
on severity)
Faults and Failures
6
Activity performed for:
Evaluating product quality
Improving products by identifying defects and having them fixed prior to software release
Dynamic (running-program) verification of program’s behavior on a finite set of test cases selected from execution domain.
Testing can NOT prove product works 100%—even though we use testing to demonstrate that parts of the software works.
Testing
Not always
done!
7
Who tests?
Programmers
Testers/Req. Analyst
Users
What is tested?
Unit code testing
Functional code testing
Integration/system testing
User interface testing
Testing (cont.)
Why test?
Acceptance (customer)
Conformance (std, laws, etc.)
Configuration (user vs. dev.)
Performance, stress, security, etc.
How (test cases designed)?
Intuition
Specification based (black box)
Code based (white box)
Existing cases (regression)
8
Progression of Testing
Equivalence Class Partitioning
Divide the input into several groups, deemed “equivalent” for purposes of finding errors.
Pick one “representative” for each class used for testing.
Equivalence classes determined by req./design specifications and some intuition
Example: pick “larger” of
two integers and . . .
Lessen duplication.
Complete coverage.
10
Suppose we have n distinct functional requirements.
Su ...
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010TEST Huddle
EuroSTAR Software Testing Conference 2010 presentation onTest Strategies in Agile Projects by Anders Claesson . See more at: http://conference.eurostarsoftwaretesting.com/past-presentations/
Software testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation
Similar to SE2023 0401 Software Coding and Testing.pptx (20)
Unit02 - Software Analysis And Design
Use Case Diagram
Software Engineering
Diploma in Computer/IT Engineering,
Gujarat Technological University, Gujarat, India
Unit02 - Software Analysis And Design
Data Modeling
Software Engineering
Diploma in Computer/IT Engineering,
Gujarat Technological University, Gujarat, India
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
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
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