ISTQB FOUNDATION 4.0 | Tutorial 13 | 2.2.1 Test Levels & Test Types | Component Testing | CTFL

TM SQUARE
13 Dec 202311:46

Summary

TLDRThis tutorial delves into the ISTQB Foundation Level Certification, focusing on Chapter 2.2.1, which discusses test levels and types. It clarifies the distinction between test levels, which are organized groups of test activities, and test types, which relate to specific quality characteristics. The video particularly highlights the importance of unit testing, the first level of testing, emphasizing its role in validating the smallest testable parts of an application independently. Unit testing is often conducted by developers using white box testing methods and specific frameworks, making it a foundational aspect of the software development lifecycle.

Takeaways

  • 📚 The tutorial is focused on the ISTQB Foundation Level certification, specifically Chapter 2 about testing throughout the SDLC (Software Development Life Cycle).
  • 🔍 The script clarifies the difference between test levels and test types, emphasizing that test levels are groups of test activities organized and managed together, while test types relate to specific quality characteristics.
  • 🔑 Test levels are defined by their unique objectives, validating particular parameters or functionalities of an application, such as unit testing, integration testing, system testing, and acceptance testing.
  • 🔄 There may be over 50 different test levels for a product, but not all are applicable to every application; only the most relevant ones are performed.
  • 🚀 Each test level is an instance of the test process, performed at a given stage of development, from individual components to complete systems or systems of systems.
  • 🔄 Test types, such as functional, non-functional, black box, white box, retesting, and regression testing, can be applied at any test level and are not confined to a specific one.
  • 🛠️ Unit testing, also known as component testing, is the first level of testing discussed, focusing on testing the smallest testable parts of the application in isolation.
  • 💡 The concept of a 'unit' in unit testing can vary and may include a text box, a page, or a specific functionality like login or sign-up, depending on the organization's definition.
  • 🛑 Unit testing often requires specific support like test harnesses or unit test frameworks, which are language-specific and help in conducting tests for different programs.
  • 👨‍💻 Unit testing is typically performed by developers in their development environment and is considered a white box testing approach, where the tester has access to the internal structure of the application.
  • 📝 The script suggests that understanding the basis of testing, such as using detailed design documents, is crucial for preparing unit test cases and conducting effective testing.

Q & A

  • What is the main focus of Chapter 2 in the ISTQB Foundation Level certification tutorial?

    -The main focus of Chapter 2 is on testing throughout the SDLC, with a specific focus on test levels and test types in the 2.2 segment.

  • What are test levels in the context of software testing?

    -Test levels are groups of test activities that are organized and managed together to validate a particular parameter, functionality, or non-functional characteristics of an application.

  • Why is it not necessary for a test engineer to know all the test levels?

    -It is not necessary for a test engineer to know all the test levels because they are not applicable to all applications; only those that are best applicable to the specific application are performed.

  • What is the significance of each test level having a unique objective?

    -Each test level having a unique objective ensures that each level concentrates on something very specific and particular about the application, fulfilling the right needs for that level.

  • How do test levels relate to development activities in the SDLC?

    -Test levels correspond to development activities, and in sequential SDLC models, the exit criteria of one level often become part of the entry criteria for the next level.

  • What is the difference between test levels and test types?

    -Test levels are organized groups of test activities at different stages of development, while test types are groups of test activities related to specific quality characteristics that can be performed at any test level.

  • What is component testing, and why is it the first level of testing in the process?

    -Component testing, often referred to as unit testing, is the first level of testing where the smallest testable parts of the application are tested independently to ensure they fulfill the desirable requirements.

  • Why is it important for unit testing to be performed in isolation?

    -Unit testing is performed in isolation to focus on individual components and ensure that each component functions correctly on its own before moving on to integrated testing.

  • What is the role of a test harness in unit testing?

    -A test harness provides the necessary support, such as dummy modules or mocks, to facilitate the testing of individual components in isolation without the need for the full system to be developed.

  • How is unit testing typically conducted, and by whom?

    -Unit testing is typically conducted by developers in their development environment using a white box testing approach, which involves executing and observing the program at the code level.

  • What are some common synonyms for unit testing in the industry?

    -Some common synonyms for unit testing include program testing, class testing, code testing, structure testing, and module testing.

Outlines

00:00

📚 Introduction to Test Levels and Types

This paragraph introduces the concept of test levels and types within the context of the ISTQB Foundation level certification. It clarifies the common confusion between test levels and test types, explaining that test levels are organized groups of test activities aimed at validating specific aspects of an application. The paragraph also discusses the various types of testing, such as unit, integration, system, acceptance, and non-functional testing, emphasizing that not all levels are applicable to every application. The importance of understanding the unique objectives of each test level and the relevance of test types, which are groups of test activities related to specific quality characteristics, is highlighted. The tutorial also touches on the relationship between test levels and SDLC models, noting how different models may influence the sequence and overlap of testing activities.

05:01

🔍 Deep Dive into Component Testing

This section focuses on the first level of testing known as component testing, commonly referred to as unit testing in the software development industry. It discusses the purpose of unit testing, which is to independently verify that the smallest testable parts of an application meet the desired requirements. The paragraph clarifies that the term 'unit' can vary depending on the organization and may include a text box, a page, or a specific functionality like login or search. The importance of using specific support such as test harnesses or unit test frameworks for conducting unit tests is emphasized, with examples of language-specific frameworks like JUnit for Java and pytest for Python. The paragraph also notes that unit testing is typically performed by developers within their development environment and is conducted as a white box testing approach, allowing for direct code interaction and bug fixing.

10:04

🛠 Unit Testing: Process and Significance

The final paragraph delves deeper into the process and significance of unit testing, explaining that it is performed by developers in their development environment using a white box testing approach. This method involves executing and observing the program at the code level without UI interaction, allowing for efficient bug detection and resolution. The paragraph also mentions that unit testing often requires the use of a test harness, which includes dummy modules or mocks to facilitate testing when the system is not fully developed. It concludes by identifying the basis for unit testing, which involves using detailed design documents to define the test cases and ensure that independent modules are thoroughly tested against requirements.

Mindmap

Keywords

💡SDLC

SDLC stands for Software Development Life Cycle, which is a process used by developers to plan, create, test, and deploy an application. In the context of the video, SDLC is discussed in relation to testing activities that occur at various stages, such as unit testing, integration testing, and system testing, to ensure the quality and functionality of the software being developed.

💡Test Levels

Test levels refer to the different stages of testing within the SDLC, each with a unique objective. The video explains that these levels include unit testing, integration testing, system testing, and acceptance testing, among others. They are organized and managed together to validate specific parameters or functionalities of an application.

💡Test Types

Test types are categories of testing activities that focus on specific quality characteristics of the software. The script mentions functional, non-functional, black box, white box, retesting, and regression testing as examples. These types are not tied to a single test level but can be applied across various levels to ensure different aspects of software quality.

💡Unit Testing

Unit testing is the first level of testing discussed in the video, where the smallest testable parts of an application, known as units, are tested independently to ensure they meet the desired requirements. It is often performed by developers using white box testing techniques and specific support like test harnesses and frameworks.

💡Integration Testing

Although not deeply explained in the script, integration testing is mentioned as one of the test levels. It involves testing the interaction between integrated units or components to ensure they work together as expected. This is crucial after unit testing to check the combined functionality of the application.

💡System Testing

System testing is another test level mentioned in the video, which validates the complete, integrated system to evaluate the system's compliance with its specified requirements. It is conducted after integration testing and before the software is released to the end-users.

💡Acceptance Testing

Acceptance testing is the final test level discussed in the video, where the software is tested to ensure it meets the user requirements and is ready for production. It is often performed by the end-users or client to validate the software's functionality and usability.

💡Non-functional Testing

Non-functional testing is a test type that focuses on aspects of the software that are not related to the functionality, such as performance, security, portability, and usability. The video script mentions it as one of the test types that can be applied at any test level.

💡White Box Testing

White box testing is a testing approach mentioned in the script, where the tester has knowledge of the internal workings of the system. It is often used in unit testing, allowing developers to test the functionality directly from the code level, which helps in quickly identifying and fixing bugs.

💡Test Harness

A test harness, as discussed in the video, is a framework or set of dummy modules used to support testing activities, especially in unit testing. It allows testers to create an environment where individual components can be tested in isolation, even if the full system is not yet developed.

💡Development Environment

The development environment is the setting where developers write and test code. In the context of the video, unit testing is typically conducted in this environment by developers. It is one of the stages or environments mentioned for conducting different levels of testing.

Highlights

Introduction to test levels and test types with a focus on their definitions and differences.

Test levels are groups of test activities organized and managed together to validate specific application characteristics.

Different levels of testing include unit testing, integration testing, system testing, acceptance testing, and non-functional testing.

There may be over 50 test levels for a product, but only applicable ones are conducted based on the application's needs.

Each test level is an instance of the test process with a unique objective related to a specific stage of software development.

Test levels are interconnected in sequential SDLC models, with exit criteria from one level serving as entry criteria for the next.

In some SDLC models like Agile, development and testing activities can overlap, allowing for simultaneous test levels.

Test types are groups of test activities related to specific quality characteristics and can be applied at any test level.

Test types include functional, non-functional, Black Box, White Box, retesting, and regression testing.

Component testing, also known as unit testing, is the first level of testing focusing on the smallest testable part of the application.

Unit testing involves testing components in isolation to ensure they meet the desired requirements.

Different organizations may have varying definitions for what constitutes a 'unit' in unit testing.

Unit testing often requires specific support like test harnesses or unit test frameworks for different programming languages.

Unit testing is typically performed by developers in their development environment using a white box testing approach.

Component testing is based on detailed design and uses components as the test basis for creating test cases.

The tutorial emphasizes the importance of understanding test levels and types for effective software testing.

The video concludes with an invitation for viewers to comment with questions and a reminder to continue learning and exploring.

Transcripts

play00:00

Hello friends and greetings for the day

play00:02

welcome back to another tutorial on

play00:04

istqb Foundation level certification we

play00:06

are in Chapter 2 talking about testing

play00:09

throughout the sdlc and continuing ahead

play00:12

with 2.2 which is a new segment talking

play00:15

about test levels and test types and as

play00:18

a part of this tutorial we'll be

play00:20

stepping into the first segment of this

play00:22

that is

play00:23

2.2.1 test levels and it will go for

play00:26

some time as this topic is little longer

play00:29

I would like to make it in bits and

play00:30

pieces as

play00:40

usual in order to get started the very

play00:43

first and most important thing is a

play00:44

quick introduction to what is test

play00:46

levels and test types of course many

play00:48

people mix and match them and certainly

play00:51

does not have the right definitions or

play00:53

right answers to what the test levels

play00:56

are and how they're different from test

play00:57

types right here on our screen SC we can

play01:00

understand that the test levels are

play01:02

generally defined as group of test

play01:04

activities that are organized and

play01:06

managed together so there are certainly

play01:08

different levels of testing which are

play01:10

organized and conducted in order to

play01:12

validate a particular parameter or

play01:15

functionality or non-functional

play01:17

characteristics of an application namely

play01:20

we do know them as unit testing

play01:22

integration testing integration testing

play01:24

system testing acceptance or maybe non-f

play01:26

functionals like performance security

play01:29

portability and whatnot just for your

play01:31

kind information we may have 50 plus

play01:34

levels of testing to be conducted for

play01:36

any particular product but why would

play01:38

someone not know all the levels is

play01:40

because they are not applicable to all

play01:43

the applications by default so whatever

play01:46

is best applicable to your application

play01:48

is what we go ahead and perform them

play01:51

that's the reason for a particular test

play01:53

engineer it is not mandatory or

play01:55

compulsory enough to know all the test

play01:57

levels but you may find people working

play02:00

in different portfolios conducting

play02:02

different levels of testing and in that

play02:04

context all the levels are important

play02:07

wherever they are applicable also to add

play02:10

here when it comes to each test level it

play02:12

is an instance of the test process

play02:14

itself performed in relation to software

play02:17

at given stage of development from

play02:19

individual components to complete system

play02:22

or even where applicable the systems of

play02:25

systems that means all the levels have a

play02:28

unique objective in fact if you go back

play02:29

back to our previous topic we discussed

play02:32

that one of the good practices of

play02:33

testing says every test level must have

play02:36

a unique objective specific to that

play02:38

level and in that context it's not

play02:40

something that all the levels are going

play02:42

to fulfill the right needs or the same

play02:44

set of needs rather each of these level

play02:47

will concentrate on something very very

play02:49

specific and particular about a

play02:52

particular application further to add we

play02:54

do have test levels defined as related

play02:58

to other activities within the DLC from

play03:00

the good practices of testing we can

play03:02

certainly talk about that we have

play03:05

corresponding testing activities to that

play03:07

of development activities and when it

play03:10

comes to different sdlc model like in

play03:12

sequencial sdlc models the test levels

play03:14

are often defined such that the exit

play03:16

criteria of one level are part of the

play03:19

entry criteria for the next level and in

play03:22

some it TR models this may not apply

play03:25

development activities May span through

play03:27

multiple test levels or test levels May

play03:30

overlap in time so I think uh this also

play03:33

has been discussed in our previous

play03:34

segment of the chapter 2 itself where we

play03:36

told you that the testing is not exactly

play03:39

the same when it comes to different sdlc

play03:41

model if I talk about sequential models

play03:43

like waterfall and V model the testing

play03:46

activities happens one after the other

play03:48

so the exit criteria of unit testing

play03:51

would act as entry criteria to

play03:53

integration testing similarly the exit

play03:56

criteria of integration testing would

play03:58

act as entry to system testing but when

play04:01

it comes to other models like

play04:02

incremental models like agile certainly

play04:05

here everything happens in parallel so

play04:07

development also can overlap throughout

play04:10

testing life cycle and multiple test

play04:12

levels can also overlap over a period of

play04:15

time one more thing here to talk about

play04:17

is test types are groups of test

play04:19

activities related to specific quality

play04:22

characteristics and most of these those

play04:25

test activities can be performed at

play04:28

every test level

play04:31

now test activities are certainly not

play04:33

those where we talking about in with

play04:35

respect to test levels when when it

play04:37

comes to test types these are those

play04:39

different approaches or those certain

play04:41

activities of testing which are quite

play04:43

Global and can be applied to any test

play04:45

level or can be applied at any point of

play04:48

time during the testing so here in test

play04:50

types we'll be talking about things like

play04:52

what is functional nonfunctional what is

play04:54

Black Box what is white box and what is

play04:57

retesting and regression testing and all

play04:59

of of these if you deep dive when we

play05:01

come to it we will understand that these

play05:03

test types are not particular to one

play05:06

particular level in fact it can be

play05:07

applied to any test level so let's get

play05:10

started with the test levels and today

play05:12

we'll be covering only one level that is

play05:14

component testing and one by one we'll

play05:16

cover all the levels as per the syllabus

play05:19

to discuss them in more better detail so

play05:22

the very first level of testing which we

play05:24

start the testing process with is

play05:26

component testing in general but

play05:28

technically in soft development

play05:30

Industries we prefer calling it as unit

play05:32

testing and here units are tested

play05:35

independently in terms of making sure

play05:37

that the smallest part of the

play05:39

application is also fulfilling the

play05:42

desirable requirements now many people

play05:44

get confused when it comes to the

play05:46

definition of unit testing and do think

play05:48

that it is just the smallest part of the

play05:51

application which is testable and that's

play05:53

what we call it as unit testing right

play05:56

that's absolutely true if I talk about

play05:57

the technical definition of unit it

play06:00

certainly stands the same that is it's

play06:02

the smallest testable part of the

play06:04

application which can be called as unit

play06:07

but what is a unit right is that a

play06:10

component like a text box on the screen

play06:12

is that a page of an application or is

play06:15

that a particular functionality like

play06:17

login sign up or something else no the

play06:20

answer is all three as you go to

play06:23

different organizations you will have

play06:24

different naming conventions and

play06:26

different definition to each of these

play06:28

standard termin techologies thus it may

play06:31

be different definitions to your

play06:34

organizations and thus we may call it

play06:36

out as a combination of all of these so

play06:39

it is important for one to know that

play06:41

it's none of each of them or it's just

play06:43

not limited to one of them unit can be

play06:46

any of a text box or a radio button or

play06:49

could be a page of an application or

play06:52

process or it can be a particular module

play06:56

like login sign up or search a flight

play07:00

select a flight or something

play07:02

independently now as it is just that the

play07:05

definition is again to talk about the

play07:08

smallest testable part I just call that

play07:11

as a unit so in simple words I cannot

play07:13

test login without username and just

play07:16

with password right I cannot just test

play07:19

the login button alone without

play07:20

fulfilling anything in username and

play07:22

password so in this context my unit is

play07:25

not the username field my unit is not

play07:27

the password field but my unit or the

play07:30

smallest test component is the entire

play07:32

login page right so in that context we

play07:35

can Define our own way of identifying

play07:38

our units as a part of our application

play07:41

also to add here we want to tell you

play07:43

that unit testing may have several

play07:45

synonyms within the real time so of

play07:48

course as you see here unit testing or

play07:50

component testing is also known as unit

play07:52

testing program testing class testing

play07:55

code testing structure testing module

play07:57

testing Etc and mainly focuses on

play08:01

testing components in isolation that

play08:03

means independent it's not that we

play08:05

talking about any sort of Integrations

play08:07

here if things are just independent like

play08:09

for example a name field can be tested

play08:11

independently a phone number field can

play08:14

be tested independently so we don't talk

play08:16

about the transactional collection of

play08:18

modules but just one item at a time and

play08:21

try to see how feasible it is with that

play08:24

of the requirement further to add here

play08:26

we also talk about it is often required

play08:29

specific support such as test hardness

play08:31

or unit test Frameworks in order to

play08:33

perform unit testing it's not that

play08:35

simple that you can just go and run a

play08:37

program and get the output you may need

play08:39

a test framework like unit test

play08:41

framework for example for different

play08:43

languages like Java you have junit

play08:45

python you have py test and similarly

play08:47

you have G test nunit xunit and whatnot

play08:51

so language specific unit test

play08:53

Frameworks are available to perform all

play08:55

sort of unit test on different programs

play08:58

and different app applications so yes a

play09:00

special test harness test harness here

play09:03

means any kind of uh dummy modules or

play09:06

supporting mocks which may not be

play09:08

existing until un the system is fully

play09:10

established or fully uh prepared or

play09:13

developed though meanwhile we make use

play09:15

of certain marks certain stops which are

play09:18

dumy module and test Arness helps us to

play09:21

create these kind of uh dummies for

play09:24

conducting the unit testing also to talk

play09:27

about component testing is normally

play09:29

performed by developers in their

play09:31

development environment so as we get

play09:33

into the deep dive of environments we

play09:35

understand that there are different

play09:37

environments when testing is conducted

play09:40

so for example we have a Dev environment

play09:42

we have a QA environment then we'll also

play09:45

have sit environment then we have uat

play09:47

and different stages right and then it

play09:49

goes to production so you call it as

play09:51

stage or you call it as environments you

play09:53

may have different dedicated

play09:55

environments to conduct different levels

play09:57

of testing and that's where we are

play09:58

highlighting liting that unit testings

play10:00

is conducted by developers generally as

play10:03

a part of development environment also

play10:05

to add here that it will be performed as

play10:08

white box testing approach so we'll come

play10:10

back to you in the next segment that

play10:12

what is white box testing but on a high

play10:14

level when testing is conducted at the

play10:16

code level that is at the back end and

play10:19

that means a program is being executed

play10:21

and seen for the desired output without

play10:24

interacting with a UI that is user

play10:26

interface we call it as white box

play10:28

testing and developers generally prefer

play10:31

using this approach as this is most

play10:33

convenient option for them and it helps

play10:35

you to quickly fix the bugs right on the

play10:37

screen that means as you're looking at

play10:39

the program you find something you know

play10:42

not behaving as expected you can quickly

play10:44

go and fix that error yourself because

play10:46

you know what is back in right so put

play10:48

together this is what we call it as unit

play10:51

testing some of the common bases of

play10:53

course if you remember V model you have

play10:55

the answers for what is test basis that

play10:58

is of course we make use of components

play11:00

we make use of detail design in order to

play11:02

basically help us uh Define the basis

play11:05

that means what do we need in order to

play11:07

prepare our unit test cases and the test

play11:11

what you basically conduct is to test

play11:14

independent modules components programs

play11:17

and so on right so that's all from this

play11:20

particular tutorial team this was all

play11:22

about component testing should you have

play11:23

anything else feel free to comment below

play11:25

I'm always there to address your queries

play11:27

and answer them well till then keep

play11:29

learning keep exploring keep

play11:30

understanding the context thanks for

play11:32

watching the video team and happy

play11:38

[Music]

play11:44

learning

Rate This

5.0 / 5 (0 votes)

الوسوم ذات الصلة
ISTQBCertificationTestingSDLCUnit TestingIntegrationSystem TestingQuality AssuranceSoftware DevelopmentTest FrameworksWhite Box
هل تحتاج إلى تلخيص باللغة الإنجليزية؟