0% found this document useful (0 votes)
9 views

15- Software Development

Chapter 15 covers the software development life cycle, detailing stages such as analysis, design, coding, testing, and maintenance. It discusses various software development models including the Waterfall, Iterative, and Rapid Application Development (RAD) models, highlighting their advantages and disadvantages. Additionally, the chapter introduces structure charts and state-transition diagrams as tools for program design.

Uploaded by

Ayesha Nadeem
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

15- Software Development

Chapter 15 covers the software development life cycle, detailing stages such as analysis, design, coding, testing, and maintenance. It discusses various software development models including the Waterfall, Iterative, and Rapid Application Development (RAD) models, highlighting their advantages and disadvantages. Additionally, the chapter introduces structure charts and state-transition diagrams as tools for program design.

Uploaded by

Ayesha Nadeem
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 89

Chapter 15

Software
Development

A LEVEL COMPUTER SCIENCE


Prepared and taught by Awab Aqib
15.1 15.2 15.3
Program Program Program 15.4
Development design using design using
Life Cycle structure state- Types of
chart transition error
diagrams

15.5
Testing
methods

Chapter 15.6

Outline
Test strategy,
test plan, test
data

15.7 15.8 15.9


Corrective Adaptive Perfective
maintenance maintenance maintenance

By Awab Aqib cswithawab


15.1 Stages in the program development life By Awab Aqib
cycle

Program Development Life Cycle

Analysis
Requirements specification - Outlines the
functional, technical, and operational
criteria that the software must meet,
serving as a blueprint to guide the
development process.

Plan a solution. Decide whether to use


• A bottom up approach - Building from
individual components to create a
whole system.
• A top down approach - Breaking down
a system by starting with its overview.
15.1 Stages in the program development life By Awab Aqib
cycle

Program Development Life Cycle

Analysis Design
Requirements specification - Outlines the Plan the algorithm - Decide
functional, technical, and operational on what identifiers are
criteria that the software must meet, needed, what data structure
serving as a blueprint to guide the needs to be used.
development process.
Plan the algorithm using a
Plan a solution. Decide whether to use flowchart or pseudocode.
• A bottom up approach - Building from
individual components to create a
whole system.
• A top down approach - Breaking down
a system by starting with its overview.
15.1 Stages in the program development life By Awab Aqib
cycle

Program Development Life Cycle

Analysis Design Coding


Requirements specification - Outlines the Plan the algorithm - Decide Choose a programming
functional, technical, and operational on what identifiers are language - Pick one that is
criteria that the software must meet, needed, what data structure the most suitable for the
serving as a blueprint to guide the needs to be used. solution you propose.
development process.
Plan the algorithm using a Might encounter bugs, that
Plan a solution. Decide whether to use flowchart or pseudocode. is when debugging comes
• A bottom up approach - Building from in.
individual components to create a
whole system. Check at the end whether
• A top down approach - Breaking down the code does what it
a system by starting with its overview. intends to do.
15.1 Stages in the program development life By Awab Aqib
cycle

Program Development Life Cycle

Analysis Design Coding Testing

Requirements specification - Outlines the Plan the algorithm - Decide Choose a programming Testing - systematic
functional, technical, and operational on what identifiers are language - Pick one that is process of evaluating
criteria that the software must meet, needed, what data structure the most suitable for the software to ensure it
serving as a blueprint to guide the needs to be used. solution you propose. meets specified
development process. requirements and
Plan the algorithm using a Might encounter bugs, that functions correctly.
Plan a solution. Decide whether to use flowchart or pseudocode. is when debugging comes
• A bottom up approach - Building from in.
individual components to create a
whole system. Check at the end whether
• A top down approach - Breaking down the code does what it
a system by starting with its overview. intends to do.
15.1 Stages in the program development life
cycle

Program Development Life Cycle

Analysis

Maintenance Design

Testing Coding

By Awab Aqib cswithawab


15.1 Stages in the program development life
cycle

Software Development Models

Rapid
Waterfall Iterative
Application
model Model
Development

By Awab Aqib cswithawab


15.1 Stages in the program development life By Awab Aqib
cycle

The waterfall model is a linear and sequential software development approach where
Waterfall model progress flows downwards through distinct phases, each dependent on the completion of
the previous phase.

Analysis

Design

Arrow down: The result from one stage are input


Coding into the next stage.

Testing Arrow up: More work is required at an earlier


stage to complete the current stage.
Maintenance
15.1 Stages in the program development life
cycle

Analysis

Design

Waterfall model
Coding

Testing

Maintenance

Advantages Disadvantages

No working software is produced until late during


Stages are processed and completed one at a time.
the life cycle.

Works well for smaller projects where


Poor model for long and ongoing projects.
requirements are well understood.

Simple to understand as the stages are clearly


Cannot accomodate changing requirement.
defined.

Not a good model for complex and object-


oritented projects.

By Awab Aqib cswithawab


15.1 Stages in the program development life
cycle

Iterative model The iterative model is a software development approach that cycles
through repeated phases, allowing for flexible adjustments and
improvements throughout the development process.

Starts with the


Find out the
implementation of requirements
a small subset of through the
process
the program
requirements.

By Awab Aqib cswithawab


15.1 Stages in the program development life By Awab Aqib
cycle

Iterative model

Advantages

At an initial phase of development, a functional system prototype


Early in the life cycle, certain functional aspects can be rapidly
exists, enabling easier detection of functional or design flaws,
developed and made operational.
leading to swift corrective actions due to early issue identification.

Cost-effectiveness in altering scope/requirements. Simpler testing and debugging of smaller program subsets.

Continuous delivery of operational products with each increment. Leveraging lessons from each increment for subsequent ones.

Facilitating customer evaluation and feedback by producing


Identifying and resolving risks iteratively.
software early in the life cycle.
15.1 Stages in the program development life
cycle

Iterative model

Disadvantages

Hard to be used in developing small software systems due to difficulty in breaking them into
manageable modules.

Potential need for increased resources.

Design challenges stemming from incomplete initial requirement gathering.

Difficulty in defining increments, possibly requiring a full system definition.

By Awab Aqib cswithawab


15.1 Stages in the program development life
cycle

Rapid Application Development model


The Rapid Application Development (RAD) model is an iterative
software development approach emphasizing quick prototyping and
iteration cycles for rapid system development.

By Awab Aqib cswithawab


15.1 Stages in the program development life
cycle

Rapid Application Development model

Advantages

Enhanced productivity within a concise timeframe with


Assessable progress.
reduced personnel.

Diminished development duration and amplified


Prompt initial assessments.
component reusability.

Stimulates customer input. Early integration resolves integration complexities.

By Awab Aqib cswithawab


15.1 Stages in the program development life
cycle

Rapid Application Development model

Disadvantages

Only systems that can be modularised can be built using Requires highly skilled developers / designers.
RAD.

Applicability to component-based and scalable systems. User involvement is required.

Suitable for projects requiring shorter development times.

By Awab Aqib cswithawab


Subtopic
15.2 Structure
1 chart

Definition
A structure chart is a visual representation outlining the hierarchical structure and
relationships between modules or components in a software system.

Eg: A program that calculates the sum of


two numbers input by the user.

Sum

sum
INPUT numbers OUTPUT Sum
Calculate Sum

By Awab Aqib cswithawab


Subtopic
15.2 Structure
1 chart

Terminology

Eg: A program that calculates the sum of


two numbers input by the user.

Sum

Interface

sum
Module INPUT numbers OUTPUT Sum
Calculate Sum

By Awab Aqib cswithawab


Subtopic
15.2 Structure
1 chart

Example - Conditionals
Eg: A program that checks whether a customer is eligible for discount

Discount Determiner

UserPurchaseAmount
Initialise OUTPUT message
MinAmountForDiscount Input
UserPurchaseAmount

UserPurchaseAmount >
MinAmountForDiscount

OUTPUT You got a discount OUTPUT No discount sorry


By Awab Aqib
Subtopic
15.2 Structure
1 chart

Example - Iterations
Eg: A program that generates numbers from 1 square to N square.

N Square Generator
UNTIL Count > N

Count

Count
OUTPUT N 2

2
Square it
Increment Count

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

Finite State Machine (FSM)


A finite state machine in a computer system is a computational model characterised by a set of
states, transitions between these states based on input, and defined outputs associated with
each state transition.

State Transition State Transition


Table Diagram

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

Finite State Machine (FSM)

State Transition Table State Transition Diagram

Current State a

S1 S2
start
S1
a S1
Input
b

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

Finite State Machine (FSM)

State Transition Table State Transition Diagram

Current State
b

S1 S2
start
S1 S2
a S1
Input
b S2

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

Finite State Machine (FSM)

State Transition Table State Transition Diagram

Current State
b

S1 S2
start
S1 S2
a S1
Input
b S2 S2

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

Finite State Machine (FSM)

State Transition Table State Transition Diagram

Current State
b

S1 S2
start
S1 S2
a S1 S1
Input
a
b S2 S2

By Awab Aqib cswithawab


15.3 Program design using state- By Awab Aqib
transition diagrams

Finite State Machine (FSM)

State Transition Table State Transition Diagram

Current State
b

S1 S2
start
S1 S2
a S1 S1
Input a
b S2 S2

Notes: If the FSM has a final state (halting state), this is shown by a double-circle state.
15.3 Program design using state- By Awab Aqib
transition diagrams

Finite State Machine (FSM)

State Transition Table State Transition Diagram

Current State
b|x

S1 S2
start
S1 S2
a S1 S1
Input
a|z
b S2 S2

Notes: If an input causes an output this is shown by a vertical bar.


A Finate State machine with outputs is also known as a Mealy Machine.
15.3 Program design using state-
transition diagrams

Worked Example
Design a state-transition diagram for a simplified elevator control system in a building. The
elevator operates in four distinct states: Idle on Ground Floor, Moving Up, Moving Down, and
Stopped at a Floor.

State transitions occur based on specific criteria: from "Idle on Ground Floor" to "Moving Up" or
"Moving Down" upon receiving corresponding directional commands; from "Moving Up" or "Moving
Down" to "Stopped at a Floor" when reaching a floor; from "Stopped at a Floor" to either "Moving Up,"
"Moving Down," or "Idle on Ground Floor" based on received directional commands or absence of
pending commands for two minutes respectively. Illustrate these states and transitions in a labeled
state-transition diagram.

By Awab Aqib
15.3 Program design using state-
transition diagrams

Worked Example
Design a state-transition diagram for a simplified elevator control system in a building. The
elevator operates in four distinct states: Idle on Ground Floor, Moving Up, Moving Down, and
Stopped at a Floor.

State

Idle on Ground Floor

Moving Up

Moving Down

Stopped at a Floor

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

Worked Example State Transition Table


State transitions occur based on specific criteria: State Event Next State

• from "Idle on Ground Floor" to "Moving Up" or "Moving


Down" upon receiving corresponding directional
commands;
• from "Moving Up" or "Moving Down" to "Stopped at a Floor"
when reaching a floor;
• from "Stopped at a Floor" to either "Moving Up," "Moving
Down," or "Idle on Ground Floor" based on received
directional commands or absence of pending commands
for two minutes respectively.

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

Worked Example State Transition Table


State transitions occur based on specific criteria:
State Event Next State

• from "Idle on Ground Floor" to "Moving Up" or "Moving Idle on Ground Floor Up Button Press Moving Up
Down" upon receiving corresponding directional
commands; Idle on Ground Floor Down Button Press Moving Down
• from "Moving Up" or "Moving Down" to "Stopped at a Floor"
when reaching a floor;
• from "Stopped at a Floor" to either "Moving Up," "Moving
Down," or "Idle on Ground Floor" based on received
directional commands or absence of pending commands
for two minutes respectively.

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

Worked Example State Transition Table


State transitions occur based on specific criteria:
State Event Next State

• from "Idle on Ground Floor" to "Moving Up" or "Moving Idle on Ground Floor Up Button Press Moving Up
Down" upon receiving corresponding directional
commands; Idle on Ground Floor Down Button Press Moving Down
• from "Moving Up" or "Moving Down" to "Stopped at a Floor"
when reaching a floor; Moving Up Reach a floor Stopped at a Floor
• from "Stopped at a Floor" to either "Moving Up," "Moving
Down," or "Idle on Ground Floor" based on received Moving Down Reach a floor Stopped at a Floor
directional commands or absence of pending
commands for two minutes respectively. Stopped at a Floor Up Button Press Moving Up

Stopped at a Floor Down Button Press Moving Down

Stopped at a Floor Idle for two minutes Idle on Ground Floor

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

Worked Example Up button press

Idle on
State Transition Table
Ground Moving Up
State Event Next State
Floor

Down button press

Reach a floor
Idle on Up Button
Moving Up
Ground Floor Press

Up Button
Idle on Down Button
Moving Down
Ground Floor Press

Press
Stopped at a
Moving Up Reach a floor
Floor

Stopped at a
Moving Down Reach a floor
Floor
Down Button
Stopped at a Up Button
Floor Press
Moving Up Moving Press Stopped at
Stopped at a Down Button
Moving Down
Down a Floor
Floor Press

Stopped at a Idle for two Idle on


Floor minutes Ground Floor
Reach a floor

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

Worked Example
Design a state-transition diagram for a two’s complement FSM.

A finite state machine has been designed that will take as input a positive binary integer, one bit at a
time, starting with the least significant bit. The FSM converts the binary integer into the two's
complement negative equivalent.

The method to be used is as follows.


• Output the bits input up to and including the first 1.
• Output the other bits following this scheme:
⚬ For each 1, output a 0.
⚬ For each 0, output a 1.
15.3 Program design using state-
transition diagrams

What does it mean?


A finite state machine has been designed that will take as input a positive binary integer, one bit at a
time, starting with the least significant bit. The FSM converts the binary integer into the two's
complement negative equivalent.

5 (binary equivalence) -5 (two’s complement)

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

What does it mean?


The method to be used is as follows.
• Output the bits input up to and including the first 1.
• Output the other bits following this scheme:
⚬ For each 1, output a 0.
⚬ For each 0, output a 1.
Eg. Input = 010100 (20 in denary)

Input: Output:

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

What does it mean?


The method to be used is as follows.
• Output the bits input up to and including the first 1.
• Output the other bits following this scheme:
⚬ For each 1, output a 0.
⚬ For each 0, output a 1.
Eg. Input = 010100 (20 in denary)

Input: Output:

0 0

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

What does it mean?


The method to be used is as follows.
• Output the bits input up to and including the first 1.
• Output the other bits following this scheme:
⚬ For each 1, output a 0.
⚬ For each 0, output a 1.
Eg. Input = 010100 (20 in denary)

Input: Output:

0 0 0 0

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

What does it mean?


The method to be used is as follows.
• Output the bits input up to and including the first 1.
• Output the other bits following this scheme:
⚬ For each 1, output a 0.
⚬ For each 0, output a 1.
Eg. Input = 010100 (20 in denary)

Input: Output:

1 0 0 1 0 0

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

What does it mean?


The method to be used is as follows.
• Output the bits input up to and including the first 1.
• Output the other bits following this scheme:
⚬ For each 1, output a 0.
⚬ For each 0, output a 1.
Eg. Input = 010100 (20 in denary)

Input: Output:

0 1 0 0 1 1 0 0

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

What does it mean?


The method to be used is as follows.
• Output the bits input up to and including the first 1.
• Output the other bits following this scheme:
⚬ For each 1, output a 0.
⚬ For each 0, output a 1.
Eg. Input = 010100 (20 in denary)

Input: Output:

1 0 1 0 0 0 1 1 0 0

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

What does it mean?


The method to be used is as follows.
• Output the bits input up to and including the first 1.
• Output the other bits following this scheme:
⚬ For each 1, output a 0.
⚬ For each 0, output a 1.
Eg. Input = 010100 (20 in denary)

Input: Output:

0 1 0 1 0 0 1 0 1 1 0 0

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

What does it mean?


The method to be used is as follows.
• Output the bits input up to and including the first 1.
• Output the other bits following this scheme:
⚬ For each 1, output a 0.
⚬ For each 0, output a 1.
Eg. Input = 010100 (20 in denary)

Input: Output:
-32 16 8 4 2 1

0 1 0 1 0 0 1 0 1 1 0 0

20 -20 in two’s complement


By Awab Aqib cswithawab
15.3 Program design using state-
transition diagrams

State Transition Table

Current State S1 S1 S2 S2

Input Bit 0 1 0 1

Next State S1 S2 S2 S2

Output Bit 0 1 1 0

By Awab Aqib cswithawab


15.3 Program design using state-
transition diagrams

State Transition Diagram

1|1

start
S1 S2

By Awab Aqib cswithawab


15.4 Types of Error

Why errors occur?


• Improper syntax or logic in the code leads to unexpected behaviour or crashes.
• Implementing features that do not align with the actual needs of users or stakeholders
causes functionality issues.
• Flaws in the architecture or logic of the software lead to bugs or unexpected outcomes.
• Confusing or unintuitive interfaces cause user frustration and errors in operation.
• Malfunctioning hardware components, such as memory issues or disk failures, disrupt
software execution and may lead to crashes or data corruption.

By Awab Aqib cswithawab


15.4 Types of Error

Testing - Find an error


The purpose of testing is to ensure software functions correctly, meeting requirements,
identifying defects, and assuring its quality before deployment.

By Awab Aqib cswithawab


15.4 Types of Error

Syntax Error
A syntax error occurs in programming when the code violates the language's rules or grammar,
preventing proper interpretation or execution by the compiler or interpreter.

Compiler Interpreter
If a program compiles without Syntax checking occurs only on
errors, it indicates the absence statements scheduled for
of syntax errors in the code. execution; hence, an
insufficiently tested program
might still contain undetected
syntax errors.

By Awab Aqib cswithawab


15.4 Types of Error

Logic Error
A logic error in programming refers to a flaw in the code's algorithm or logic, causing unexpected
or incorrect outputs. Eg.

By Awab Aqib cswithawab


15.4 Types of Error

Run-time Error
A run-time error occurs during program execution due to unforeseen conditions, causing the
program to terminate abnormally.

By Awab Aqib cswithawab


15.5 Testing Methods

Stub
Testing

By Awab Aqib cswithawab


15.5 Testing Methods

Stub Testing
Stub testing involves creating
minimal code pieces (stubs)
that mimic functionalities of
larger modules or components
to enable initial testing or
simulation of interactions
within a system.

By Awab Aqib
15.5 Testing Methods

Black
Box
Testing

By Awab Aqib cswithawab


15.5 Testing Methods

Black Box Testing


Black box testing is a software testing method where the internal workings or structure of the
system under test are not known to the tester, focusing solely on the system's inputs,
outputs, and functionality to evaluate its behaviour against specifications or requirements.

By Awab Aqib cswithawab


15.5 Testing Methods

Black Box Testing


During black-box testing, the program tester evaluates the software's functionality by
providing test data based on the program specification without having access to the internal
code, examining outputs against expected results.

By Awab Aqib cswithawab


15.5 Testing Methods

Black Box Testing


Type of data: Testers employ normal data to validate standard functioning, extreme and
boundary data to assess system behaviour at limits, and erroneous data to evaluate how the
system handles incorrect or unexpected inputs during black-box testing.

By Awab Aqib cswithawab


15.5 Testing Methods

White
Box
Testing

By Awab Aqib cswithawab


15.5 Testing Methods

White Box Testing


White box testing is a software testing technique where the internal structure, design, and
implementation details of the system under test are known to the tester, allowing for the
examination and validation of internal code paths and logic.

By Awab Aqib cswithawab


15.5 Testing Methods

White Box Testing


For example, the following function will find the maximum number in a list. To make sure that
it does its job correctly, we need to test the program using different sets of input.

By Awab Aqib cswithawab


15.5 Testing Methods

Dry running
an
algorithm

By Awab Aqib cswithawab


15.5 Testing Methods

Dry-running an algorithm
Dry running an algorithm involves manually executing the algorithm step-by-step using a trace
table with varying test data to simulate its behaviour and understand how it processes inputs,
executes instructions, and produces outputs without actually running the code on a computer.

Trace Table

By Awab Aqib cswithawab


15.5 Testing Methods

Trace Table (Initialisation)

Pseudocode RunningTotal Counter NextNumber Average Output

Inputs: 4,5,1,3,100

By Awab Aqib
15.5 Testing Methods

Trace Table (Iteration 1)

Pseudocode RunningTotal Counter NextNumber Average Output

1 4

Inputs: 4,5,1,3,100

By Awab Aqib
15.5 Testing Methods

Trace Table (Iteration 1)

Pseudocode RunningTotal Counter NextNumber Average Output

4 1 4

Inputs: 4,5,1,3,100

By Awab Aqib
15.5 Testing Methods

Trace Table (Iteration 2)

Pseudocode RunningTotal Counter NextNumber Average Output

4 1 4

2 5

Inputs: 4,5,1,3,100

By Awab Aqib
15.5 Testing Methods

Trace Table (Iteration 2)

Pseudocode RunningTotal Counter NextNumber Average Output

4 1 4

9 2 5

Inputs: 4,5,1,3,100

By Awab Aqib
15.5 Testing Methods

Trace Table (Iteration 3)

Pseudocode RunningTotal Counter NextNumber Average Output

4 1 4

9 2 5

3 1

Inputs: 4,5,1,3,100

By Awab Aqib
15.5 Testing Methods

Trace Table (Iteration 3)

Pseudocode RunningTotal Counter NextNumber Average Output

4 1 4

9 2 5

10 3 1

Inputs: 4,5,1,3,100

By Awab Aqib
15.5 Testing Methods

Trace Table (Iteration 4)

Pseudocode RunningTotal Counter NextNumber Average Output

4 1 4

9 2 5

10 3 1

Inputs: 4,5,1,3,100 4 3

By Awab Aqib
15.5 Testing Methods

Trace Table (Iteration 4)

Pseudocode RunningTotal Counter NextNumber Average Output

4 1 4

9 2 5

10 3 1

Inputs: 4,5,1,3,100 13 4 3

By Awab Aqib
15.5 Testing Methods

Trace Table (Iteration 5)

Pseudocode RunningTotal Counter NextNumber Average Output

4 1 4

9 2 5

10 3 1

Inputs: 4,5,1,3,100 13 4 3

5 100

By Awab Aqib
15.5 Testing Methods

Trace Table (Iteration 5)

Pseudocode RunningTotal Counter NextNumber Average Output

4 1 4

9 2 5

10 3 1

Inputs: 4,5,1,3,100 13 4 3

113 5 100

By Awab Aqib
15.5 Testing Methods
Trace Table
RunningTotal Counter NextNumber Average Output

Pseudocode 0

4 1 4

9 2 5

10 3 1

13 4 3

113 5 100

Inputs: 4,5,1,3,100
22.6 113

22.6

By Awab Aqib
15.5 Testing Methods

Integration
Testing

By Awab Aqib cswithawab


15.5 Testing Methods

Integration Testing
Integration testing is the process of testing combined modules or components to ensure they
work together as expected within the entire software system.

Incremental integration testing involves gradually integrating and testing new modules with
existing components, ensuring seamless functionality as they're added to the system.

By Awab Aqib cswithawab


15.5 Testing Methods

Alpha
Testing

By Awab Aqib cswithawab


15.5 Testing Methods

Alpha Testing
Alpha testing is the initial testing phase conducted by internal teams or users within the
developing organization to assess a software product's functionality, usability, and
performance before wider release.

By Awab Aqib cswithawab


15.5 Testing Methods

Beta
Testing

By Awab Aqib cswithawab


15.5 Testing Methods

Beta Testing
Beta testing is a software testing phase
conducted by a select group of external
users who assess the software's
performance, usability, and functionality
in a real-world environment before its
official release to the public.

Beta testing gathers user feedback pre-


release, aiding in issue identification and
improvement, with users providing
feedback via established communication
channels.

By Awab Aqib cswithawab


15.5 Testing Methods

Acceptance
Testing

By Awab Aqib cswithawab


15.5 Testing Methods

Acceptance Testing
Acceptance testing involves customers or end-users verifying if the software meets their specified
requirements and is ready for use or deployment.

By Awab Aqib cswithawab


Subtopic
15.6 1 test plans and test data
Test Strategy,

Importance of a test strategy


A test strategy and test plan provide a structured roadmap, outlining the goals, scope, methods,
and resources for testing software, ensuring systematic and efficient quality assurance,
defect detection, and software reliability before release.

By Awab Aqib cswithawab


Subtopic
15.6 1 test plans and test data
Test Strategy,

How does a plan look like?

• Ensures the expected sequence of operations within the


software.
• Verifies that provided data meets specified criteria.
• Validates accuracy of loop iterations and decision-making
processes.
• Ensures data is accurately stored in the intended locations.
• Validates the accuracy of the system's output or outcomes.

By Awab Aqib cswithawab


Subtopic
15.6 1 test plans and test data
Test Strategy,

Ways to carry out these tests - Data


Test data is chosen with a view of testing different possibilities. The followings are the types of
data:

Boundary
Normal Data Abnormal Data
(extreme) Data
Represents typical or Consists of input Involves input values
expected input values that fall at the edges or
values within the outside the usual extremes of valid
standard operational operational ranges, aiming to
range for a system. parameters or test system behavior
deviate from at the limits of its
expected patterns. functionality.

By Awab Aqib cswithawab


Subtopic
15.6 1 test plans and test data
Test Strategy,

Examples
A program has been written to obtain a number input from the users. The input must be from 1
to 100, and it must be an integer.

Boundary
Normal Data Abnormal Data
(extreme) Data
25 -5 1( )|0( )

39 120 100 ( ) | 101( )

99 3.5

By Awab Aqib cswithawab


Subtopic
15.6 1 test plans and test data
Test Strategy,

Ways to prevent errors


• Understanding the requirement better helps prevent software errors by ensuring accurate
alignment with user needs.
• Employing tried and tested design techniques like structured programming and object-
oriented design reduces errors and enhances software reliability.
• Utilising conventions such as identifier tables, data structures, and standard algorithms
promotes consistency and minimises errors in software development.
• Integrating tried and tested modules or objects from program libraries enhances reliability
and diminishes errors through validated and established components.

By Awab Aqib cswithawab


15.7 Corrective
Maintenance

Definition
Corrective maintenance involves addressing and fixing software faults or defects identified after
deployment to restore the system's intended functionality.

Program errors may remain undetected for an extended period as they might occur infrequently,
leading to unexpected outcomes or program crashes only under rare conditions.

By Awab Aqib cswithawab


15.8 Adaptive Maintenance

Definition
Adaptive maintenance adjusts program functionality in response to specification changes or
evolving requirements.

Example: How the Instagram/Facebook evolves to have similar functions like snapchat.

By Awab Aqib
15.9 Perfective Maintenance

Definition
Enhances and improves software by implementing additional features or optimising existing
functionalities to meet evolving user needs and expectations.

Example: YouTube introduces a feature that allows users to create and watch short-form
vertical videos, typically up to 60 seconds in length, making the app similar to platforms like
TikTok and Instagram Reels.

By Awab Aqib cswithawab

You might also like