WEBVTT 00:00:00.000 --> 00:00:03.480 Hey everyone, welcome y'all. 00:00:03.480 --> 00:00:08.000 So from today, I'm going to start a new series on manual software testing on YouTube live 00:00:08.000 --> 00:00:13.960 sessions and especially beginners, they have requested to upload a new series on manual 00:00:13.960 --> 00:00:19.960 software testing, especially manual testing concepts and manual testing process and Jira 00:00:19.960 --> 00:00:23.520 and as well as agile process along with some project. 00:00:23.520 --> 00:00:25.520 So I'm just plan for that. 00:00:25.520 --> 00:00:27.780 And from today, we are going to see. 00:00:27.780 --> 00:00:32.020 So especially for today, we are going to start some basic concept from manual testing. 00:00:32.020 --> 00:00:36.180 Okay, now let's get start. 00:00:36.180 --> 00:00:41.420 So manual testing, we are going to learn in three different phases, or we can say modules. 00:00:41.420 --> 00:00:48.140 The first module, the first module testing concepts, your first module, we are going 00:00:48.140 --> 00:00:50.180 to learn testing concepts. 00:00:50.180 --> 00:00:51.620 So what is testing concept mean? 00:00:51.620 --> 00:00:56.300 Basically, this is all completely theoretical concept is okay, but I don't want to get you 00:00:56.300 --> 00:00:57.300 bored. 00:00:57.300 --> 00:01:01.860 So I'll interact more and I'll give practical experiences and some scenarios also, don't 00:01:01.860 --> 00:01:02.860 worry. 00:01:02.860 --> 00:01:04.940 So testing concept, this is module one. 00:01:04.940 --> 00:01:09.540 In this particular module, we are going to learn some very basics of testing, like what 00:01:09.540 --> 00:01:10.900 is software testing? 00:01:10.900 --> 00:01:12.660 What are the different levels of testing? 00:01:12.660 --> 00:01:16.300 What are the different types of testing we have to conduct on your application? 00:01:16.300 --> 00:01:17.380 Like what is software? 00:01:17.380 --> 00:01:19.780 What are the different types of software are available? 00:01:19.780 --> 00:01:23.180 And SDLC, SDLC, like a lot of things are there. 00:01:23.180 --> 00:01:27.620 So we are going to learn some basic concept from testing, because before going to conduct 00:01:27.620 --> 00:01:31.900 testing, we have to know what kind of testings are there and how we have to conduct those 00:01:31.900 --> 00:01:33.100 testings. 00:01:33.100 --> 00:01:34.620 So that is a theoretical part. 00:01:34.620 --> 00:01:36.700 Okay, so testing concept. 00:01:36.700 --> 00:01:39.900 And if I just look at the curriculum, so the basic concept will be there, like what is 00:01:39.900 --> 00:01:46.780 software testing, types of softwares, and software quality, what is project and product, 00:01:47.540 --> 00:01:53.820 testing, and SDLC, SDLC, a lot of things are there, and test design techniques. 00:01:53.820 --> 00:01:56.940 These are very, very important topics which we are going to discuss. 00:01:56.940 --> 00:01:59.900 And white box testing, black box testing, what is there? 00:01:59.900 --> 00:02:01.580 And functional and non-functional testing. 00:02:01.580 --> 00:02:04.540 So all these things we are going to discuss as part of module one. 00:02:04.540 --> 00:02:07.580 So this is mostly theoretical part, okay? 00:02:07.580 --> 00:02:11.620 Because before jumping into the practical part, we have to know some basic concepts 00:02:11.620 --> 00:02:13.140 theoretically. 00:02:13.180 --> 00:02:17.860 So almost four to five sessions we are going to spend on this particular module, software 00:02:17.860 --> 00:02:19.420 testing concepts. 00:02:19.420 --> 00:02:23.260 So this is the first module, theoretical part, okay? 00:02:23.260 --> 00:02:29.100 Then basically this module says like what, like what to test, okay? 00:02:29.100 --> 00:02:33.660 And the second module is a practical part, okay? 00:02:33.660 --> 00:02:37.860 Second module is a practical part, software testing project. 00:02:37.860 --> 00:02:43.660 So here we are going to start a project along with some concepts, like how to write, how 00:02:43.660 --> 00:02:48.220 to analyze the requirements, how to write the test plan, how to write the test cases, 00:02:48.220 --> 00:02:53.980 how to execute our test cases, and we are going to learn about bugs, bug or defect lifecycle, 00:02:53.980 --> 00:02:55.580 how to report the bugs. 00:02:55.580 --> 00:02:58.280 So these concepts are purely practical part. 00:02:58.280 --> 00:03:06.460 So in this module, we are going to learn project, and this is purely practical orientation. 00:03:06.500 --> 00:03:09.660 And here we are going to learn how to test, okay? 00:03:09.660 --> 00:03:14.540 In the first module, we are mainly focusing on what to test, because the theoretical part. 00:03:14.540 --> 00:03:18.420 In the second module, we are going to test, like we are going to test the application 00:03:18.420 --> 00:03:20.900 directly, like how to test. 00:03:20.900 --> 00:03:23.300 So what are the different techniques are available, right? 00:03:23.300 --> 00:03:26.860 How to write the test cases, how to review the test cases. 00:03:26.860 --> 00:03:30.660 So these things will be part of module number two, testing project. 00:03:30.660 --> 00:03:36.300 I'm going to introduce one e-commerce application, and I'll also show you the FRS document and 00:03:36.300 --> 00:03:40.860 the requirement document, how we'll get the requirement from the customers, and then how 00:03:40.860 --> 00:03:45.420 to write the test cases, how to review them, how to execute bug life cycles. 00:03:45.420 --> 00:03:47.700 Everything will be part of this model testing project. 00:03:47.700 --> 00:03:51.760 So here you will get the practical experience, okay? 00:03:51.760 --> 00:03:55.900 So this is a model number two, because we cannot directly jump into project because 00:03:55.900 --> 00:03:57.940 before that, we need to know some basic concepts. 00:03:57.940 --> 00:04:01.460 If you know the what part, then we can jump into how part. 00:04:01.460 --> 00:04:03.220 So what to test and how to test. 00:04:03.220 --> 00:04:06.680 So second module mainly focus on how to test. 00:04:06.680 --> 00:04:13.420 And once these two modules are completed, then the module three is for agile process. 00:04:13.420 --> 00:04:17.980 This is purely process oriented, because in the nowadays, all the companies are using 00:04:17.980 --> 00:04:20.520 agile process, okay? 00:04:20.520 --> 00:04:24.660 And you have to know this process until unless you know this process, it is very difficult 00:04:24.660 --> 00:04:26.900 to survive in the company. 00:04:26.900 --> 00:04:31.460 So previously waterfall model, spiral model, there are traditional models are available 00:04:31.700 --> 00:04:35.140 because these are process model, because if there is any company, there should be some 00:04:35.140 --> 00:04:37.360 process followed by people, right? 00:04:37.360 --> 00:04:42.860 So here agile process, which is very, very important, and most of the companies are following 00:04:42.860 --> 00:04:44.280 agile process. 00:04:44.280 --> 00:04:49.900 So here in module three, we are going to discuss agile process, like how we will get the requirements, 00:04:49.900 --> 00:04:54.980 how to write the stories and epics, how we can do the backlog plan or sprint plan, how 00:04:54.980 --> 00:04:56.280 the cycles will go on. 00:04:56.320 --> 00:05:01.500 So how we can interact in the project, interact within the project team, scrum, all these 00:05:01.500 --> 00:05:04.440 things we are going to discuss as part of agile process. 00:05:04.440 --> 00:05:09.720 And here itself, I'm going to discuss about one important tool called Jira. 00:05:09.720 --> 00:05:15.760 So Jira is basically agile test management tool, or we can say agile tool. 00:05:15.760 --> 00:05:20.360 And in this particular application, we can track everything in the software development 00:05:20.360 --> 00:05:25.600 from the beginning from the requirement to till we deliver the software to the customer, 00:05:25.600 --> 00:05:29.720 everything we can track into this particular tool, even testers and developer, each and 00:05:29.720 --> 00:05:35.560 every activity, like test cases, test plans, execution status, reports, everything we can 00:05:35.560 --> 00:05:37.980 manage in this tool, okay? 00:05:37.980 --> 00:05:41.600 And previously, before these tools are available in the market, people are using like Excel 00:05:41.600 --> 00:05:46.680 sheets and Word documents, instead of that, we can track everything in the tools, okay? 00:05:46.680 --> 00:05:51.320 So this is agile process, we are going to discuss, which is Jira tool, there are a lot 00:05:51.320 --> 00:05:55.560 of concepts are there guys, so I'm not writing in detail because I already have the curriculum 00:05:55.560 --> 00:05:56.560 here. 00:05:56.560 --> 00:06:00.480 So I share this curriculum later, you guys can go through the topics, okay? 00:06:00.480 --> 00:06:06.080 So these are the three different modules which we are going to cover as part of manual testing. 00:06:06.080 --> 00:06:10.160 So with this Jira tool, we will able to complete manual testing, okay? 00:06:10.160 --> 00:06:16.920 And apart from that, in addition, I'm also going to share you the SQL videos, because 00:06:16.920 --> 00:06:22.160 SQL is not part of our code, because SQL itself will take 10 to 15 sessions. 00:06:22.160 --> 00:06:27.320 So I'm going to provide the video sessions or recorded video sessions, apart from this 00:06:27.320 --> 00:06:32.200 manual testing course, okay, you guys can go through the SQL videos, and that is also 00:06:32.200 --> 00:06:34.840 very important for testing prospectivity, okay? 00:06:34.840 --> 00:06:39.200 So if you go for an interview, people will ask you some questions from SQL also, along 00:06:39.200 --> 00:06:40.800 with the manual testing. 00:06:40.800 --> 00:06:43.440 So that is also very, very important, right? 00:06:43.440 --> 00:06:47.880 So that will be going to share after completion of manual testing, right? 00:06:47.880 --> 00:06:50.960 So this is a part of manual testing curriculum. 00:06:50.960 --> 00:06:55.080 And once you completed manual testing, then I'll share automation testing and everything, 00:06:55.080 --> 00:06:56.080 okay? 00:06:56.080 --> 00:06:58.980 That is a different curriculum we are going to learn, all right? 00:06:58.980 --> 00:07:02.320 So for today's session, I'm going to start with the module one. 00:07:02.320 --> 00:07:05.720 So are you guys clear so far, everyone, about this curriculum? 00:07:05.720 --> 00:07:08.080 Can you please come from in the chat window? 00:07:08.080 --> 00:07:12.880 So if you ask any questions, guys, so please interact in the chat window immediately. 00:07:12.880 --> 00:07:15.720 And every time I'll ask the confirmation from you guys. 00:07:15.720 --> 00:07:20.880 So please put in the chat window, okay, all right. 00:07:20.880 --> 00:07:25.080 So let us start with a few, some basic concepts from manual testing, okay? 00:07:25.080 --> 00:07:26.800 So today's introduction session. 00:07:26.800 --> 00:07:31.940 So I'm just going to cover some basics, basics, like what is software, what is software testing, 00:07:31.940 --> 00:07:34.920 and why do we need to software testing, all these things, okay? 00:07:34.920 --> 00:07:39.800 So first, let us start with what is software and what are the different types of software? 00:07:39.800 --> 00:07:44.600 So people who are completely beginners, okay, and they don't have any ID background, I'm 00:07:44.680 --> 00:07:48.520 going to start from very, very basic, guys, from the scratch. 00:07:48.520 --> 00:07:50.080 And you don't need to worry about anything. 00:07:50.080 --> 00:07:54.400 If you just know how to use MS Word document, Excel sheet, that is that knowledge is enough 00:07:54.400 --> 00:07:59.040 and basic internet knowledge is enough to start learning this concept, okay? 00:07:59.040 --> 00:08:01.600 So you don't need to worry and afraid of anything. 00:08:01.600 --> 00:08:03.280 I'll go from very basic. 00:08:03.280 --> 00:08:08.320 If you have not understood anything, please use chat window to post your questions, okay? 00:08:08.320 --> 00:08:11.700 All right, so this is a small presentation I have. 00:08:11.700 --> 00:08:13.400 So later I'll share this presentation. 00:08:13.960 --> 00:08:16.520 Okay, first, let us see the concepts. 00:08:16.520 --> 00:08:20.680 And one more thing is for every concept, guys, after explanation at the end of the session, 00:08:20.680 --> 00:08:25.320 I will also share the presentation as well as notes and materials, and don't worry. 00:08:25.320 --> 00:08:27.960 So you guys can go to them, all right? 00:08:27.960 --> 00:08:32.580 So first, let us start with what is software, like what is the types of software? 00:08:32.580 --> 00:08:35.920 So everywhere we hear, we heard this term software. 00:08:35.920 --> 00:08:41.920 What is software, software, simple definition, everyone know about software, but if you come, 00:08:41.920 --> 00:08:45.840 if I ask the definition, most of the people cannot answer this question. 00:08:45.840 --> 00:08:48.240 Software, everybody knows the software, we are daily, 00:08:48.240 --> 00:08:50.880 entirely every day we are using software, 00:08:50.880 --> 00:08:53.920 mobiles or computers, everywhere we are using software. 00:08:53.920 --> 00:08:56.080 But what exactly software means? 00:08:56.080 --> 00:08:58.800 So if you say definition of the software, 00:08:58.800 --> 00:09:03.580 the software is a collection of computer programs, 00:09:03.580 --> 00:09:07.760 a collection of computer programs that helps us to perform a task. 00:09:07.760 --> 00:09:10.880 Suppose if you want to perform some task, guys, 00:09:10.880 --> 00:09:14.560 suppose if you want to do some manual task, right? 00:09:14.560 --> 00:09:17.000 So through the mission, I want to do the task. 00:09:17.000 --> 00:09:20.200 So that mission needs some software, okay? 00:09:20.200 --> 00:09:23.240 So for example, if I take a mobile app, mobiles, right? 00:09:23.240 --> 00:09:24.720 So if you have only mobile, right? 00:09:24.720 --> 00:09:26.160 We cannot do anything with mobile. 00:09:26.160 --> 00:09:29.560 In that mobile, there should be some apps or some software should run. 00:09:29.560 --> 00:09:32.560 And with that software, we are doing all the things, right? 00:09:32.560 --> 00:09:34.480 Suppose if I take some WhatsApp or LinkedIn, 00:09:34.480 --> 00:09:36.480 whatever apps you have in the mobile, 00:09:36.480 --> 00:09:39.280 if I don't have those apps, can you use your mobile? 00:09:39.280 --> 00:09:40.200 No, right? 00:09:40.200 --> 00:09:42.800 So you need to have some software in that. 00:09:42.800 --> 00:09:45.320 And then only we can use a mobile. 00:09:45.320 --> 00:09:48.160 Similarly, software is a collection of computer program. 00:09:48.160 --> 00:09:51.640 How the software will be developed, 00:09:51.640 --> 00:09:54.040 which is basically a collection of programs. 00:09:54.040 --> 00:09:57.000 And the developers will write a number of programs 00:09:57.000 --> 00:09:59.680 and collectively we can call it as a software. 00:09:59.680 --> 00:10:01.160 So what is a program? 00:10:01.160 --> 00:10:03.600 Program is something called as a coding, 00:10:03.600 --> 00:10:06.400 like they will write some instructions to the computer. 00:10:06.400 --> 00:10:10.000 So the instructions can be understandable by the computer. 00:10:10.000 --> 00:10:13.040 And collectively we can call it as a software. 00:10:13.040 --> 00:10:16.080 Software is a collection of computer programs 00:10:16.080 --> 00:10:17.840 that help us to perform a task. 00:10:17.840 --> 00:10:21.400 If you want to perform some task, we can use a software. 00:10:21.400 --> 00:10:23.120 Okay, simple definition. 00:10:23.120 --> 00:10:24.360 But in the market, 00:10:24.360 --> 00:10:27.120 there are different type of softwares are available. 00:10:27.120 --> 00:10:29.600 There are different types of softwares are available. 00:10:29.600 --> 00:10:32.480 So mainly there are three categories. 00:10:32.480 --> 00:10:35.040 One is system software. 00:10:35.040 --> 00:10:37.040 Okay, let me just write some notes here. 00:10:37.960 --> 00:10:39.440 Okay, so types of softwares. 00:10:39.440 --> 00:10:43.400 System software, and programming software, 00:10:43.400 --> 00:10:44.800 and application software. 00:10:44.800 --> 00:10:46.880 So these are the three different 00:10:46.880 --> 00:10:48.500 types of softwares are available. 00:10:49.380 --> 00:10:51.520 Three different types of softwares are available. 00:10:51.520 --> 00:10:53.840 One is system software. 00:10:53.840 --> 00:10:55.880 I'll tell you what is system software. 00:10:55.880 --> 00:10:58.200 Second one is the programming software. 00:10:58.200 --> 00:11:00.600 And third one is the application software. 00:11:00.600 --> 00:11:02.640 System software, programming software, 00:11:02.640 --> 00:11:04.920 then application software. 00:11:04.920 --> 00:11:07.240 So what is system software means? 00:11:07.240 --> 00:11:09.840 Normally device drivers, operating systems, 00:11:09.840 --> 00:11:11.940 servers, utilities, these are all 00:11:11.940 --> 00:11:14.680 comes under system software. 00:11:14.680 --> 00:11:16.000 What does it mean? 00:11:16.000 --> 00:11:19.800 Suppose you have your desktop or laptop, okay? 00:11:19.800 --> 00:11:22.960 And you are connecting all the accessories to your computer. 00:11:22.960 --> 00:11:26.120 You are connecting keyboard, you are connecting mouse, right? 00:11:26.120 --> 00:11:28.200 You are connecting some other screens, 00:11:28.200 --> 00:11:31.460 or you're connecting printer to your computer, right? 00:11:31.460 --> 00:11:34.000 So these are different accessories or devices 00:11:34.000 --> 00:11:36.300 are connecting to your computer. 00:11:36.300 --> 00:11:39.060 But if you want to use those devices, 00:11:39.060 --> 00:11:42.300 we need to install some additional drivers. 00:11:42.300 --> 00:11:44.580 Or sometimes your computer also will come 00:11:44.580 --> 00:11:46.260 along with the drivers. 00:11:46.260 --> 00:11:49.660 And those drivers also comes under the system software. 00:11:49.660 --> 00:11:54.240 And basically these softwares are used to run the systems. 00:11:54.240 --> 00:11:56.460 Okay, suppose if you connect, 00:11:56.460 --> 00:11:59.720 suppose if you have connected your keyboard to the computer, 00:11:59.720 --> 00:12:02.800 how your computer will able to identify your keyboard, 00:12:02.800 --> 00:12:04.380 the instructions are coming from keyboard. 00:12:04.380 --> 00:12:06.040 It doesn't know basically, right? 00:12:06.040 --> 00:12:08.120 So there should be some software. 00:12:08.120 --> 00:12:09.840 The computer should have some intelligence 00:12:09.840 --> 00:12:12.280 to identify your keyboard, to identify your mouse, 00:12:12.280 --> 00:12:14.640 you identify your monitor and everything. 00:12:14.640 --> 00:12:17.920 So that is basically comes under the system software. 00:12:17.920 --> 00:12:21.000 So device drivers and operating system. 00:12:21.000 --> 00:12:23.480 Operating system is what Windows, Linux, Mac. 00:12:23.480 --> 00:12:25.560 So these are all operating systems. 00:12:25.560 --> 00:12:26.760 So you have a computer, 00:12:26.760 --> 00:12:29.080 but if you don't have any operating systems, 00:12:29.080 --> 00:12:31.840 how can we use or how can you install other softwares 00:12:31.840 --> 00:12:33.840 without using operating system? 00:12:33.840 --> 00:12:37.080 Because first, as soon as you start your computer, 00:12:37.080 --> 00:12:39.080 operating system must be there. 00:12:39.080 --> 00:12:41.000 So on top of operating system, 00:12:41.000 --> 00:12:44.080 we are going to install other softwares, right? 00:12:44.080 --> 00:12:45.300 That is the base. 00:12:45.300 --> 00:12:46.280 Once you have computer, 00:12:46.280 --> 00:12:47.840 you need to install some operating system. 00:12:47.840 --> 00:12:49.340 It can be anything. 00:12:49.340 --> 00:12:51.520 So that is also comes under the system software, 00:12:51.520 --> 00:12:55.080 because if you want to run or start system, 00:12:55.080 --> 00:12:56.880 we need some operating system. 00:12:56.880 --> 00:12:59.840 So there's a reason which is comes under system software 00:12:59.840 --> 00:13:03.480 and server some utilities files or some utilities means, 00:13:03.480 --> 00:13:05.800 suppose if you write something, right? 00:13:05.800 --> 00:13:08.400 If you write some text or if I write some document, 00:13:08.400 --> 00:13:13.240 internally, the computer software is able to recognize it. 00:13:13.240 --> 00:13:15.120 So to run special software, 00:13:15.120 --> 00:13:17.400 we need to also have some utilities. 00:13:17.400 --> 00:13:19.560 So these are all comes under system software, 00:13:19.560 --> 00:13:23.120 device drivers, operating systems, servers, utilities, 00:13:23.120 --> 00:13:24.880 all these things are comes under system. 00:13:24.880 --> 00:13:26.800 So basically the system software 00:13:26.800 --> 00:13:31.040 will be used to run the systems, okay? 00:13:31.040 --> 00:13:33.040 That is a one category of softwares. 00:13:33.080 --> 00:13:35.800 And the second category is a programming software. 00:13:35.800 --> 00:13:38.000 So what is programming software means? 00:13:38.000 --> 00:13:41.000 Compilers, debuggers, interpreters. 00:13:41.000 --> 00:13:44.100 So these are all examples of programming software. 00:13:44.100 --> 00:13:47.360 That means, suppose developers are writing the code 00:13:47.360 --> 00:13:50.820 or some program, how program will be executed? 00:13:50.820 --> 00:13:53.820 How the program will be produced some output? 00:13:53.820 --> 00:13:55.520 Suppose when I use a computer, 00:13:55.520 --> 00:13:57.360 we are giving some input to the computer, 00:13:57.360 --> 00:13:59.320 we are getting some output. 00:13:59.320 --> 00:14:01.720 So who is processing internally? 00:14:01.720 --> 00:14:03.400 When I give some input to the computer, 00:14:03.400 --> 00:14:05.800 someone should be there to process that input 00:14:05.800 --> 00:14:07.480 and produce the output. 00:14:07.480 --> 00:14:08.880 And that thing will be done 00:14:08.880 --> 00:14:11.840 by the compilers, debuggers, interpreters. 00:14:11.840 --> 00:14:16.040 So these are the softwares which will do some processes 00:14:16.040 --> 00:14:18.080 when you run your program. 00:14:18.080 --> 00:14:21.200 Normally developers work with these programming software. 00:14:21.200 --> 00:14:23.440 So whatever the programs they have run 00:14:23.440 --> 00:14:26.240 to execute the programs and providing the output, 00:14:26.240 --> 00:14:28.480 the compilers, debuggers, interpreters 00:14:28.480 --> 00:14:29.800 will be used internally. 00:14:29.800 --> 00:14:32.080 So that comes under the programming software. 00:14:33.000 --> 00:14:35.280 And the last one is application software. 00:14:35.280 --> 00:14:37.680 So this is a very, very important area 00:14:37.680 --> 00:14:39.720 where we have to focus on. 00:14:39.720 --> 00:14:40.840 Application software. 00:14:40.840 --> 00:14:42.320 So application software is nothing 00:14:42.320 --> 00:14:44.880 but the users will use that applications 00:14:44.880 --> 00:14:46.940 or users will use that software. 00:14:46.940 --> 00:14:49.680 For example, web applications. 00:14:49.680 --> 00:14:52.280 So every day we are using web applications 00:14:52.280 --> 00:14:56.400 in case of Facebook or LinkedIn or Amazon or online portals. 00:14:56.400 --> 00:14:59.140 Everything comes under web applications. 00:14:59.140 --> 00:15:00.540 And mobile apps. 00:15:00.540 --> 00:15:02.060 Suppose you are using mobile 00:15:02.060 --> 00:15:04.260 and you have N number of apps in your mobile. 00:15:04.260 --> 00:15:07.740 All those things are comes under application software. 00:15:07.740 --> 00:15:09.140 And desktop applications. 00:15:09.140 --> 00:15:10.860 So desktop application means what? 00:15:11.700 --> 00:15:13.220 You can install those applications 00:15:13.220 --> 00:15:15.300 in your laptop or your computer 00:15:15.300 --> 00:15:19.060 like MS Word document, Excel, Outlook, Notepad, calculator. 00:15:19.060 --> 00:15:22.260 So these are all comes under desktop applications. 00:15:22.260 --> 00:15:25.100 So basically there are three kinds of applications, 00:15:25.100 --> 00:15:26.780 application softwares. 00:15:26.780 --> 00:15:28.780 One is web applications, 00:15:28.780 --> 00:15:31.820 mobile applications, desktop applications. 00:15:31.820 --> 00:15:33.420 These are the three categories. 00:15:33.420 --> 00:15:34.420 So web applications, 00:15:34.420 --> 00:15:35.780 if you want to work web applications, 00:15:35.780 --> 00:15:37.700 we need to have an internet, okay? 00:15:37.700 --> 00:15:40.780 Because through internet we can access those applications. 00:15:40.780 --> 00:15:42.860 And actual applications will be installed 00:15:42.860 --> 00:15:45.460 somewhere in the remote servers. 00:15:45.460 --> 00:15:46.300 And mobile apps. 00:15:46.300 --> 00:15:48.140 So everybody will know about this. 00:15:48.140 --> 00:15:49.440 So from the Play Store, 00:15:49.440 --> 00:15:52.100 we can download and install mobile apps and we can use it. 00:15:52.100 --> 00:15:54.540 They are all comes under application software. 00:15:54.540 --> 00:15:56.260 And desktop applications means 00:15:56.260 --> 00:15:59.580 the application which we can install on your local machine. 00:15:59.580 --> 00:16:00.580 Even without internet, 00:16:00.580 --> 00:16:03.180 also we can use desktop applications. 00:16:03.180 --> 00:16:05.780 So like I'm using Notepad to typing something. 00:16:05.780 --> 00:16:07.700 This is a desktop application. 00:16:07.700 --> 00:16:09.700 So calculator is a desktop application. 00:16:09.700 --> 00:16:12.420 Your paint is a desktop application. 00:16:12.420 --> 00:16:14.940 So all these comes under desktop applications. 00:16:14.940 --> 00:16:18.180 So these are all comes under application software 00:16:18.180 --> 00:16:21.140 because as a user, I can use these applications. 00:16:21.140 --> 00:16:23.140 I can use this software, 00:16:23.140 --> 00:16:25.820 but I cannot directly use programming software 00:16:26.420 --> 00:16:27.260 and system software 00:16:27.260 --> 00:16:29.140 because these are the internal softwares 00:16:29.140 --> 00:16:31.100 which we cannot see them. 00:16:31.100 --> 00:16:34.780 But these softwares are used to run your systems. 00:16:34.780 --> 00:16:39.780 But application software, we have to use on daily usage. 00:16:39.780 --> 00:16:41.140 And we can do some tasks 00:16:41.140 --> 00:16:43.700 by using these application softwares. 00:16:43.700 --> 00:16:46.180 Okay, suppose if you go for amazon.com. 00:16:46.180 --> 00:16:47.540 So that is an online application. 00:16:47.540 --> 00:16:48.740 That is a software. 00:16:48.740 --> 00:16:51.460 What we can do, we can search for the product. 00:16:51.460 --> 00:16:53.640 We can add to cart and we can do the payment. 00:16:53.640 --> 00:16:55.740 So these are activities we can do. 00:16:56.580 --> 00:16:59.740 Similarly, banking applications, financial applications. 00:16:59.740 --> 00:17:01.900 So educational institution applications. 00:17:01.900 --> 00:17:03.740 So all these comes under web applications, 00:17:03.740 --> 00:17:05.180 mobile apps, desktop applications. 00:17:05.180 --> 00:17:07.460 So every day on day-to-day basis, 00:17:07.460 --> 00:17:09.460 we are working with these applications. 00:17:09.460 --> 00:17:12.860 So these are all comes under application software. 00:17:12.860 --> 00:17:16.820 Our testing is also mainly focused on application software. 00:17:16.820 --> 00:17:19.940 We are going to test the application softwares. 00:17:19.940 --> 00:17:22.700 Okay, so this is basically understanding 00:17:22.700 --> 00:17:25.420 the basic understanding of what is software, 00:17:25.460 --> 00:17:27.420 the types of software. 00:17:27.420 --> 00:17:31.740 Okay, so the next thing is, what is software testing? 00:17:31.740 --> 00:17:34.060 So we understood what is software testing, 00:17:34.060 --> 00:17:36.020 software types of software testing. 00:17:36.020 --> 00:17:39.500 Now we need to understand what is software testing. 00:17:40.280 --> 00:17:41.980 Okay, so next one, what is software testing. 00:17:41.980 --> 00:17:43.660 We already know what is software. 00:17:43.660 --> 00:17:46.300 Now we need to understand what is software testing. 00:17:46.300 --> 00:17:49.000 And then why the software testing is required. 00:17:49.960 --> 00:17:52.900 So this is one of the important, interest question also. 00:17:52.900 --> 00:17:54.500 Like what is a software testing. 00:17:55.780 --> 00:18:00.700 So normally, when you purchase any product, right? 00:18:00.700 --> 00:18:02.420 So what you will do, 00:18:02.420 --> 00:18:04.940 you will do some basic functionalities working or not. 00:18:04.940 --> 00:18:07.860 So let me just give you one example. 00:18:07.860 --> 00:18:11.380 Suppose you want to buy a mobile. 00:18:11.380 --> 00:18:13.740 Okay, so before buying a mobile, 00:18:13.740 --> 00:18:16.820 you will have some budget, okay? 00:18:16.820 --> 00:18:19.140 And with that budget, within that budget, 00:18:19.140 --> 00:18:22.380 you are expecting some features to be there in your mobile. 00:18:22.380 --> 00:18:23.660 Okay, you have some budget 00:18:23.660 --> 00:18:25.620 and you are expecting some features. 00:18:25.620 --> 00:18:28.220 Some functionality should be there in your mobile. 00:18:28.220 --> 00:18:29.580 And with that input, 00:18:29.580 --> 00:18:33.340 you are searching for different brands in a market. 00:18:33.340 --> 00:18:36.460 And finally, you search some brand and some model 00:18:36.460 --> 00:18:39.520 and you bought it, okay? 00:18:39.520 --> 00:18:41.100 And you spend some budget 00:18:41.100 --> 00:18:42.660 and also you're expecting something 00:18:42.660 --> 00:18:45.060 should be there in your mobile. 00:18:45.060 --> 00:18:47.140 And once you bought your phone, 00:18:47.140 --> 00:18:49.260 you started using your mobile 00:18:49.260 --> 00:18:52.780 and then you started finding some bugs 00:18:52.780 --> 00:18:53.820 or issues in your mobile. 00:18:53.820 --> 00:18:55.420 So something is not working 00:18:55.420 --> 00:18:58.140 or on or off is not properly working, right? 00:18:58.140 --> 00:18:59.860 Our screen is not properly appearing. 00:18:59.860 --> 00:19:02.320 Some apps are striking. 00:19:02.320 --> 00:19:05.140 So if you find these kinds of issues in your mobile, 00:19:05.140 --> 00:19:06.760 how you will feel, 00:19:06.760 --> 00:19:09.360 definitely you will start frustrating with that product, 00:19:09.360 --> 00:19:10.200 right? 00:19:10.200 --> 00:19:12.180 So why these things, this thing is happened 00:19:12.180 --> 00:19:15.920 because of lacking of testing. 00:19:15.920 --> 00:19:18.860 Because you bought a mobile, you bought a product, 00:19:18.860 --> 00:19:20.560 but this is buggy product. 00:19:20.560 --> 00:19:22.540 So you have some issues with that product. 00:19:22.540 --> 00:19:24.020 Why these issues are there in the product? 00:19:24.020 --> 00:19:27.620 Because testing is not properly conducted, right? 00:19:27.620 --> 00:19:29.220 Each and every function, 00:19:29.220 --> 00:19:32.260 each and every feature is properly working or not. 00:19:32.260 --> 00:19:34.140 It is not properly tested. 00:19:34.140 --> 00:19:36.860 So that is the reason you start frustrating 00:19:36.860 --> 00:19:38.620 with that product, right? 00:19:38.620 --> 00:19:41.500 Same thing will happen with the software also. 00:19:41.500 --> 00:19:44.180 Same thing will happen with the software also. 00:19:44.180 --> 00:19:45.580 But who is using software? 00:19:45.580 --> 00:19:49.220 So for example, let us say some bank, okay? 00:19:49.220 --> 00:19:52.440 So let's say I have something called xBank. 00:19:52.440 --> 00:19:55.000 So this bank is doing some transaction 00:19:55.000 --> 00:19:57.620 on day-to-day basis manually. 00:19:57.620 --> 00:19:59.360 And after a few days, 00:19:59.360 --> 00:20:04.200 this particular bank wanted to automate the process. 00:20:04.200 --> 00:20:05.560 The bank automate, 00:20:05.560 --> 00:20:08.760 the bank, this particular bank wanted to automate the process. 00:20:08.760 --> 00:20:09.920 Means what? 00:20:09.920 --> 00:20:12.560 Whatever the transactions they are doing manually, 00:20:12.560 --> 00:20:16.320 they want a software and using that software, 00:20:16.320 --> 00:20:19.520 they wanted to do those tasks, okay? 00:20:19.520 --> 00:20:21.000 Through the software. 00:20:21.000 --> 00:20:22.160 And what this bank? 00:20:22.800 --> 00:20:23.640 So bank is nothing but what? 00:20:23.640 --> 00:20:26.840 This is a small company, okay? 00:20:26.840 --> 00:20:28.840 And this particular company or bank 00:20:28.840 --> 00:20:32.520 will approach an IT company, okay? 00:20:32.520 --> 00:20:34.260 Will approach an IT company. 00:20:35.340 --> 00:20:38.200 And once they approach this IT company, 00:20:38.200 --> 00:20:40.520 they will explain their requirement. 00:20:40.520 --> 00:20:43.400 So what exactly they do in their organization. 00:20:43.400 --> 00:20:46.600 So what kind of operations or actions or tasks they do 00:20:46.600 --> 00:20:49.020 on day-to-day basis in their organization. 00:20:49.020 --> 00:20:50.880 So they will explain the entire, 00:20:50.880 --> 00:20:52.560 the process, the requirement, 00:20:52.560 --> 00:20:54.540 everything into this IT company. 00:20:55.440 --> 00:20:57.840 Along with that, the budget, 00:20:57.840 --> 00:21:00.040 what is the budget they have 00:21:00.040 --> 00:21:03.240 and within what time they need the software. 00:21:03.240 --> 00:21:06.340 So all these things will be explained to this IT company. 00:21:07.220 --> 00:21:09.280 Now, what IT company will do is, 00:21:09.280 --> 00:21:14.000 IT company will review and understand their requirement 00:21:14.000 --> 00:21:16.000 and their budget and time. 00:21:16.000 --> 00:21:18.000 So by considering them, 00:21:18.000 --> 00:21:21.000 they will agree to develop the software 00:21:21.000 --> 00:21:24.040 which will fulfill their tasks, okay? 00:21:24.040 --> 00:21:25.760 Instead of doing manual transaction, 00:21:25.760 --> 00:21:29.220 they can do automate using particular software. 00:21:29.220 --> 00:21:32.920 And so after reviewing those requirements by IT company, 00:21:32.920 --> 00:21:36.640 they agree to develop a software, okay? 00:21:36.640 --> 00:21:38.240 And what IT company will do now, 00:21:38.240 --> 00:21:41.920 IT company will develop the software, 00:21:41.920 --> 00:21:46.920 will develop the software and it also to be tested, okay? 00:21:47.080 --> 00:21:49.920 Test the software and after testing, 00:21:49.920 --> 00:21:54.920 then deliver the software to the company called xBank. 00:21:55.440 --> 00:21:57.380 So this is actual process. 00:21:57.380 --> 00:22:01.480 So some company will approach the IT company 00:22:01.480 --> 00:22:05.160 by saying all their requirement, budget and time. 00:22:05.160 --> 00:22:09.520 And based on that, IT company will agree the requirement, 00:22:09.520 --> 00:22:10.440 agrees the proposal 00:22:10.440 --> 00:22:13.160 and then they start developing the software 00:22:13.160 --> 00:22:14.800 and they will recruit some number of people, 00:22:14.800 --> 00:22:17.920 developers, testers, designers, program managers, 00:22:17.920 --> 00:22:19.240 all these people. 00:22:19.240 --> 00:22:22.040 And they take some time to develop the software. 00:22:22.040 --> 00:22:26.600 And then finally, before delivering the software to the bank, 00:22:26.600 --> 00:22:29.400 we have to conduct the testing here. 00:22:29.400 --> 00:22:32.520 So after development, testing comes into picture. 00:22:32.520 --> 00:22:34.060 So why we need to do the testing? 00:22:34.060 --> 00:22:35.520 What is testing here? 00:22:35.520 --> 00:22:37.080 Why we are conducting testing here? 00:22:37.080 --> 00:22:41.100 Because we have to release the quality product 00:22:41.100 --> 00:22:42.120 to the customer. 00:22:42.120 --> 00:22:44.880 We have to deliver the quality product to the customer. 00:22:44.880 --> 00:22:49.620 So that is the main intention of doing software testing, okay? 00:22:49.620 --> 00:22:53.460 So software testing will play very, very important role 00:22:53.460 --> 00:22:56.200 because if you deliver the buggy product to the customer, 00:22:56.200 --> 00:22:57.280 it'll start frustrating it 00:22:57.280 --> 00:23:01.280 because he spent a lot of budget, a lot of time, right? 00:23:01.280 --> 00:23:05.840 So this is our responsibility, the company responsibility 00:23:05.840 --> 00:23:09.200 to provide the quality product to the customer. 00:23:09.200 --> 00:23:11.440 It should not have any bugs. 00:23:11.440 --> 00:23:14.920 It should work according to customer requirement. 00:23:14.920 --> 00:23:17.560 So all these things we have to take care 00:23:17.560 --> 00:23:21.520 while performing the testing, the software, okay? 00:23:21.520 --> 00:23:23.060 So what is software testing? 00:23:23.060 --> 00:23:25.440 So software testing is very, very important 00:23:25.440 --> 00:23:29.120 before delivering the software to the customer, okay? 00:23:29.120 --> 00:23:30.820 Now, what is software testing? 00:23:30.820 --> 00:23:35.000 The software testing is a part of software development. 00:23:35.000 --> 00:23:36.600 Here, development means what? 00:23:36.600 --> 00:23:38.680 Not only writing the code, okay? 00:23:38.680 --> 00:23:40.640 We have to test the software, 00:23:40.640 --> 00:23:42.040 whether it is working according 00:23:42.040 --> 00:23:43.780 to customer requirement or not. 00:23:43.780 --> 00:23:46.440 If you're not conducting testing, what happens? 00:23:46.440 --> 00:23:48.920 Definitely the product is having some bugs 00:23:48.920 --> 00:23:51.200 because there is no guarantee 00:23:51.200 --> 00:23:54.040 like developers will do everything perfectly fine, right? 00:23:54.040 --> 00:23:55.080 There should be some bugs. 00:23:55.080 --> 00:23:57.060 There will be some gaps. 00:23:57.060 --> 00:23:59.320 So we have to test the software. 00:23:59.320 --> 00:24:01.320 We need to identify the bugs 00:24:01.320 --> 00:24:03.600 and the developers again will fix those bugs. 00:24:03.600 --> 00:24:06.300 And finally, we will deliver the quality product 00:24:06.300 --> 00:24:09.000 to the customer, okay? 00:24:09.000 --> 00:24:13.080 So the testing is a part of the development process. 00:24:13.080 --> 00:24:15.000 We'll understand the customer requirement. 00:24:15.000 --> 00:24:18.080 We will design it, then coding, then testing, 00:24:18.080 --> 00:24:20.720 and finally delivering the software to the customer. 00:24:20.720 --> 00:24:22.860 So these things will come into picture. 00:24:22.860 --> 00:24:27.160 So now, if I just look at what is software testing, 00:24:27.160 --> 00:24:28.820 let me write some notes here. 00:24:31.520 --> 00:24:36.040 So what is software? 00:24:36.040 --> 00:24:37.780 We understood what is software. 00:24:37.780 --> 00:24:40.980 Now we are understanding what is software testing. 00:24:40.980 --> 00:24:43.440 So software testing is a part 00:24:43.440 --> 00:24:45.620 of software development process. 00:24:46.820 --> 00:24:50.500 Software testing is an activity to detect 00:24:50.500 --> 00:24:52.620 and identify the defects in the software. 00:24:52.620 --> 00:24:55.040 So this is the main intention of the tester. 00:24:55.040 --> 00:24:56.940 What is the job of tester means? 00:24:56.940 --> 00:24:59.300 He has to identify the defects 00:24:59.300 --> 00:25:02.220 and he has to make sure our application 00:25:02.220 --> 00:25:04.060 or software is working according 00:25:04.060 --> 00:25:06.020 to customer requirement or not. 00:25:06.020 --> 00:25:07.780 Because initially customer will provide you 00:25:07.780 --> 00:25:10.500 some requirement, the functionality. 00:25:10.500 --> 00:25:13.260 And our software also should perform the same thing, 00:25:13.260 --> 00:25:14.980 whatever the customer is expecting. 00:25:15.940 --> 00:25:17.980 Suppose the customer is said something 00:25:17.980 --> 00:25:20.580 and we develop the software for something else. 00:25:20.580 --> 00:25:22.020 It doesn't work, right? 00:25:22.020 --> 00:25:25.660 So the main intention of software testing is 00:25:25.660 --> 00:25:29.220 it is a activity to detect and identify the defects. 00:25:29.220 --> 00:25:31.860 We have to execute some test cases. 00:25:31.860 --> 00:25:33.060 I'll tell you what is the test case 00:25:33.060 --> 00:25:34.340 and how to execute all these things. 00:25:34.340 --> 00:25:36.300 So the main intention of software testing is 00:25:36.300 --> 00:25:40.920 we have to find the defects in the software, okay? 00:25:40.920 --> 00:25:43.900 And the main objective is to release the quality product 00:25:43.900 --> 00:25:46.340 to the client or customer. 00:25:46.340 --> 00:25:49.160 So this is basically what is software testing. 00:25:49.160 --> 00:25:52.020 So testing is a part of software development. 00:25:52.020 --> 00:25:55.760 Testing is an activity to find the defects in the software. 00:25:55.760 --> 00:25:57.780 The main objective of testing is 00:25:57.780 --> 00:26:01.780 to release a quality product to the customer or client. 00:26:01.780 --> 00:26:06.740 So this is all about what is software testing. 00:26:06.740 --> 00:26:08.780 The next one is what is quality. 00:26:08.780 --> 00:26:11.700 So here we are talking about the quality. 00:26:11.700 --> 00:26:12.620 What is quality? 00:26:13.660 --> 00:26:15.100 Every day we are talking about quality. 00:26:15.100 --> 00:26:16.100 If I buy something, 00:26:16.100 --> 00:26:18.460 we are always expecting the quality, right? 00:26:18.460 --> 00:26:20.420 But what exactly quality means? 00:26:20.420 --> 00:26:21.940 The main objective of testing is 00:26:21.940 --> 00:26:23.620 to release quality product to the client. 00:26:23.620 --> 00:26:24.780 But what is quality? 00:26:26.180 --> 00:26:27.100 So what is quality? 00:26:27.100 --> 00:26:31.100 So quality is something called customer justification. 00:26:31.100 --> 00:26:34.300 So how well our product or software is working, 00:26:35.220 --> 00:26:37.820 the customer will decide, okay? 00:26:37.820 --> 00:26:41.700 So here there are some parameter based on that we can say 00:26:41.700 --> 00:26:44.340 whether our software is quality or not, 00:26:44.340 --> 00:26:45.600 quality software or not. 00:26:45.600 --> 00:26:47.660 So what are those parameters? 00:26:47.660 --> 00:26:48.920 Let me just tell you. 00:26:48.920 --> 00:26:50.340 So software quality. 00:26:51.860 --> 00:26:53.740 So these are all very important guys, 00:26:53.740 --> 00:26:54.980 so beginner as a beginner. 00:26:54.980 --> 00:26:57.420 So please try to understand this. 00:26:57.420 --> 00:27:01.300 Very simple terms, software quality. 00:27:01.300 --> 00:27:03.140 So why we are discussing software quality 00:27:03.140 --> 00:27:05.900 because our ultimate goal of testing is 00:27:05.900 --> 00:27:10.380 to deliver the quality product to the customer or client. 00:27:10.380 --> 00:27:12.180 But what is software quality? 00:27:12.180 --> 00:27:13.460 So software quality, 00:27:13.460 --> 00:27:17.140 if I say a product or software is very quality product, 00:27:17.140 --> 00:27:21.340 I can say based on certain parameters, okay? 00:27:21.340 --> 00:27:23.580 So what are those parameters? 00:27:23.580 --> 00:27:27.500 So the first parameter is bug free. 00:27:27.500 --> 00:27:29.020 So based on these parameters, 00:27:29.020 --> 00:27:33.100 we can say our software is quality software or not. 00:27:33.100 --> 00:27:36.280 The first parameter is bug free. 00:27:36.280 --> 00:27:38.220 What is meant by bug free? 00:27:38.220 --> 00:27:41.780 So our software should not have any bugs, 00:27:41.780 --> 00:27:46.780 but 900% software, 100% software will not be bug free guys, 00:27:48.040 --> 00:27:50.220 but at least one or 2%, there will be bugs, 00:27:50.220 --> 00:27:52.140 but they are very, very minor bugs. 00:27:52.180 --> 00:27:53.860 The customer process or task 00:27:53.860 --> 00:27:55.900 will not be impacted by those bugs. 00:27:55.900 --> 00:27:58.400 But 100% quality product 00:27:58.400 --> 00:28:03.400 cannot be always possible to release to the customer, okay? 00:28:04.500 --> 00:28:06.380 It is not at all possible. 00:28:06.380 --> 00:28:08.420 At least one or 2% bugs will be there, 00:28:08.420 --> 00:28:10.720 but they are very minor bugs. 00:28:10.720 --> 00:28:12.820 We can ignore those bugs, okay? 00:28:12.820 --> 00:28:15.100 And the final thing, 00:28:15.100 --> 00:28:16.380 the objective of testing is 00:28:16.380 --> 00:28:18.540 to release the quality product to the client. 00:28:18.540 --> 00:28:21.160 But what is the software quality? 00:28:21.160 --> 00:28:23.960 So software quality can be measured. 00:28:23.960 --> 00:28:26.960 So later I'll tell you what are the metrics we have to use, 00:28:26.960 --> 00:28:30.480 but mainly we can say software is a quality 00:28:30.480 --> 00:28:32.800 based on certain parameters. 00:28:32.800 --> 00:28:35.840 So the first parameter will be the bug free. 00:28:35.840 --> 00:28:38.900 The software should not contain any bugs. 00:28:38.900 --> 00:28:40.200 That's the first thing. 00:28:40.200 --> 00:28:43.000 Second thing, delivered on time. 00:28:43.000 --> 00:28:45.000 So I said before, 00:28:45.000 --> 00:28:48.660 when an IT company is approaching the IT company, 00:28:48.660 --> 00:28:51.940 so some X company is approaching the IT company, 00:28:51.940 --> 00:28:55.900 they have some budget and they have some time also. 00:28:55.900 --> 00:28:58.700 Within that time, we have to develop and test the software 00:28:58.700 --> 00:29:02.240 and we have to deliver the software to the company, right? 00:29:02.240 --> 00:29:06.140 And they spend some budget and also time. 00:29:06.140 --> 00:29:08.260 Suppose what happens, 00:29:08.260 --> 00:29:10.380 suppose development and testing is taken 00:29:10.380 --> 00:29:14.120 more than the committed time, then what happens? 00:29:14.120 --> 00:29:16.820 We have to pay to the staff also, right? 00:29:16.820 --> 00:29:19.660 We have to spend a lot of time, right? 00:29:19.660 --> 00:29:23.740 So what happens if you're not able to deliver the software 00:29:23.740 --> 00:29:28.140 within the time or on time, that is also considerable 00:29:28.140 --> 00:29:31.220 because the customer has to spend more budget 00:29:31.220 --> 00:29:33.020 because automatically the time is increased, 00:29:33.020 --> 00:29:35.420 increase like duration is increased automatically. 00:29:35.420 --> 00:29:37.940 You have to spend money on the staff also, right? 00:29:37.940 --> 00:29:39.780 Employees like developers, testers, 00:29:39.780 --> 00:29:41.440 who is working on that project, 00:29:41.440 --> 00:29:43.320 we have to pay to them, right? 00:29:43.320 --> 00:29:46.020 If suppose time is increased. 00:29:46.020 --> 00:29:48.040 So deliver on time. 00:29:48.040 --> 00:29:49.460 So not only back free, 00:29:49.460 --> 00:29:52.500 we should also deliver the software on time. 00:29:52.500 --> 00:29:54.180 That is one parameter. 00:29:54.180 --> 00:29:56.420 The third parameter is within the budget. 00:29:56.420 --> 00:30:00.620 Sometimes some organization will have some budget 00:30:00.620 --> 00:30:03.440 and once you start developing and testing, 00:30:03.440 --> 00:30:05.580 the budget will be increased. 00:30:05.580 --> 00:30:07.380 That should not be happen. 00:30:07.380 --> 00:30:12.380 So whatever the time and budget they have mentioned initially, 00:30:12.500 --> 00:30:15.940 we have to deliver the software within that particular time 00:30:16.860 --> 00:30:18.660 and within that particular budget. 00:30:18.660 --> 00:30:22.060 And then only the customer will say our product 00:30:22.060 --> 00:30:25.860 or our software is quality and not only back free 00:30:25.860 --> 00:30:29.180 and it is also depends on other factors. 00:30:29.180 --> 00:30:31.060 And it should be delivered on time 00:30:31.060 --> 00:30:33.140 and it should be within the budget. 00:30:33.140 --> 00:30:36.260 And finally, it should meet the requirements 00:30:36.260 --> 00:30:39.140 or expectations from the customer, okay? 00:30:39.140 --> 00:30:41.020 So whatever software we develop, 00:30:41.020 --> 00:30:43.860 that should fulfill the requirement of customers. 00:30:43.860 --> 00:30:46.620 So that's the first and most important task. 00:30:46.620 --> 00:30:48.340 Customers set some requirement 00:30:48.340 --> 00:30:50.140 and we have developed and tested software. 00:30:50.140 --> 00:30:53.180 It should work according to their requirement. 00:30:53.180 --> 00:30:54.660 So this is very, very important. 00:30:54.660 --> 00:30:57.060 It should meet the requirements 00:30:57.060 --> 00:31:00.020 or expectations from the customer. 00:31:00.020 --> 00:31:02.740 And finally, it should be maintainable. 00:31:02.740 --> 00:31:04.340 Maintainable means what? 00:31:04.340 --> 00:31:07.540 After installing our software in the customer environment, 00:31:07.540 --> 00:31:09.780 they should be able to work with that. 00:31:09.780 --> 00:31:11.860 And if there is any small issues, 00:31:11.860 --> 00:31:14.220 they should be able to resolve themself 00:31:14.220 --> 00:31:17.100 and should be user friendly, okay? 00:31:17.100 --> 00:31:20.020 In that case, we can say it is a maintainable. 00:31:20.020 --> 00:31:23.180 So when I deliver a software to the customer, 00:31:23.180 --> 00:31:27.340 if our software is fulfilling all these parameters, 00:31:27.340 --> 00:31:29.980 we can say which is a quality product 00:31:29.980 --> 00:31:33.420 or which is a quality software. 00:31:33.420 --> 00:31:36.460 And to make sure all these things should be there, 00:31:36.460 --> 00:31:38.980 we have to conduct our testing. 00:31:38.980 --> 00:31:40.580 So the main intention of testing 00:31:40.860 --> 00:31:43.740 is to deliver the quality product to the customer. 00:31:43.740 --> 00:31:46.940 And when we say our product or software is a quality, 00:31:46.940 --> 00:31:48.300 having some quality means 00:31:48.300 --> 00:31:50.980 which we have to follow these parameters. 00:31:50.980 --> 00:31:54.460 It should be, it doesn't have any bugs. 00:31:54.460 --> 00:31:58.100 You can say bug free and it should be delivered on time. 00:31:58.100 --> 00:32:00.940 It should be delivered within the budget 00:32:00.940 --> 00:32:03.780 and it should also meet customer requirements 00:32:03.780 --> 00:32:06.140 or it should work according to the customer requirements 00:32:06.140 --> 00:32:07.380 or expectation. 00:32:07.380 --> 00:32:09.580 And finally, it should be maintainable 00:32:09.580 --> 00:32:11.780 in their environment, okay? 00:32:11.780 --> 00:32:14.620 So these are the main quality standards. 00:32:14.620 --> 00:32:16.780 So if I say software is a quality software, 00:32:16.780 --> 00:32:20.540 then we have to follow these parameters, okay? 00:32:20.540 --> 00:32:24.540 Now here, I'm just using some terms continuous 00:32:24.540 --> 00:32:26.900 like project and product. 00:32:26.900 --> 00:32:28.820 And these terms are very, very important. 00:32:28.820 --> 00:32:31.180 We need to understand as a beginner. 00:32:31.180 --> 00:32:33.100 So what is project and product? 00:32:34.260 --> 00:32:35.380 Project and product. 00:32:35.380 --> 00:32:37.380 So people are sometimes using project. 00:32:37.380 --> 00:32:38.740 Sometimes they say product. 00:32:38.740 --> 00:32:40.780 What is project and product? 00:32:40.780 --> 00:32:42.140 And even in the companies also, 00:32:42.140 --> 00:32:43.420 there are two kinds of companies 00:32:43.420 --> 00:32:47.060 like service-based companies, product-based companies. 00:32:47.060 --> 00:32:49.540 Similarly, we have a project and products. 00:32:49.540 --> 00:32:51.260 So what exactly project means? 00:32:51.260 --> 00:32:53.260 What exactly product means? 00:32:53.260 --> 00:32:56.500 There is a small difference between project and product. 00:32:56.500 --> 00:32:58.260 So you have to understand these terminology 00:32:58.260 --> 00:33:02.300 which is very important before going to testing part. 00:33:03.300 --> 00:33:04.140 Okay. 00:33:05.140 --> 00:33:09.660 Let me tell you what is project and product. 00:33:09.660 --> 00:33:10.780 Project and product. 00:33:11.900 --> 00:33:14.180 Okay, so let me write some notes here. 00:33:15.300 --> 00:33:17.100 Very small difference, guys. 00:33:17.100 --> 00:33:20.700 The first one is if software application. 00:33:20.700 --> 00:33:23.900 So whatever software we developed and tested, 00:33:23.900 --> 00:33:28.060 which is for specific customer based on the requirement, 00:33:28.060 --> 00:33:29.860 then it is called as a project. 00:33:29.940 --> 00:33:31.140 Means what? 00:33:31.140 --> 00:33:32.860 We approach a customer. 00:33:32.860 --> 00:33:35.460 Customer will give you specific customer 00:33:35.460 --> 00:33:38.060 and customer will give you the requirement. 00:33:38.060 --> 00:33:40.140 Customer will spend some budget. 00:33:40.140 --> 00:33:41.420 They will give the requirement 00:33:41.420 --> 00:33:42.940 and we will develop the software 00:33:42.940 --> 00:33:45.820 according to that particular customer. 00:33:45.820 --> 00:33:49.140 So whatever software we developed and tested 00:33:49.140 --> 00:33:52.500 according to the specific customer requirement, 00:33:52.500 --> 00:33:54.780 we can simply say that is a project. 00:33:55.780 --> 00:33:57.100 Project means what? 00:33:57.140 --> 00:33:59.420 The application or a software 00:33:59.420 --> 00:34:03.180 which is developed for specific customer requirement. 00:34:03.180 --> 00:34:07.380 And that software will be used by the customer himself. 00:34:07.380 --> 00:34:09.220 Others cannot be used. 00:34:09.220 --> 00:34:13.940 Okay, suppose I develop a software for an organization 00:34:13.940 --> 00:34:17.580 and only that organization can be used in that software 00:34:17.580 --> 00:34:20.180 and other organizations cannot be used. 00:34:20.180 --> 00:34:22.620 And those things called as a project. 00:34:22.620 --> 00:34:25.100 A project is a software application 00:34:25.100 --> 00:34:28.020 which is developed for specific customer 00:34:28.020 --> 00:34:32.260 based on the requirement, then it is called project. 00:34:32.260 --> 00:34:34.220 Okay, if the software application is developed 00:34:34.220 --> 00:34:38.220 for specific customer based on the requirement, 00:34:38.220 --> 00:34:40.020 based on the customer requirement, 00:34:40.020 --> 00:34:42.100 then it is called as a project. 00:34:42.100 --> 00:34:45.300 And only the specific customer can use this. 00:34:45.300 --> 00:34:47.700 But what is a product means? 00:34:47.700 --> 00:34:50.140 If the software application is developed 00:34:50.140 --> 00:34:53.620 for multiple customers based on market requirement, 00:34:53.620 --> 00:34:55.740 then it is called as a product. 00:34:55.740 --> 00:34:57.060 That means what? 00:34:57.060 --> 00:34:59.900 We will collect the requirements from the market, 00:34:59.900 --> 00:35:02.140 not from the specific customer. 00:35:02.140 --> 00:35:04.700 Okay, what is exactly market requirements? 00:35:04.700 --> 00:35:08.420 We will analyze them and we will develop a software. 00:35:08.420 --> 00:35:09.900 Then we'll deliver it to the market. 00:35:09.900 --> 00:35:10.860 And number of people, 00:35:10.860 --> 00:35:13.460 number of customers are using that software. 00:35:13.460 --> 00:35:16.380 In that case, which is called as a product. 00:35:16.380 --> 00:35:17.780 A product is a software 00:35:17.780 --> 00:35:20.940 which can be used by multiple customers. 00:35:20.940 --> 00:35:22.260 Project is a software 00:35:22.260 --> 00:35:25.180 which can be used by specific customer. 00:35:25.180 --> 00:35:27.340 Okay, project is a software 00:35:27.340 --> 00:35:29.260 which can be used by specific customer. 00:35:29.260 --> 00:35:32.500 We are developing it for specific customer requirement. 00:35:32.500 --> 00:35:34.380 Whereas product is a software 00:35:34.380 --> 00:35:36.860 which we can develop for market 00:35:36.860 --> 00:35:39.060 or based on market requirements. 00:35:39.060 --> 00:35:40.740 So what are the examples? 00:35:40.740 --> 00:35:43.260 For example, there is a bank. 00:35:43.260 --> 00:35:46.420 Okay, and I have developed a software 00:35:46.420 --> 00:35:48.940 which can do all the transactions automated 00:35:49.900 --> 00:35:50.940 in that particular bank. 00:35:50.940 --> 00:35:52.620 So that is project 00:35:52.620 --> 00:35:55.460 because that application or software can be used 00:35:55.460 --> 00:35:58.180 only within that bank, within that particular organization. 00:35:58.180 --> 00:35:59.820 Others cannot be used. 00:35:59.820 --> 00:36:02.220 So they are called projects. 00:36:02.220 --> 00:36:03.700 And what is a product means? 00:36:03.700 --> 00:36:05.620 Everyone should able to do that. 00:36:05.620 --> 00:36:07.780 So for example, in our mobile, 00:36:07.780 --> 00:36:09.780 there are so many apps will be there. 00:36:09.780 --> 00:36:10.940 Let's say WhatsApp. 00:36:10.940 --> 00:36:14.140 So WhatsApp is an application, a software application 00:36:14.140 --> 00:36:16.020 and everybody using it. 00:36:16.020 --> 00:36:18.340 So that is an example of product. 00:36:18.340 --> 00:36:22.100 And suppose our Microsoft products, Word, Excel, PowerPoint. 00:36:22.100 --> 00:36:25.620 So these are all the softwares and everybody using them 00:36:25.620 --> 00:36:27.940 and how they develop those softwares 00:36:27.940 --> 00:36:30.100 based on the customer requirement. 00:36:30.100 --> 00:36:32.020 And they'll analyze the requirement from the market, 00:36:32.020 --> 00:36:33.500 from the people, 00:36:33.500 --> 00:36:35.340 and they'll consolidate all the requirements. 00:36:35.340 --> 00:36:37.700 Accordingly, they develop the software 00:36:37.700 --> 00:36:40.100 and that comes under the product. 00:36:40.100 --> 00:36:42.700 So understand this difference, very, very important, 00:36:42.700 --> 00:36:44.420 the project and the product. 00:36:44.420 --> 00:36:46.900 So project is something which is developed 00:36:47.900 --> 00:36:51.540 for specific customer based on their requirement. 00:36:51.540 --> 00:36:54.220 And the product is a software which is developed 00:36:54.220 --> 00:36:56.220 based on the market requirements 00:36:56.220 --> 00:36:57.660 and everybody can use it. 00:36:58.540 --> 00:37:00.660 Okay, that is a product. 00:37:00.660 --> 00:37:02.460 Now, similarly, the companies also, 00:37:02.460 --> 00:37:04.100 two types of companies will be there. 00:37:04.100 --> 00:37:07.220 Like service-based companies and product-based companies. 00:37:07.220 --> 00:37:09.380 Service-based companies are what? 00:37:09.380 --> 00:37:11.980 Most of the times they will deal with the projects. 00:37:11.980 --> 00:37:14.060 So they will work for specific customers. 00:37:14.060 --> 00:37:16.500 They will work for specific clients. 00:37:16.500 --> 00:37:18.140 And those companies are comes under 00:37:18.140 --> 00:37:23.140 service-based companies like TCS, Accenture. 00:37:23.180 --> 00:37:25.460 Okay, so these companies are comes under 00:37:25.460 --> 00:37:28.100 the service-based companies or Infosys. 00:37:28.100 --> 00:37:30.020 These are all service-based companies 00:37:30.020 --> 00:37:32.740 and they will work for any number of customers 00:37:32.740 --> 00:37:36.180 throughout the world and product-based companies. 00:37:36.180 --> 00:37:38.180 The other type of companies are we have product. 00:37:38.180 --> 00:37:39.660 Product means what? 00:37:39.660 --> 00:37:41.380 A software which is developed 00:37:41.380 --> 00:37:43.300 based on the market requirements. 00:37:43.300 --> 00:37:44.980 So for example, Google. 00:37:44.980 --> 00:37:46.740 So Google is a product-based companies. 00:37:46.740 --> 00:37:48.900 There are so many Google products out there. 00:37:48.900 --> 00:37:51.860 Like Google Max, Google Drive, Gmail. 00:37:51.860 --> 00:37:53.940 These are all Google products. 00:37:53.940 --> 00:37:55.020 And Microsoft. 00:37:55.020 --> 00:37:56.980 Microsoft is also product-based company. 00:37:56.980 --> 00:37:59.220 So they will develop the multiple products 00:37:59.220 --> 00:38:02.820 on Microsoft products like MS Word, MS Office. 00:38:02.820 --> 00:38:05.660 These are all examples of Microsoft products. 00:38:05.660 --> 00:38:06.500 And Oracle. 00:38:06.500 --> 00:38:09.100 Oracle is also product-based company. 00:38:09.100 --> 00:38:11.780 Okay, so there are different type of companies 00:38:11.780 --> 00:38:14.580 like service-based companies and product-based companies. 00:38:15.580 --> 00:38:20.100 Okay, so that is all about project and product. 00:38:24.420 --> 00:38:28.420 Okay, and finally, why we need testing. 00:38:28.420 --> 00:38:30.620 We understood what is project and product 00:38:30.620 --> 00:38:31.860 and why we need to testing. 00:38:31.860 --> 00:38:32.980 So this we already covered. 00:38:32.980 --> 00:38:34.860 Why do we need testing? 00:38:34.860 --> 00:38:37.300 The ultimate goal is to release 00:38:37.300 --> 00:38:38.940 a quality product to the customer. 00:38:38.940 --> 00:38:41.940 So that's the reason we have to conduct our testing. 00:38:41.940 --> 00:38:44.060 And we have to ensure the software 00:38:45.020 --> 00:38:46.580 should be bug-free 00:38:46.580 --> 00:38:50.420 and it should meet the customer requirements, right? 00:38:50.420 --> 00:38:52.940 And also it should work according 00:38:52.940 --> 00:38:55.100 to the customer expectation. 00:38:55.100 --> 00:38:59.060 So these are the main things which you have to ensure 00:38:59.060 --> 00:39:00.420 while conducting the testing. 00:39:00.420 --> 00:39:01.900 So without testing, what will happen 00:39:01.900 --> 00:39:03.460 if I don't conduct any testing? 00:39:03.460 --> 00:39:04.660 Then what happens? 00:39:04.660 --> 00:39:06.980 Definitely the software contains the bugs. 00:39:06.980 --> 00:39:09.420 And once the customer has started using the software, 00:39:09.420 --> 00:39:12.940 definitely they'll first aid it with that. 00:39:12.980 --> 00:39:15.700 Okay, so that's the reason we have to conduct our testing. 00:39:15.700 --> 00:39:19.460 So we have to ensure the software doesn't have any bugs 00:39:19.460 --> 00:39:21.660 and we have to ensure our software is working 00:39:21.660 --> 00:39:23.860 according to customer requirement or not. 00:39:23.860 --> 00:39:26.780 So these are the two main things which we need to focus 00:39:26.780 --> 00:39:28.460 while conducting the software testing. 00:39:28.460 --> 00:39:29.500 So why do we need testing? 00:39:29.500 --> 00:39:32.340 Means we have to deliver the quality product 00:39:32.340 --> 00:39:33.180 to the customer. 00:39:33.180 --> 00:39:34.740 So that's the main intention. 00:39:36.220 --> 00:39:40.020 Okay, so finally, I'll just explain 00:39:40.020 --> 00:39:43.220 about these terms, error, bug and failure. 00:39:43.220 --> 00:39:45.460 So a lot of people exactly don't know the difference 00:39:45.460 --> 00:39:48.260 between these three and which is very important 00:39:48.260 --> 00:39:49.460 to know that. 00:39:49.460 --> 00:39:51.180 Error, bug and failure. 00:39:51.180 --> 00:39:53.100 Most of the people will think bug is nothing 00:39:53.100 --> 00:39:55.300 but some error or some failure. 00:39:55.300 --> 00:39:58.420 But there is a small technical differences there. 00:39:58.420 --> 00:40:01.220 Error, bug and failure. 00:40:01.220 --> 00:40:03.780 Now let me tell you what exactly error means, 00:40:03.780 --> 00:40:06.860 what exactly bug means and failure means. 00:40:06.860 --> 00:40:09.420 Error is nothing but a human mistake. 00:40:09.420 --> 00:40:11.580 If you do some task, right? 00:40:11.580 --> 00:40:13.340 If you do some mistake somewhere, 00:40:13.340 --> 00:40:16.220 that is basically called as an error, okay? 00:40:16.220 --> 00:40:18.260 It is an incorrect human action. 00:40:18.260 --> 00:40:20.700 We can simply say an incorrect human action 00:40:20.700 --> 00:40:22.580 is called an error. 00:40:22.580 --> 00:40:26.620 So suppose as a developer, he's writing some program 00:40:26.620 --> 00:40:29.580 and he has committed some, by mistake, 00:40:29.580 --> 00:40:33.860 he has typed something else and that is causing the error. 00:40:33.860 --> 00:40:38.260 So error is basically human mistake, okay? 00:40:38.260 --> 00:40:40.820 And bug, what is the bug? 00:40:40.820 --> 00:40:43.620 Bug is nothing but it is a deviation 00:40:43.620 --> 00:40:45.900 of expecting actual results. 00:40:45.900 --> 00:40:49.620 So for example, there is a simple, 00:40:49.620 --> 00:40:53.060 let's say login screen in your application, right? 00:40:53.060 --> 00:40:56.500 So when I provide a valid username and valid password, 00:40:56.500 --> 00:40:58.620 I should able to log into my application. 00:40:58.620 --> 00:41:00.420 Let's say Gmail application. 00:41:01.300 --> 00:41:02.940 So how to log into Gmail? 00:41:02.940 --> 00:41:05.620 I have to provide the valid username and valid password. 00:41:05.620 --> 00:41:08.020 So when I provide valid username and valid password, 00:41:08.020 --> 00:41:10.260 then I should able to successfully log in. 00:41:11.300 --> 00:41:13.140 But, and similarly, if I want to pass, 00:41:13.140 --> 00:41:16.340 let's say if I pass invalid username and invalid password, 00:41:16.340 --> 00:41:18.580 I should not able to log in. 00:41:18.580 --> 00:41:20.740 But what happening, even though if I providing 00:41:20.740 --> 00:41:22.660 invalid username and password, 00:41:22.660 --> 00:41:25.540 an application is allowing me to log in. 00:41:25.540 --> 00:41:28.060 Then that is a mismatch, right? 00:41:28.060 --> 00:41:31.420 What you are expecting by pass a validator, 00:41:31.420 --> 00:41:32.740 the login should be successful. 00:41:32.740 --> 00:41:35.700 When I pass invalidator, login should not be successful. 00:41:35.700 --> 00:41:37.300 That is your expectation. 00:41:37.300 --> 00:41:39.660 But how actually application is working? 00:41:39.660 --> 00:41:43.460 If I pass validator, okay, it is successfully login. 00:41:43.460 --> 00:41:45.660 But even if you pass invalidator, 00:41:45.660 --> 00:41:47.540 still it is accepting the login. 00:41:47.540 --> 00:41:49.380 So that is a mismatch. 00:41:49.380 --> 00:41:53.500 What is our expectation and how the application is working? 00:41:53.500 --> 00:41:55.740 So the deviation from expected behavior 00:41:55.740 --> 00:41:58.540 and actual behavior is basically called as a bug, 00:41:59.420 --> 00:42:01.940 and which is also called as a defect. 00:42:01.940 --> 00:42:03.580 The terminologies are different guys. 00:42:03.580 --> 00:42:06.260 The concept is same, okay? 00:42:06.260 --> 00:42:09.340 So error is a human mistake. 00:42:09.340 --> 00:42:11.540 Bug and defect is something different. 00:42:11.540 --> 00:42:13.460 So this is related to application. 00:42:13.460 --> 00:42:16.100 Something is not working in our application 00:42:16.100 --> 00:42:19.820 according to your expectation or your requirement 00:42:19.820 --> 00:42:21.420 or customer requirement, 00:42:21.420 --> 00:42:26.220 which is basically called as a bug or defect, okay? 00:42:26.220 --> 00:42:28.100 And the third thing is a failure. 00:42:28.100 --> 00:42:29.620 What is failure? 00:42:29.620 --> 00:42:31.620 Suppose we develop some software, 00:42:31.620 --> 00:42:34.620 we have tested and everything is working fine. 00:42:34.620 --> 00:42:35.740 And finally, what you will do? 00:42:35.740 --> 00:42:38.220 We will deliver the software to the customer. 00:42:38.220 --> 00:42:39.580 And we have installed the software 00:42:39.580 --> 00:42:41.260 in the customer environment, 00:42:41.260 --> 00:42:43.740 and they started using the software. 00:42:43.740 --> 00:42:46.740 And after a few days, then what happens? 00:42:46.740 --> 00:42:51.740 There is something which is not working in the software, okay? 00:42:51.940 --> 00:42:54.740 And something basically got failed, okay? 00:42:54.740 --> 00:42:56.820 So whatever the customer wanted to do, 00:42:56.820 --> 00:42:58.820 some transaction that is got failed. 00:42:59.780 --> 00:43:03.620 So this is basically end user action, okay? 00:43:03.620 --> 00:43:06.860 So the deviation identified by end user 00:43:06.860 --> 00:43:08.900 while using the software, 00:43:08.900 --> 00:43:11.540 the deviation identified by the end user 00:43:12.780 --> 00:43:16.260 while working with the software is called as a failure. 00:43:16.260 --> 00:43:21.060 Again, I'm repeating, error is a human mistake, okay? 00:43:21.060 --> 00:43:22.540 While writing the program, 00:43:22.540 --> 00:43:25.620 developer will do a lot of mistakes. 00:43:25.620 --> 00:43:27.460 All these comes under the errors. 00:43:28.500 --> 00:43:30.900 And while testing the software, 00:43:30.900 --> 00:43:33.380 we are checking the functionality of our application, 00:43:34.140 --> 00:43:34.980 whether it is working according 00:43:34.980 --> 00:43:36.860 to customer requirement or not. 00:43:36.860 --> 00:43:38.300 If something is not working 00:43:38.300 --> 00:43:39.860 according to customer requirement, 00:43:39.860 --> 00:43:42.220 which is comes under the bug or defect. 00:43:43.300 --> 00:43:45.660 And after releasing the product to the customer 00:43:45.660 --> 00:43:47.300 and the customer is using the software, 00:43:47.300 --> 00:43:50.380 or as a user, I'm working with the software 00:43:50.380 --> 00:43:51.980 in the real environment, 00:43:51.980 --> 00:43:53.420 where I found some bugs, 00:43:53.420 --> 00:43:54.700 where I found some mismatch, 00:43:54.700 --> 00:43:57.100 where I found something is not working, 00:43:57.100 --> 00:43:59.340 that is comes under the failure. 00:43:59.340 --> 00:44:02.660 And the error normally committed by the developers, 00:44:02.660 --> 00:44:05.940 bugs and defects will be identified by the testers 00:44:05.940 --> 00:44:08.300 at the time of testing phase. 00:44:08.300 --> 00:44:11.460 And failures will be there in the production environment. 00:44:11.460 --> 00:44:14.820 Production means in the sense, customer environment. 00:44:14.820 --> 00:44:17.380 And where if the customer is identified something 00:44:17.380 --> 00:44:18.780 or which is not working properly, 00:44:18.780 --> 00:44:21.700 that we can call it as a failure, okay? 00:44:21.700 --> 00:44:24.060 So the basic difference between error, 00:44:24.060 --> 00:44:27.620 bug or defect or failure. 00:44:27.620 --> 00:44:29.740 Okay, just understand these technologies, 00:44:29.740 --> 00:44:32.380 which is very, very important, okay? 00:44:32.380 --> 00:44:34.100 So most frequently I use these terms, 00:44:34.100 --> 00:44:36.940 a bug or defect, both are same, 00:44:36.940 --> 00:44:41.940 but error is a different, failure is a different, okay? 00:44:42.060 --> 00:44:43.780 So these are some basics guys. 00:44:43.780 --> 00:44:46.540 So why the software has bugs? 00:44:46.540 --> 00:44:48.500 Let me discuss one more point. 00:44:48.500 --> 00:44:49.900 So why the software has bugs? 00:44:49.900 --> 00:44:53.220 So far we are discussing like why, what is software? 00:44:53.220 --> 00:44:54.700 What is software testing? 00:44:54.700 --> 00:44:57.740 And why we need to conduct the testing, right? 00:44:57.740 --> 00:44:59.700 But why the software has bugs? 00:44:59.700 --> 00:45:01.540 So when I develop some software, 00:45:01.940 --> 00:45:04.980 it contains some bugs, but why we should have bugs? 00:45:04.980 --> 00:45:07.020 There are a lot of reasons out there. 00:45:07.020 --> 00:45:08.620 Why the software is having bugs? 00:45:08.620 --> 00:45:10.260 There are a lot of reasons. 00:45:10.260 --> 00:45:12.540 The mainly five reasons guys. 00:45:12.540 --> 00:45:14.620 The mainly three, five reasons we can say. 00:45:16.260 --> 00:45:21.140 Why the software has bugs? 00:45:22.460 --> 00:45:23.700 So why the software has bugs? 00:45:23.700 --> 00:45:25.460 So mainly five reasons. 00:45:25.460 --> 00:45:30.460 The first reason is miscommunication or no communication. 00:45:31.580 --> 00:45:33.140 Means what? 00:45:33.140 --> 00:45:35.100 There is no proper communication 00:45:35.100 --> 00:45:38.100 between the developers and testers. 00:45:38.100 --> 00:45:39.020 Means what? 00:45:39.020 --> 00:45:41.180 Developer will develop something 00:45:41.180 --> 00:45:44.180 and tester will expecting something else. 00:45:44.180 --> 00:45:46.940 Or requirement is having some functionality 00:45:46.940 --> 00:45:49.780 and developer is implemented or develop some other things, 00:45:49.780 --> 00:45:53.300 some other functionality and tester is expecting something. 00:45:53.300 --> 00:45:57.180 So there will be gap between the documentation, 00:45:57.180 --> 00:45:59.140 development and testing. 00:45:59.140 --> 00:46:02.020 So that is basically comes on the miscommunication 00:46:02.020 --> 00:46:03.700 or no communication. 00:46:03.700 --> 00:46:06.500 So that is causing the software bugs. 00:46:06.500 --> 00:46:09.380 So the requirement should be very, very clear. 00:46:09.380 --> 00:46:12.340 And according to the developer should develop the software. 00:46:12.340 --> 00:46:15.060 And according to the tester also should test the software. 00:46:15.060 --> 00:46:17.660 Everybody should be in the proper sync. 00:46:17.660 --> 00:46:20.700 And then only we can deliver the quality product 00:46:20.700 --> 00:46:21.860 to the customer. 00:46:21.860 --> 00:46:23.380 If there is any miscommunication, 00:46:23.380 --> 00:46:25.980 suppose developer is develop something 00:46:26.020 --> 00:46:29.380 and which is not communicated with the testing team. 00:46:29.380 --> 00:46:30.220 Then what happens? 00:46:30.220 --> 00:46:32.140 Tester will think in different way 00:46:32.140 --> 00:46:34.420 and they do their testing their own way. 00:46:34.420 --> 00:46:37.540 And tester also needs some developer's input. 00:46:37.540 --> 00:46:40.540 Even developer also needs some input from the testing. 00:46:42.100 --> 00:46:45.820 So everybody in the team should communicate properly 00:46:45.820 --> 00:46:50.420 and that can avoid the bugs in our software. 00:46:50.420 --> 00:46:52.860 That is one major reason. 00:46:52.860 --> 00:46:55.860 And the second reason is the complexity of the software. 00:46:55.860 --> 00:46:58.300 Suppose the software is very complex. 00:46:58.300 --> 00:47:00.820 It is almost three, four, five years project. 00:47:00.820 --> 00:47:03.980 And so many people are working like N number of developers, 00:47:03.980 --> 00:47:06.740 N number of testers, automation people, 00:47:06.740 --> 00:47:08.180 so much complexities. 00:47:08.180 --> 00:47:11.780 And N number of modules are there, sub-modules are there. 00:47:11.780 --> 00:47:14.860 In that case also we can miss some bugs, okay? 00:47:14.860 --> 00:47:16.700 Like integration testing, unit testing. 00:47:16.700 --> 00:47:18.780 There are lot of testings we will conduct. 00:47:18.780 --> 00:47:21.740 And somewhere we may miss something else. 00:47:21.740 --> 00:47:25.300 So that is again causing the bugs in later stages. 00:47:25.300 --> 00:47:27.660 So suppose in some cases in sometimes 00:47:27.660 --> 00:47:30.100 even if the software is very complex, 00:47:30.100 --> 00:47:34.540 there are some chances we have some bugs in our software. 00:47:34.540 --> 00:47:37.580 And the third reason is programming errors. 00:47:37.580 --> 00:47:39.740 And most of the times programming errors 00:47:39.740 --> 00:47:42.700 in the sense it is a responsibility of the developers. 00:47:42.700 --> 00:47:45.260 So developers will write the program, 00:47:45.260 --> 00:47:47.420 but the program is working fine. 00:47:47.420 --> 00:47:50.020 But whatever output is producing is not correct. 00:47:50.940 --> 00:47:52.820 That comes out of the programming error. 00:47:52.820 --> 00:47:55.460 So for example, developer has written a program 00:47:55.460 --> 00:47:56.460 to add two numbers. 00:47:56.460 --> 00:47:59.220 Let us say some example, what is programming error? 00:47:59.220 --> 00:48:02.780 So developer is written some programming, some program. 00:48:02.780 --> 00:48:04.260 And when I pass two inputs, 00:48:04.260 --> 00:48:05.740 let's say I have passed the two numbers, 00:48:05.740 --> 00:48:07.940 let's say two comma three. 00:48:07.940 --> 00:48:09.780 And what is the output I'm expecting? 00:48:09.780 --> 00:48:12.780 Two plus three, five I'm expecting, okay? 00:48:12.780 --> 00:48:15.820 And this way the program is written the code. 00:48:15.820 --> 00:48:18.860 But when I run the program, what happens? 00:48:18.860 --> 00:48:22.100 When I pass this input, which is giving the output, 00:48:22.100 --> 00:48:23.380 but something else, 00:48:23.380 --> 00:48:25.820 let us say it is giving something called 10, 00:48:25.820 --> 00:48:28.060 the program is running perfectly fine. 00:48:28.060 --> 00:48:29.820 But whatever the output I'm getting 00:48:29.820 --> 00:48:32.020 from the program is incorrect. 00:48:32.020 --> 00:48:33.860 So why this is gone? 00:48:33.860 --> 00:48:35.500 Why we are getting this incorrect error 00:48:35.500 --> 00:48:37.820 because of programming error. 00:48:37.820 --> 00:48:42.500 So the developers will take care of this programming errors. 00:48:42.500 --> 00:48:44.540 Okay, so that is one thing. 00:48:44.540 --> 00:48:48.020 And the next one is a frequently changing requirements. 00:48:48.020 --> 00:48:50.660 This is a major cause. 00:48:50.660 --> 00:48:52.700 So sometimes what happens is, 00:48:52.700 --> 00:48:54.620 like initially the customer will give you 00:48:54.620 --> 00:48:57.180 a few number of requirements, okay? 00:48:57.180 --> 00:48:58.900 And okay, we have started, 00:48:58.900 --> 00:49:00.380 we have understood all the requirement, 00:49:00.380 --> 00:49:02.580 we have started development. 00:49:02.580 --> 00:49:04.660 And in the middle of the development, 00:49:04.660 --> 00:49:09.660 sometime again customer come back and change their requirement. 00:49:09.820 --> 00:49:12.420 But initially they said something after some time 00:49:12.420 --> 00:49:14.900 after developing or during the testing phase, 00:49:14.900 --> 00:49:18.540 they'll come back and ask us to change some requirement. 00:49:18.540 --> 00:49:21.100 And that is also causing the bugs. 00:49:21.100 --> 00:49:22.620 And sometimes it may possible 00:49:22.620 --> 00:49:25.740 or it may not be possible to change the application 00:49:25.740 --> 00:49:27.380 according to their requirement. 00:49:27.380 --> 00:49:30.820 So even if a customer requirements are frequently changing, 00:49:30.820 --> 00:49:34.660 that is also sometimes causing the bugs. 00:49:34.660 --> 00:49:37.740 And the last reason, lack of skilled testers. 00:49:37.740 --> 00:49:40.900 If the tester doesn't have proper skill set, 00:49:40.900 --> 00:49:43.980 definitely he will miss the bugs. 00:49:43.980 --> 00:49:46.740 So if the tester is not identified the bugs, 00:49:46.740 --> 00:49:48.000 then what happens? 00:49:48.000 --> 00:49:50.200 That will go to the next level 00:49:50.200 --> 00:49:52.420 and that will come again in the production. 00:49:52.420 --> 00:49:55.740 The customer will face that bug, okay? 00:49:55.740 --> 00:49:57.060 So that is a problem. 00:49:57.060 --> 00:50:00.460 So the tester should have proper skill set. 00:50:00.460 --> 00:50:02.600 That is very, very important. 00:50:02.600 --> 00:50:05.540 And a tester should have a different mindset guys. 00:50:05.540 --> 00:50:06.700 So especially for tester, 00:50:06.700 --> 00:50:09.560 we need to always think about in the negative way. 00:50:09.560 --> 00:50:11.620 So normally people are saying positive way, 00:50:11.620 --> 00:50:14.220 we need to think, but here in the testing point of view, 00:50:14.220 --> 00:50:16.220 always we have to think like, 00:50:16.220 --> 00:50:17.580 we have to break the application. 00:50:17.580 --> 00:50:19.420 Somewhere we need to find the application. 00:50:19.420 --> 00:50:20.860 If you want to find the application, 00:50:20.860 --> 00:50:22.740 if you want to find some bug, 00:50:22.740 --> 00:50:23.580 then what you have to do, 00:50:23.580 --> 00:50:26.060 we have to provide some invalid data. 00:50:26.060 --> 00:50:28.420 Okay, we have to do some unwanted stuff in our application. 00:50:28.420 --> 00:50:32.540 So then whether we are providing some data to the application, 00:50:32.540 --> 00:50:33.900 how it is behaving, 00:50:33.900 --> 00:50:35.420 whether it is behaving according 00:50:35.420 --> 00:50:37.500 to customer requirement or not. 00:50:37.500 --> 00:50:38.700 So that we need to test. 00:50:38.700 --> 00:50:41.680 Always our focus should be on breaking the application. 00:50:42.660 --> 00:50:44.520 Okay, so if everything is working fine, 00:50:44.520 --> 00:50:46.400 there is no job for tester. 00:50:46.400 --> 00:50:50.360 We have to break our application with our skill set. 00:50:50.360 --> 00:50:53.120 So that is exactly software tester job. 00:50:53.120 --> 00:50:57.120 Okay, so for that, we need to have proper skill set. 00:50:57.120 --> 00:50:58.160 Very, very important. 00:50:59.100 --> 00:51:01.560 Okay, so why is the software having bugs? 00:51:01.560 --> 00:51:04.460 Mixed communication or new communication? 00:51:04.460 --> 00:51:07.040 And because of software complexity 00:51:07.040 --> 00:51:10.140 and sometimes programming errors also causing the bugs. 00:51:10.140 --> 00:51:13.380 And if the requirements also keep on changing very frequently, 00:51:13.380 --> 00:51:15.260 that is also causing the bugs. 00:51:15.260 --> 00:51:18.500 And finally, lack of skilled testers. 00:51:18.500 --> 00:51:21.340 If the testers doesn't have proper skills, 00:51:21.340 --> 00:51:24.020 then definitely he will miss the bugs. 00:51:24.020 --> 00:51:26.980 And those bugs will be faced by the customers. 00:51:26.980 --> 00:51:30.020 And he will start frustrating by seeing those bugs 00:51:30.020 --> 00:51:32.100 in the production environment. 00:51:32.100 --> 00:51:35.980 Okay, so these are all very, very important things 00:51:35.980 --> 00:51:37.640 before starting the testing. 00:51:38.520 --> 00:51:43.440 And then we have something called SDLC, SDLC and so on. 00:51:43.440 --> 00:51:46.360 So we will discuss these things in the next session. 00:51:46.360 --> 00:51:48.240 Okay, so these are the basics guys. 00:51:48.240 --> 00:51:50.360 Like we have understood what is software, 00:51:50.360 --> 00:51:53.280 types of softwares and what is software testing, 00:51:53.280 --> 00:51:55.160 what is software quality, 00:51:55.160 --> 00:51:58.200 and what are the parameters of software quality 00:51:58.200 --> 00:52:00.040 and project and product. 00:52:00.040 --> 00:52:02.420 And why do we need software testing? 00:52:02.420 --> 00:52:03.880 And we also understood the difference 00:52:03.880 --> 00:52:06.920 between error, bug and failure. 00:52:06.920 --> 00:52:11.360 And finally, we have understood why the software has bugs. 00:52:11.360 --> 00:52:13.360 Okay, so in the next session, 00:52:13.360 --> 00:52:16.120 we are going to discuss the rest of the topics. 00:52:16.120 --> 00:52:18.640 And I'm just stopping here for today, guys. 00:52:18.640 --> 00:52:20.380 Now, if you have any queries, 00:52:20.380 --> 00:52:22.920 you guys can post in your chat window 00:52:22.920 --> 00:52:24.960 or you guys can ask me. 00:52:24.960 --> 00:52:26.800 Okay, and the rest of the things 00:52:26.800 --> 00:52:28.720 will continue on tomorrow's session. 00:52:30.240 --> 00:52:31.320 Just a moment.