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

INFO 304 Software Testing Introduction

Uploaded by

Brice Kouam
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

INFO 304 Software Testing Introduction

Uploaded by

Brice Kouam
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

INFO 304: Software Testing

Introduction

Dr. KIMBI Xaveria.Youh


Senoir Lecturer, University of Yaounde I
Course Objectives
Understanding Software Testing Fundamentals

Gain a comprehensive understanding of what


software testing is, its significance in the software
development lifecycle, and its role in ensuring
software quality.

1
Course Overview
Introduction

Software Testing Process

What is Software Testing

Why Should We Test?

Basic Terminology Related to


Software Testing

Summary

2
Introduction

3
The importance of Software Testing

Testing Phase

Software testing is a crucial part of the software development process. It is the


process of evaluating a software system or application to find defects, errors, or bugs,
and verifying that it meets its intended requirements and functions correctly.
4
The importance of Software Testing
Software testing is essential because it
ensures that the software performs as
expected, meets user needs, and is reliable
and efficient.

Testing is not a one-time event, but rather a continuous process that begins in the
early stages of development and continues through the software’s life cycle.

5
Important Concepts Refresher

6
Important Concepts Refresher
Functional and non-functional requirements

In computer science the software requirements are the descriptions


of what the system should do and/or not do, and the constraints
on how it work. There are two types

Functional
Requirements
Non-Functional
Requirements

7
Important Concepts Refresher
Functional Requirements

In order to design software, you need to know


something about the goals that it needs to satisfy.
are the requirements that the end user specifically
demands as basic facilities that the system should
offer.

Examples
Authenticate the user when they log onto the system.
Registering the user through email.

8
Important Concepts Refresher
Quality Attributes (non-functional requirements)

are requirements which are not specifically concerned with the


functionality of a system. They place restrictions on the product
being developed and the development process, and they specify
external constraints that the product must meet
Performance is about how fast something is, usually in terms of response time or latency.
PERFORMANCE

Scalability is basically about the ability for your software to deal with more users, requests, data, messages, etc. Scalability is
inherently about concurrency, and therefore dealing with more of something in the same period of time (e.g. requests per
SCALABILITY
second).

Availability is about the degree to which your software is operational and, for example, available to service requests.
AVAILABILITY

9
Important Concepts Refresher
Functional vs Non-functional
Functional Non-Functional

Description of what the system Description of how the system


should do should work

Defines a system or its Defines the quality attribute of


component. software.

Helps you verify the Helps you to verify the


functionality of the software. performance of the software.

Specified by User or Customer. Specified by Software


developer .
10
Important Concepts Refresher
Functional vs Non-functional
Functional Non-Functional

Description of what the system Description of how the system


should do should work

Defines a system or its Defines the quality attribute of


component. software.

Helps you verify the Helps you to verify the


functionality of the software. performance of the software.

Specified by User or Customer. Specified by Software


developer .
11
Analysis Document

12
Important Concepts Refresher
Analysis Document

A software analysis document (SAD) is a formal


document that provides a detailed analysis of the
software being developed. it include
Functional and non-functional requirements
User and system interfaces
Methods and technologies used
Use cases and scenarios
Quality assurance and testing procedures

13
Design Document

14
Important Concepts Refresher
Design Document

A software design document (SDD) is a formal


document that outlines the technical details and
architecture of a software product
being developed.

Design document are similar to SAD, but are more


focused on the technicalities of how the software will
be designed and implemented.

15
Debugging

16
Debugging

17
Debugging

18
Debugging

19
Debugging

3
Debugging

3
Software Testing Process

16
Software Testing Process
Testing is different from debugging. Removing errors
from your programs is known as debugging but testing
aims to locate as yet undiscovered errors.

We test our programs with both valid and invalid


inputs and then compare our expected outputs as well
as the observed outputs (after execution of software).

Remark

Please note that testing starts from the requirements analysis


phase only and goes until the last maintenance phase
4
What is Software Testing?

19
Software testing
There are various definitions of testing that are given below:

“Testing is the process of exercising or evaluating a system or


system component by manual or automated means to verify that it
satisfies specified requirements.”
[IEEE 83a]

“Software testing is the process of executing a program or system


with the intent of finding errors.”
[Myers]

It involves any activity aimed at evaluating an attribute or


capability of a program or system and determining that it meets its
required results. [Hetzel]

17
Software testing
Testing is not:

The process of demonstrating that errors are not present.

The process of showing that a program performs its intended


functions correctly.

The process of establishing confidence that a program does


what it is supposed to do.

18
Why Should We Test?

3
Why should we test?
Testing is necessary. why:
The Technical Case:

1 Competent developers are not infallible.

2 The implications of requirements are not always foreseeable.

3 The behavior of a system is not necessarily predictable from its


components.

4 Languages, databases, user interfaces, and operating systems


have bugs that can cause application failures.

4
Why should we test?
Testing is necessary. why:

The Business Case:

1 If you don’t find bugs your customers or users will.

2 Post-release debugging is the most expensive form of development.

3 Buggy software hurts operations, sales, and reputation.

4
Why should we test?
Testing is necessary. why:

The Professional Case:

1 Test case design is a challenging and rewarding task.

2 Good testing allows confidence in your work.

3 Systematic testing allows you to be most effective.

4 Your credibility is increased and you have pride in your efforts

4
Why should we test?

Some key figures:

About 70% of development time was spent on testing phase,

30 to 50% of the total project budget was spent on the testing


phase only.

Software testing constitutes about 40% of overall effort.

4
Recent Software Failures

4
Recent Software Failures

4
Basic Terminology Related to Software Testing

3
Terminology: Error (or mistake or bugs):

Error (or mistake or bugs): People make errors. When


people make mistakes while coding, we call these mistakes
bugs. Errors tend to propagate. A requirements error may
be magnified during design and still amplified during coding.
So, an error is a mistake during SDLC.

3
Terminology: Fault (or defect):

Fault (or defect): A missing or incorrect statement in a program resulting from


an error is a fault. So, a fault is the representation of an error. Representation
here means the mode of expression, such as a narrative text, data flow
diagrams, hierarchy charts, etc. Defect is a good synonym for fault. Faults can
be elusive. They requires fixes.

3
Terminology

Failure: A failure occurs when a fault executes. The manifested


inability of a system or component to perform a required function
within specified limits is known as a failure. A failure is evidenced
by incorrect output, abnormal termination, or unmet time and
space constraints. It is a dynamic process

3
Terminology

Incident: When a failure occurs, it may or may not be readily


apparent to the user. An incident is the symptom associated with a
failure that alerts the user to the occurrence of a failure. It is an
unexpected occurrence that requires further investigation. It may
not need to be fixed.

3
Terminology

Test case : A test case has an identity and is associated with


program behavior. A test case also has a set of inputs and a list of
expected outputs. The essence of software testing is to determine a
set of test cases for the item to be tested. The test case template
is shown below.

3
NEXT : SDLC & STLC

You might also like