Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 22

1

Software Testing
Presented by: Group H
Subject: Software Engineering
Presented to: Mr. Bilal Janjua

2
Members

M.
Muhamma Usama Sheharyar Ghulam
Abdullah
d Taha Zafar Tariq Butt Murtaza
Hashmi
(20021519- (20021519- (20021519- (20021519-
(20021519-
012) 092) 108) 128)
016)

3
Table of Content
• Introduction to Software Testing ……….……………………………………..1
• Development testing..…………………………………………………………….2
• Unit testing……………………………………………………………………………3
• Choosing unit test cases……………………………………………….……....…4
• Component testing……………………………………………….……………..…5
• System testing……………………………………………………………………….6

4
Introduction to Software Testing
• Software Testing is a method to check whether the actual software product matches
expected requirements and to ensure that software product is Defect free.
• The purpose of software testing is to identify errors, gaps or missing requirements in
contrast to actual requirements.
• The responsibility of testing is to point out the issues of bugs and give Dev (Developers) a
clue to help them fix it right following the requirements.

5
Software Testing Objectives
• Uncover as many as errors (or bugs) as possible in a given product.
• Demonstrate a given software product matching its requirement specifications.
• Validate the quality of a software using the minimum cost and efforts.
• Generate high-quality test cases, perform effective tests, and issue correct and helpful
problem reports.

6
Software Testing Division

• Software testing is often divided into 2 main processes:


• Verification in software testing is the process when your team just need to check
whether the software, system or framework consistent, aligned with the requirements
of a documentation. It is done by Developers.
• Validation is the process that your team needs to verify the accuracy of the system. In
this process, you will look back to the product, system and think about what users
actually want and what has been done. It is done by Testers.

7
Development Testing
• Development testing (DevTest) is an approach in software development that aims to
bring the development and testing phases closer together.
• In DevTest code that is being written and checked in is automatically tested. In this way,
problems can be more quickly discovered and addressed.

8
Benefits of Development Testing
Using a DevTest software development methodology can deliver numerous benefits.
The most significant benefits are:

Higher code quality at any given time because new code is continually being tested.
Shortened time to market for new features.

9
Why is DevTest important?
DevTest is important because:

It enables higher levels of efficiency in the software development life cycle (SDLC)
It helps to reduce the effect of software errors
It speed the delivery of new features and bug fixes to customers.

10
Unit Testing
• Unit Testing is a type of software testing where
individual units or components of a software are
tested.
• The purpose is to validate that each unit of the
software code performs as expected.
• Unit Testing is done during the development
(coding phase) of an application by the developers.
• Unit Tests isolate a section of code and verify its
correctness.
• A unit may be an individual function, method,
procedure, module, or object.
11
Unit Testing Advantages
• Unit testing allows the programmer to refactor code at a later date, and make sure the
module still works correctly .
• The procedure is to write test cases for all functions and methods so that whenever a
change causes a fault, it can be quickly identified and fixed.
• Due to the modular nature of the unit testing, we can test parts of the project without
waiting for others to be completed.

12
Unit Testing Disadvantages
• Unit testing can’t be expected to catch every error in a program.
• Unit testing by its very nature focuses on a unit of code. Hence it can’t catch integration
errors or broad system level errors.

Note:
• Don't Try to Minimize the Number of Test Cases.
• Write Code From Top to Bottom.

13
Component Testing
• Component testing is a sub-category of software testing in which each individual
component of the software is separately tested without integrating with other
components. It is also known as module testing, when viewed from an architecture
perspective.
• Unit testing is generally done by developers, while component testing is done by
testers. Component testing is done after unit testing is completely performed by the
developing team. This build is known as UT (Unit Testing) build. In this phase, the testers
test all the major functionalities of the software components.

14
Objectives of Component Testing
• The primary objective of performing component testing is to check whether the
input/output behavior of the test object or component is working as expected.
Component testing ensures that the functionality of the component is working properly
and as specified.
 To reduce risks.
 Discover bugs in the component.
 Validate the functional as well as non-functional performance of the component.
 To improve quality of the component.
 To prevent bugs from escaping to higher testing levels.
15
Objectives of Component Testing
• The primary objective of performing component testing is to check whether the
input/output behavior of the test object or component is working as expected.
Component testing ensures that the functionality of the component is working properly
and as specified.
 To reduce risks.
 Discover bugs in the component.
 Validate the functional as well as non-functional performance of the component.
 To improve quality of the component.
 To prevent bugs from escaping to higher testing levels.
16
Unit Testing vs Component Testing
Unit Testing Component Testing
• Testing of individual programs, modules • Testing of each object or component of
to verify that they execute as per the the software individually with or without
specifications isolating other components

• Validates design documents • Validates test requirements, and use


cases

• Performed by developers • Performed by testers

• It is performed first • It is performed after the completion of


unit testing

17
Why Component Testing is Important?

• Detailed evaluation − Component testing of each individual component enables the


detailed evaluation after all the components have been acquired.
• Early Bug Identification − Component testing can be executed at any stage, so we can
identify and fix bug sooner.
• Certified Contract − Component testing helps us certify the contract; component testing
is reliable.

18
System Testing
System Testing is a level of testing that
validates the complete and fully integrated
software product. The purpose of a system test
is to evaluate the end-to-end system
specifications. Usually, the software is only one
element of a larger computer-based system.
Ultimately, the software is interfaced with
other software/hardware systems. System
Testing is actually a series of different tests
whose sole purpose is to exercise the full
computer-based system.
19
Advantages of System Testing

• The testers do not require more knowledge of programming to carry out this testing.
• It will test the entire product or software so that we will easily detect the errors or defects
which cannot be identified during the unit testing and integration testing.
• It checks the entire functionality of the system with different test scripts and also it covers
the technical and business requirements of clients.
• After this testing, the product will almost cover all the possible bugs or errors and hence
the development team will confidently go ahead with acceptance testing.

20
Disadvantages of System Testing

• This testing is time consuming process than another testing techniques since it checks the
entire product or software.
• The cost for the testing will be high since it covers the testing of entire software.
• It needs good debugging tool otherwise the hidden errors will not be found.

21
22

You might also like