Chapter 2 Slides
Chapter 2 Slides
THE
SOFTWARE
DEVELOPMENT
CYCLE
3. Test analysis and design for a given test level begin during
the corresponding development activity
Iterative &
Sequential Incremental
Software Development & Software Testing
Unlike the Waterfall model, the V-model integrates the test process throughout the
development process, implementing the principle of early testing.
Incremental Development
Each iteration tends to be relatively long (e.g., two to three months), and the feature
increments are correspondingly large, such as two or three groups of related features
Scrum
Each iteration tends to be relatively short (e.g., hours, days, or a few weeks), and the
feature increments are correspondingly small, such as a few enhancements and/or two
or three new features
Kanban
Implemented with or without fixed-length iterations, which can deliver either a single
enhancement or feature upon completion, or can group features together to release at
once
Spiral (or Prototyping)
Internet of Things (IoT) systems, which consist of many different objects, such as devices,
products, and services, typically apply separate software development lifecycle models
for each object
Quiz Time
• Which one of the following is the BEST definition of an incremental
development model?
A. Defining requirements, designing software and testing are done in a series with added
pieces
B. A phase in the development process should begin when the previous phase is complete
C. Testing is viewed as a separate phase which takes place after development has been
completed
A. Defining requirements, designing software and testing are done in a series with added
pieces
B. A phase in the development process should begin when the previous phase is complete
C. Testing is viewed as a separate phase which takes place after development has been
completed
C. The software is built in increments and each increment has activities for requirements,
design, build and test
C. The software is built in increments and each increment has activities for requirements,
design, build and test
B. For every testing activity, appropriate documentation should be produced, versioned and
stored
C. For every development activity resulting in code, there should be a testing activity to
document test cases
D. For every testing activity, metrics should be recorded and posted to a metrics dashboard
for all stakeholders
Quiz Time
• In an iterative lifecycle model, which of the following is an accurate statement
about testing activities?
B. For every testing activity, appropriate documentation should be produced, versioned and
stored
C. For every development activity resulting in code, there should be a testing activity to
document test cases
D. For every testing activity, metrics should be recorded and posted to a metrics dashboard
for all stakeholders
Test Levels
• Test levels are groups of test activities that are
organized and managed together. Acceptance
Component testing (also known as unit or module testing) focuses on components that
are separately testable
Component Testing
Reduce risk-find defects-prevent defects
Objectives escape-verify behavior-Build confidence
Developing automated test cases, then building and integrating small pieces of code,
then executing the component tests, correcting any issues, and re-factoring the code
Integration Testing
Component System
Integration Integration
Integration Testing
Reduce risk-find defects-prevent defects
Objectives escape-verify behavior-Build confidence
Failures in communication-Incorrect
Defects & Failures data-Interface mismatch-Incorrect Data
System testing focuses on the behavior and capabilities of a whole system or product,
often considering the end-to-end tasks the system can perform and the non-functional
behaviors it exhibits while performing those tasks
System Testing
Acceptance testing, like system testing, typically focuses on the behavior and capabilities
of a whole system or product
Acceptance Testing
A. Component testing verifies the functioning of software modules, program objects, and classes that are
separately testable, whereas system testing verifies interfaces between components and interactions with
different parts of the system
B. Test cases for component testing are usually derived from component specifications, design specifications, or
data models, whereas test cases for system testing are usually derived from requirement specifications,
functional specifications or use cases
C. Component testing focuses on functional characteristics, whereas system testing focuses on functional and
non-functional characteristics
D. Component testing is the responsibility of the technical testers, whereas system testing typically is the
responsibility of the users of the system
Quiz Time
• Which of the following comparisons of component testing and system testing is true?
A. Component testing verifies the functioning of software modules, program objects, and classes that are
separately testable, whereas system testing verifies interfaces between components and interactions with
different parts of the system
B. Test cases for component testing are usually derived from component specifications, design specifications, or
data models, whereas test cases for system testing are usually derived from requirement specifications,
functional specifications or use cases
C. Component testing focuses on functional characteristics, whereas system testing focuses on functional and
non-functional characteristics
D. Component testing is the responsibility of the technical testers, whereas system testing typically is the
responsibility of the users of the system
Quiz Time
• What type of testing is normally conducted to verify that a product meets a particular
regulatory requirement?
A. Unit Testing
B. Integration Testing
C. System Testing
D. Acceptance Testing
Quiz Time
• What type of testing is normally conducted to verify that a product meets a particular
regulatory requirement?
A. Unit Testing
B. Integration Testing
C. System Testing
D. Acceptance Testing
Quiz Time
• Use cases are a test basis for which level of testing?
A. Unit
B. System
D. Usability
Quiz Time
• Use cases are a test basis for which level of testing?
A. Unit
B. System
D. Usability
Test Types
Input Output
Black Box
• At the very least, the steps to reproduce the failure(s) caused by the defect must be re-
executed on the new software version.
• The purpose of a confirmation test is to confirm whether the original defect has been
successfully fixed
Regression Testing
• It is possible to perform any of the test types mentioned above at any test level.
• Functional testing at component level -> testing that the code performs its function
• Non-functional testing at component level -> testing how many cycles does the code
use to work
• Functional testing at acceptance level -> testing that users can login successfully to the
website
• Non-functional testing at acceptance level -> gathering users opinions abut the
usability of the application
Quiz Time
• Which one of the following is TRUE?
A. The purpose of regression testing is to check if the correction has been successfully implemented, while the
purpose of confirmation testing is to confirm that the correction has no side effects
B. The purpose of regression testing is to detect unintended side effects, while the purpose of confirmation
testing is to check if the system is still working in a new environment
C. The purpose of regression testing is to detect unintended side effects, while the purpose of confirmation
testing is to check if the original defect has been fixed
D. The purpose of regression testing is to check if the new functionality is working, while the purpose of
confirmation testing is to check if the originally defect has been fixed.
Quiz Time
• Which one of the following is TRUE?
A. The purpose of regression testing is to check if the correction has been successfully implemented, while the
purpose of confirmation testing is to confirm that the correction has no side effects
B. The purpose of regression testing is to detect unintended side effects, while the purpose of confirmation
testing is to check if the system is still working in a new environment
C. The purpose of regression testing is to detect unintended side effects, while the purpose of confirmation
testing is to check if the original defect has been fixed
D. The purpose of regression testing is to check if the new functionality is working, while the purpose of
confirmation testing is to check if the originally defect has been fixed.
Quiz Time
• Which of the following is most correct regarding the test level at
which functional tests may be executed?
A. Functional
B. Non-functional
C. Structural
D. Change-related
Quiz Time
• Usability testing is an example of which type of testing?
A. Functional
B. Non-functional
C. Structural
D. Change-related
Quiz Time
• You have been receiving daily builds from the developers. Even though they are documenting
the fixes they are including in each build, you are finding that the fixes either aren’t in the
build or are not working. What type of testing is best suited for finding these issues?
A. Unit Testing
B. System Testing
C. Confirmation Testing
D. Regression Testing
Quiz Time
• You have been receiving daily builds from the developers. Even though they are documenting
the fixes they are including in each build, you are finding that the fixes either aren’t in the
build or are not working. What type of testing is best suited for finding these issues?
A. Unit Testing
B. System Testing
C. Confirmation Testing
D. Regression Testing
Quiz Time
• During which level of testing should non-functional tests be
executed?
• Maintenance testing focuses on testing the changes to the system, as well as testing
unchanged parts that might have been affected by the changes.
• Maintenance can involve planned releases and unplanned releases (hot fixes)
Triggers for Maintenance
Modification
Migration
Retirement
Impact Analysis
• Impact analysis evaluates the changes that were
made for a maintenance release to identify the
intended consequences