Hello friends and greetings for the day welcome back to another tutorial on istqb Foundation level certification we are in Chapter 2 talking about testing throughout the sdlc and continuing ahead with 2.2 which is a new segment talking about test levels and test types and as a part of this tutorial we'll be stepping into the first segment of this that is 2.2.1 test levels and it will go for some time as this topic is little longer I would like to make it in bits and pieces as usual in order to get started the very first and
most important thing is a quick introduction to what is test levels and test types of course many people mix and match them and certainly does not have the right definitions or right answers to what the test levels are and how they're different from test types right here on our screen SC we can understand that the test levels are generally defined as group of test activities that are organized and managed together so there are certainly different levels of testing which are organized and conducted in order to validate a particular parameter or functionality or non-functional characteristics of
an application namely we do know them as unit testing integration testing integration testing system testing acceptance or maybe non-f functionals like performance security portability and whatnot just for your kind information we may have 50 plus levels of testing to be conducted for any particular product but why would someone not know all the levels is because they are not applicable to all the applications by default so whatever is best applicable to your application is what we go ahead and perform them that's the reason for a particular test engineer it is not mandatory or compulsory enough to
know all the test levels but you may find people working in different portfolios conducting different levels of testing and in that context all the levels are important wherever they are applicable also to add here when it comes to each test level it is an instance of the test process itself performed in relation to software at given stage of development from individual components to complete system or even where applicable the systems of systems that means all the levels have a unique objective in fact if you go back back to our previous topic we discussed that one
of the good practices of testing says every test level must have a unique objective specific to that level and in that context it's not something that all the levels are going to fulfill the right needs or the same set of needs rather each of these level will concentrate on something very very specific and particular about a particular application further to add we do have test levels defined as related to other activities within the DLC from the good practices of testing we can certainly talk about that we have corresponding testing activities to that of development activities
and when it comes to different sdlc model like in sequencial sdlc models the test levels are often defined such that the exit criteria of one level are part of the entry criteria for the next level and in some it TR models this may not apply development activities May span through multiple test levels or test levels May overlap in time so I think uh this also has been discussed in our previous segment of the chapter 2 itself where we told you that the testing is not exactly the same when it comes to different sdlc model if
I talk about sequential models like waterfall and V model the testing activities happens one after the other so the exit criteria of unit testing would act as entry criteria to integration testing similarly the exit criteria of integration testing would act as entry to system testing but when it comes to other models like incremental models like agile certainly here everything happens in parallel so development also can overlap throughout testing life cycle and multiple test levels can also overlap over a period of time one more thing here to talk about is test types are groups of test
activities related to specific quality characteristics and most of these those test activities can be performed at every test level now test activities are certainly not those where we talking about in with respect to test levels when when it comes to test types these are those different approaches or those certain activities of testing which are quite Global and can be applied to any test level or can be applied at any point of time during the testing so here in test types we'll be talking about things like what is functional nonfunctional what is Black Box what is
white box and what is retesting and regression testing and all of of these if you deep dive when we come to it we will understand that these test types are not particular to one particular level in fact it can be applied to any test level so let's get started with the test levels and today we'll be covering only one level that is component testing and one by one we'll cover all the levels as per the syllabus to discuss them in more better detail so the very first level of testing which we start the testing process
with is component testing in general but technically in soft development Industries we prefer calling it as unit testing and here units are tested independently in terms of making sure that the smallest part of the application is also fulfilling the desirable requirements now many people get confused when it comes to the definition of unit testing and do think that it is just the smallest part of the application which is testable and that's what we call it as unit testing right that's absolutely true if I talk about the technical definition of unit it certainly stands the same
that is it's the smallest testable part of the application which can be called as unit but what is a unit right is that a component like a text box on the screen is that a page of an application or is that a particular functionality like login sign up or something else no the answer is all three as you go to different organizations you will have different naming conventions and different definition to each of these standard termin techologies thus it may be different definitions to your organizations and thus we may call it out as a combination
of all of these so it is important for one to know that it's none of each of them or it's just not limited to one of them unit can be any of a text box or a radio button or could be a page of an application or process or it can be a particular module like login sign up or search a flight select a flight or something independently now as it is just that the definition is again to talk about the smallest testable part I just call that as a unit so in simple words I
cannot test login without username and just with password right I cannot just test the login button alone without fulfilling anything in username and password so in this context my unit is not the username field my unit is not the password field but my unit or the smallest test component is the entire login page right so in that context we can Define our own way of identifying our units as a part of our application also to add here we want to tell you that unit testing may have several synonyms within the real time so of course
as you see here unit testing or component testing is also known as unit testing program testing class testing code testing structure testing module testing Etc and mainly focuses on testing components in isolation that means independent it's not that we talking about any sort of Integrations here if things are just independent like for example a name field can be tested independently a phone number field can be tested independently so we don't talk about the transactional collection of modules but just one item at a time and try to see how feasible it is with that of the
requirement further to add here we also talk about it is often required specific support such as test hardness or unit test Frameworks in order to perform unit testing it's not that simple that you can just go and run a program and get the output you may need a test framework like unit test framework for example for different languages like Java you have junit python you have py test and similarly you have G test nunit xunit and whatnot so language specific unit test Frameworks are available to perform all sort of unit test on different programs and
different app applications so yes a special test harness test harness here means any kind of uh dummy modules or supporting mocks which may not be existing until un the system is fully established or fully uh prepared or developed though meanwhile we make use of certain marks certain stops which are dumy module and test Arness helps us to create these kind of uh dummies for conducting the unit testing also to talk about component testing is normally performed by developers in their development environment so as we get into the deep dive of environments we understand that there
are different environments when testing is conducted so for example we have a Dev environment we have a QA environment then we'll also have sit environment then we have uat and different stages right and then it goes to production so you call it as stage or you call it as environments you may have different dedicated environments to conduct different levels of testing and that's where we are highlighting liting that unit testings is conducted by developers generally as a part of development environment also to add here that it will be performed as white box testing approach so
we'll come back to you in the next segment that what is white box testing but on a high level when testing is conducted at the code level that is at the back end and that means a program is being executed and seen for the desired output without interacting with a UI that is user interface we call it as white box testing and developers generally prefer using this approach as this is most convenient option for them and it helps you to quickly fix the bugs right on the screen that means as you're looking at the program
you find something you know not behaving as expected you can quickly go and fix that error yourself because you know what is back in right so put together this is what we call it as unit testing some of the common bases of course if you remember V model you have the answers for what is test basis that is of course we make use of components we make use of detail design in order to basically help us uh Define the basis that means what do we need in order to prepare our unit test cases and the
test what you basically conduct is to test independent modules components programs and so on right so that's all from this particular tutorial team this was all about component testing should you have anything else feel free to comment below I'm always there to address your queries and answer them well till then keep learning keep exploring keep understanding the context thanks for watching the video team and happy [Music] learning