0% found this document useful (0 votes)
9 views32 pages

5 Testing Types

The document outlines the Software Development Life Cycle (SDLC) and Software Testing Life Cycle (STLC), detailing various testing levels such as Unit, Integration, System, and User Acceptance Testing. It categorizes testing types into Functional, Non-Functional, Structural, and Change-related Testing, emphasizing the importance of early test activities in the development process. Additionally, it discusses the roles of testers and developers in different testing phases and the significance of both manual and automated testing methods.

Uploaded by

hejawaw649
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 views32 pages

5 Testing Types

The document outlines the Software Development Life Cycle (SDLC) and Software Testing Life Cycle (STLC), detailing various testing levels such as Unit, Integration, System, and User Acceptance Testing. It categorizes testing types into Functional, Non-Functional, Structural, and Change-related Testing, emphasizing the importance of early test activities in the development process. Additionally, it discusses the roles of testers and developers in different testing phases and the significance of both manual and automated testing methods.

Uploaded by

hejawaw649
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/ 32

Testing Types

Today’s Agenda

● Software Development Life Cycle (SDLC) and Software Testing Life Cycle (STLC)
● Test Levels
○ Unit/Component Testing
○ Integration Testing
○ System Testing
○ User Acceptance Testing
● Test Types
○ Functional
○ Non-Functional
○ White box / Structural
○ Changes related
● Test Types and Test Levels
SDLC and STLC
SDLC and STLC

I need to be familiar with SDLC?


Yes, so appropriate test activities can take place:

● For every dev activity, there’s a test activity.

● Testers participate in discussions to define and refine


requirements and design.

● No matter what SDLC is chosen, test activities should start early.


SDLC and STLC

● SDLC categories: Sequential and iterative / incremental

○ Sequential -> Waterfall model

System
Analysis Design Code Testing Maintenance
Engineering
SDLC and STLC

● SDLC categories: Sequential and iterative / incremental

○ Sequential -> V Model


SDLC and STLC

● SDLC categories: Sequential and iterative / incremental

○ Incremental (in pieces)

■ RUP: Each iteration lasts 2 -3 months

■ Scrum: Each iteration lasts days or few weeks

■ Kanban: Without a fixed-length


Testing Levels
Testing Levels

● Test levels are groups of test activities that are organized and
managed together.

● Test levels are related to other activities within the software


development lifecycle.

SYSTEM 1 UAT
TESTING
2
SYSTEM INTEGRATION
3
TESTING
UNIT
4
TESTING
Testing Levels

3
System

1
Unit Testing Testing
Done by
Test
Done by
Developers Testers

Levels
Acceptance

2 4
Integration
Testing
Testing
Done by
Done by End Users
Testers
Testing Levels : Unit Test

● The tests executed against static code.


UNIT
4
TESTING
● Developer (Coder) is involved.

● Defects detected and fixed ASAP, without formalities

● Coverage measured in % of code covered.

● A failing unit test can go undiscovered by QC.


Testing Levels: Integration Test

● Identifies problems that may arise when the different units are
combined.

● When the integration between the different components is greater, it


becomes harder to identify the interface causing the error.

● Examples of typical defects


○ Inconsistent message structures between systems
○ Unhandled communication failures between systems
INTEGRATION
3
TESTING
Testing Levels : System Test

● Executed by a team of testing specialists based on:


○ Requirements / Use Cases or User Stories
○ Risks / Business processes

● Is the final test to verify the system meets the specifications.

● The goal is to find the most defects.


SYSTEM 2
● Must include functional
TESTING

and non-functional requirements.

● Must be executed in a controlled environment.


Testing Levels: Acceptance Test

● Focuses mainly in validating the system meets the operational


expectations.
● It’s executed by the client himself or by system users.
● QCs often have to provide support to the users in this phase.
● The goal: to gain confidence on the system.
1 UAT
● There are two types of Acceptance Tests executed:
○ Alpha Test:
■ In a controlled development environment
○ Beta Test:
■ In the client's environment, under real world conditions.
Testing Levels: Roles
Testing Types
Testing Types

3
Functional Structural

1
Testing Testing
What the system
Test
Assessment of
does? coverage of a
type of structure

Types

2
Change-base

4
Non-Functional
Testing Testing
Testing related to
How the system changes
works?
Testing Types

Functional Testing

● What the system does?


● What the user or customers want on the system?
● Behaviour of software.
● Black-box techniques may be used
Testing Types

Some Functional Testing types

1. Smoke testing
2. Sanity Testing
3. Exploratory testing
4. Regression
5. User Acceptance Testing (UAT)
Testing Types

Non-Functional Testing
What are the non-functional aspects?
● How does the application perform under normal circumstances?
● How does the application behave when too many users login concurrently?
● Can the application handle stress?
● How secure is the application?
● Can the application recover from any disaster?
● Can the application behave in the same way in a different env or OS?
● Are the guides provided with the application easy to understand?
Testing Types

Non-Functional Testing
● Tests system attributes not related to the functionality.
● Is the testing of “how well” the system behaves.

SECURITY
PERFORMANCE
USABILITY

NON-
SCALABILITY FUNCTIONAL
TESTING

RECOVERABILITY

LOAD

RESILIENCE
STRESS
DATA INTEGRITY
Testing Types

Change-related Testing

● When changes are made to correct or changing functionality.


● Testing should be done to:
○ Confirm that the changes corrected the defects (confirmation testing -retest)
○ The change have not caused any unforeseen adverse consequences
(regression testing)
● Confirmation and regression testing are done in all test levels, especially in Agile.
Testing Types
Change-related Testing
Regression suites are run many times -> strong candidate for automation. Automation
should start early

Manual Testing Automation Testing

A simplest low-level type, during each a QA A QA uses a special program/tool for


runs all test manually, without using any running test, already existing or written
helpful software specially for the project.

A time-consuming process Time-saving, particularly because a QA can


re-run the same test numerous times
Testing Types
Change-related Testing

Manual Testing Automation Testing

Can be repetitive and boring Helps to avoid repetitive task as a QA


“delegates” them to a computer

Is suitable for almost any software product Is suitable only for stable systems and used
mainly for regression. Some types of testing
(research, ad-hoc, etc.) cannot be
automated

Helps to define whether automation testing 100% automation is not possible


is possible and necessary
Testing Types
Change-related Testing
So, when should we start automating our tests?
Testing Types

Structural White-box Testing

● Based on the system’s internal implementation


● Include code, architecture, workflows.
● For Functional testing, this could be how many features or functions of the
total have been tested so far.
● Look at the code to see how many lines of code have been exercised by
tests.
Testing Types

White-box VS Black box Testing


● Black Box Testing is a software testing method in which the internal
structure/design/implementation of the item being tested is not known to the tester

Black Box Testing White Box Testing

No access to program code Has access to program code

Requires external perspective Requires knowledge of program code

Set of techniques applicable to all other Typically applies only to unit testing,
phases of testing where code is involved
Testing Types and Testing Levels

● The non-functional testing

Unit Testing: Number of CPU cycles requires to perform the number of


visits trend a Mercado Libre page gets monthly/yearly.

Integration Testing: Notification microservice and re-execute it periodically to


check new feeds.

System Testing: Number of concurrent users that can make a video call.

Acceptance Testing: Accessibility of the Post processing interface for people with
disabilities.
Testing Types and Testing Levels

● Starting with functional testing

Unit Testing: How a component should check the maximum size of a


people connect at the same time in the page. .

Integration Testing: How the Mercado libre system uses external payment
authorizers to check Credit card.

System Testing: How a person can submit a Mercado Libre post

Acceptance Testing: How a person accepts/reject payments.


Testing Types and Testing Levels

● Then change-related testing

Unit Testing: Automated regression unit tests.

Integration Testing: System robustness if the notification microservice fails to


respond.

System Testing: Re-execute all tests for a given workflow if a new version of
Facebook homepage changes.

Acceptance Testing: Re-execute all failed test cases after a fix found in UAT.
Testing Types and Testing Levels

Activity

Let's go with an exercise!


Send Google-Form
Thank
You!

You might also like