Hey everyone, welcome y'all. So from today, I'm going to start a new series on manual software testing on YouTube live sessions and especially beginners, they have requested to upload a new series on manual software testing, especially manual testing concepts and manual testing process and Jira and as well as agile process along with some project. So I'm just plan for that. And from today, we are going to see. So especially for today, we are going to start some basic concept from manual testing. Okay, now let's get start. So manual testing, we are going to learn in three different phases, or we can say modules. The first module, the first module testing concepts, your first module, we are going to learn testing concepts. So what is testing concept mean? Basically, this is all completely theoretical concept is okay, but I don't want to get you bored. So I'll interact more and I'll give practical experiences and some scenarios also, don't worry. So testing concept, this is module one. In this particular module, we are going to learn some very basics of testing, like what is software testing? What are the different levels of testing? What are the different types of testing we have to conduct on your application? Like what is software? What are the different types of software are available? And SDLC, SDLC, like a lot of things are there. So we are going to learn some basic concept from testing, because before going to conduct testing, we have to know what kind of testings are there and how we have to conduct those testings. So that is a theoretical part. Okay, so testing concept. And if I just look at the curriculum, so the basic concept will be there, like what is software testing, types of softwares, and software quality, what is project and product, testing, and SDLC, SDLC, a lot of things are there, and test design techniques. These are very, very important topics which we are going to discuss. And white box testing, black box testing, what is there? And functional and non-functional testing. So all these things we are going to discuss as part of module one. So this is mostly theoretical part, okay? Because before jumping into the practical part, we have to know some basic concepts theoretically. So almost four to five sessions we are going to spend on this particular module, software testing concepts. So this is the first module, theoretical part, okay? Then basically this module says like what, like what to test, okay? And the second module is a practical part, okay? Second module is a practical part, software testing project. So here we are going to start a project along with some concepts, like how to write, how to analyze the requirements, how to write the test plan, how to write the test cases, how to execute our test cases, and we are going to learn about bugs, bug or defect lifecycle, how to report the bugs. So these concepts are purely practical part. So in this module, we are going to learn project, and this is purely practical orientation. And here we are going to learn how to test, okay? In the first module, we are mainly focusing on what to test, because the theoretical part. In the second module, we are going to test, like we are going to test the application directly, like how to test. So what are the different techniques are available, right? How to write the test cases, how to review the test cases. So these things will be part of module number two, testing project. I'm going to introduce one e-commerce application, and I'll also show you the FRS document and the requirement document, how we'll get the requirement from the customers, and then how to write the test cases, how to review them, how to execute bug life cycles. Everything will be part of this model testing project. So here you will get the practical experience, okay? So this is a model number two, because we cannot directly jump into project because before that, we need to know some basic concepts. If you know the what part, then we can jump into how part. So what to test and how to test. So second module mainly focus on how to test. And once these two modules are completed, then the module three is for agile process. This is purely process oriented, because in the nowadays, all the companies are using agile process, okay? And you have to know this process until unless you know this process, it is very difficult to survive in the company. So previously waterfall model, spiral model, there are traditional models are available because these are process model, because if there is any company, there should be some process followed by people, right? So here agile process, which is very, very important, and most of the companies are following agile process. So here in module three, we are going to discuss agile process, like how we will get the requirements, how to write the stories and epics, how we can do the backlog plan or sprint plan, how the cycles will go on. So how we can interact in the project, interact within the project team, scrum, all these things we are going to discuss as part of agile process. And here itself, I'm going to discuss about one important tool called Jira. So Jira is basically agile test management tool, or we can say agile tool. And in this particular application, we can track everything in the software development from the beginning from the requirement to till we deliver the software to the customer, everything we can track into this particular tool, even testers and developer, each and every activity, like test cases, test plans, execution status, reports, everything we can manage in this tool, okay? And previously, before these tools are available in the market, people are using like Excel sheets and Word documents, instead of that, we can track everything in the tools, okay? So this is agile process, we are going to discuss, which is Jira tool, there are a lot of concepts are there guys, so I'm not writing in detail because I already have the curriculum here. So I share this curriculum later, you guys can go through the topics, okay? So these are the three different modules which we are going to cover as part of manual testing. So with this Jira tool, we will able to complete manual testing, okay? And apart from that, in addition, I'm also going to share you the SQL videos, because SQL is not part of our code, because SQL itself will take 10 to 15 sessions. So I'm going to provide the video sessions or recorded video sessions, apart from this manual testing course, okay, you guys can go through the SQL videos, and that is also very important for testing prospectivity, okay? So if you go for an interview, people will ask you some questions from SQL also, along with the manual testing. So that is also very, very important, right? So that will be going to share after completion of manual testing, right? So this is a part of manual testing curriculum. And once you completed manual testing, then I'll share automation testing and everything, okay? That is a different curriculum we are going to learn, all right? So for today's session, I'm going to start with the module one. So are you guys clear so far, everyone, about this curriculum? Can you please come from in the chat window? So if you ask any questions, guys, so please interact in the chat window immediately. And every time I'll ask the confirmation from you guys. So please put in the chat window, okay, all right. So let us start with a few, some basic concepts from manual testing, okay? So today's introduction session. So I'm just going to cover some basics, basics, like what is software, what is software testing, and why do we need to software testing, all these things, okay? So first, let us start with what is software and what are the different types of software? So people who are completely beginners, okay, and they don't have any ID background, I'm going to start from very, very basic, guys, from the scratch. And you don't need to worry about anything. If you just know how to use MS Word document, Excel sheet, that is that knowledge is enough and basic internet knowledge is enough to start learning this concept, okay? So you don't need to worry and afraid of anything. I'll go from very basic. If you have not understood anything, please use chat window to post your questions, okay? All right, so this is a small presentation I have. So later I'll share this presentation. Okay, first, let us see the concepts. And one more thing is for every concept, guys, after explanation at the end of the session, I will also share the presentation as well as notes and materials, and don't worry. So you guys can go to them, all right? So first, let us start with what is software, like what is the types of software? So everywhere we hear, we heard this term software. What is software, software, simple definition, everyone know about software, but if you come, if I ask the definition, most of the people cannot answer this question. Software, everybody knows the software, we are daily, entirely every day we are using software, mobiles or computers, everywhere we are using software. But what exactly software means? So if you say definition of the software, the software is a collection of computer programs, a collection of computer programs that helps us to perform a task. Suppose if you want to perform some task, guys, suppose if you want to do some manual task, right? So through the mission, I want to do the task. So that mission needs some software, okay? So for example, if I take a mobile app, mobiles, right? So if you have only mobile, right? We cannot do anything with mobile. In that mobile, there should be some apps or some software should run. And with that software, we are doing all the things, right? Suppose if I take some WhatsApp or LinkedIn, whatever apps you have in the mobile, if I don't have those apps, can you use your mobile? No, right? So you need to have some software in that. And then only we can use a mobile. Similarly, software is a collection of computer program. How the software will be developed, which is basically a collection of programs. And the developers will write a number of programs and collectively we can call it as a software. So what is a program? Program is something called as a coding, like they will write some instructions to the computer. So the instructions can be understandable by the computer. And collectively we can call it as a software. Software is a collection of computer programs that help us to perform a task. If you want to perform some task, we can use a software. Okay, simple definition. But in the market, there are different type of softwares are available. There are different types of softwares are available. So mainly there are three categories. One is system software. Okay, let me just write some notes here. Okay, so types of softwares. System software, and programming software, and application software. So these are the three different types of softwares are available. Three different types of softwares are available. One is system software. I'll tell you what is system software. Second one is the programming software. And third one is the application software. System software, programming software, then application software. So what is system software means? Normally device drivers, operating systems, servers, utilities, these are all comes under system software. What does it mean? Suppose you have your desktop or laptop, okay? And you are connecting all the accessories to your computer. You are connecting keyboard, you are connecting mouse, right? You are connecting some other screens, or you're connecting printer to your computer, right? So these are different accessories or devices are connecting to your computer. But if you want to use those devices, we need to install some additional drivers. Or sometimes your computer also will come along with the drivers. And those drivers also comes under the system software. And basically these softwares are used to run the systems. Okay, suppose if you connect, suppose if you have connected your keyboard to the computer, how your computer will able to identify your keyboard, the instructions are coming from keyboard. It doesn't know basically, right? So there should be some software. The computer should have some intelligence to identify your keyboard, to identify your mouse, you identify your monitor and everything. So that is basically comes under the system software. So device drivers and operating system. Operating system is what Windows, Linux, Mac. So these are all operating systems. So you have a computer, but if you don't have any operating systems, how can we use or how can you install other softwares without using operating system? Because first, as soon as you start your computer, operating system must be there. So on top of operating system, we are going to install other softwares, right? That is the base. Once you have computer, you need to install some operating system. It can be anything. So that is also comes under the system software, because if you want to run or start system, we need some operating system. So there's a reason which is comes under system software and server some utilities files or some utilities means, suppose if you write something, right? If you write some text or if I write some document, internally, the computer software is able to recognize it. So to run special software, we need to also have some utilities. So these are all comes under system software, device drivers, operating systems, servers, utilities, all these things are comes under system. So basically the system software will be used to run the systems, okay? That is a one category of softwares. And the second category is a programming software. So what is programming software means? Compilers, debuggers, interpreters. So these are all examples of programming software. That means, suppose developers are writing the code or some program, how program will be executed? How the program will be produced some output? Suppose when I use a computer, we are giving some input to the computer, we are getting some output. So who is processing internally? When I give some input to the computer, someone should be there to process that input and produce the output. And that thing will be done by the compilers, debuggers, interpreters. So these are the softwares which will do some processes when you run your program. Normally developers work with these programming software. So whatever the programs they have run to execute the programs and providing the output, the compilers, debuggers, interpreters will be used internally. So that comes under the programming software. And the last one is application software. So this is a very, very important area where we have to focus on. Application software. So application software is nothing but the users will use that applications or users will use that software. For example, web applications. So every day we are using web applications in case of Facebook or LinkedIn or Amazon or online portals. Everything comes under web applications. And mobile apps. Suppose you are using mobile and you have N number of apps in your mobile. All those things are comes under application software. And desktop applications. So desktop application means what? You can install those applications in your laptop or your computer like MS Word document, Excel, Outlook, Notepad, calculator. So these are all comes under desktop applications. So basically there are three kinds of applications, application softwares. One is web applications, mobile applications, desktop applications. These are the three categories. So web applications, if you want to work web applications, we need to have an internet, okay? Because through internet we can access those applications. And actual applications will be installed somewhere in the remote servers. And mobile apps. So everybody will know about this. So from the Play Store, we can download and install mobile apps and we can use it. They are all comes under application software. And desktop applications means the application which we can install on your local machine. Even without internet, also we can use desktop applications. So like I'm using Notepad to typing something. This is a desktop application. So calculator is a desktop application. Your paint is a desktop application. So all these comes under desktop applications. So these are all comes under application software because as a user, I can use these applications. I can use this software, but I cannot directly use programming software and system software because these are the internal softwares which we cannot see them. But these softwares are used to run your systems. But application software, we have to use on daily usage. And we can do some tasks by using these application softwares. Okay, suppose if you go for amazon.com. So that is an online application. That is a software. What we can do, we can search for the product. We can add to cart and we can do the payment. So these are activities we can do. Similarly, banking applications, financial applications. So educational institution applications. So all these comes under web applications, mobile apps, desktop applications. So every day on day-to-day basis, we are working with these applications. So these are all comes under application software. Our testing is also mainly focused on application software. We are going to test the application softwares. Okay, so this is basically understanding the basic understanding of what is software, the types of software. Okay, so the next thing is, what is software testing? So we understood what is software testing, software types of software testing. Now we need to understand what is software testing. Okay, so next one, what is software testing. We already know what is software. Now we need to understand what is software testing. And then why the software testing is required. So this is one of the important, interest question also. Like what is a software testing. So normally, when you purchase any product, right? So what you will do, you will do some basic functionalities working or not. So let me just give you one example. Suppose you want to buy a mobile. Okay, so before buying a mobile, you will have some budget, okay? And with that budget, within that budget, you are expecting some features to be there in your mobile. Okay, you have some budget and you are expecting some features. Some functionality should be there in your mobile. And with that input, you are searching for different brands in a market. And finally, you search some brand and some model and you bought it, okay? And you spend some budget and also you're expecting something should be there in your mobile. And once you bought your phone, you started using your mobile and then you started finding some bugs or issues in your mobile. So something is not working or on or off is not properly working, right? Our screen is not properly appearing. Some apps are striking. So if you find these kinds of issues in your mobile, how you will feel, definitely you will start frustrating with that product, right? So why these things, this thing is happened because of lacking of testing. Because you bought a mobile, you bought a product, but this is buggy product. So you have some issues with that product. Why these issues are there in the product? Because testing is not properly conducted, right? Each and every function, each and every feature is properly working or not. It is not properly tested. So that is the reason you start frustrating with that product, right? Same thing will happen with the software also. Same thing will happen with the software also. But who is using software? So for example, let us say some bank, okay? So let's say I have something called xBank. So this bank is doing some transaction on day-to-day basis manually. And after a few days, this particular bank wanted to automate the process. The bank automate, the bank, this particular bank wanted to automate the process. Means what? Whatever the transactions they are doing manually, they want a software and using that software, they wanted to do those tasks, okay? Through the software. And what this bank? So bank is nothing but what? This is a small company, okay? And this particular company or bank will approach an IT company, okay? Will approach an IT company. And once they approach this IT company, they will explain their requirement. So what exactly they do in their organization. So what kind of operations or actions or tasks they do on day-to-day basis in their organization. So they will explain the entire, the process, the requirement, everything into this IT company. Along with that, the budget, what is the budget they have and within what time they need the software. So all these things will be explained to this IT company. Now, what IT company will do is, IT company will review and understand their requirement and their budget and time. So by considering them, they will agree to develop the software which will fulfill their tasks, okay? Instead of doing manual transaction, they can do automate using particular software. And so after reviewing those requirements by IT company, they agree to develop a software, okay? And what IT company will do now, IT company will develop the software, will develop the software and it also to be tested, okay? Test the software and after testing, then deliver the software to the company called xBank. So this is actual process. So some company will approach the IT company by saying all their requirement, budget and time. And based on that, IT company will agree the requirement, agrees the proposal and then they start developing the software and they will recruit some number of people, developers, testers, designers, program managers, all these people. And they take some time to develop the software. And then finally, before delivering the software to the bank, we have to conduct the testing here. So after development, testing comes into picture. So why we need to do the testing? What is testing here? Why we are conducting testing here? Because we have to release the quality product to the customer. We have to deliver the quality product to the customer. So that is the main intention of doing software testing, okay? So software testing will play very, very important role because if you deliver the buggy product to the customer, it'll start frustrating it because he spent a lot of budget, a lot of time, right? So this is our responsibility, the company responsibility to provide the quality product to the customer. It should not have any bugs. It should work according to customer requirement. So all these things we have to take care while performing the testing, the software, okay? So what is software testing? So software testing is very, very important before delivering the software to the customer, okay? Now, what is software testing? The software testing is a part of software development. Here, development means what? Not only writing the code, okay? We have to test the software, whether it is working according to customer requirement or not. If you're not conducting testing, what happens? Definitely the product is having some bugs because there is no guarantee like developers will do everything perfectly fine, right? There should be some bugs. There will be some gaps. So we have to test the software. We need to identify the bugs and the developers again will fix those bugs. And finally, we will deliver the quality product to the customer, okay? So the testing is a part of the development process. We'll understand the customer requirement. We will design it, then coding, then testing, and finally delivering the software to the customer. So these things will come into picture. So now, if I just look at what is software testing, let me write some notes here. So what is software? We understood what is software. Now we are understanding what is software testing. So software testing is a part of software development process. Software testing is an activity to detect and identify the defects in the software. So this is the main intention of the tester. What is the job of tester means? He has to identify the defects and he has to make sure our application or software is working according to customer requirement or not. Because initially customer will provide you some requirement, the functionality. And our software also should perform the same thing, whatever the customer is expecting. Suppose the customer is said something and we develop the software for something else. It doesn't work, right? So the main intention of software testing is it is a activity to detect and identify the defects. We have to execute some test cases. I'll tell you what is the test case and how to execute all these things. So the main intention of software testing is we have to find the defects in the software, okay? And the main objective is to release the quality product to the client or customer. So this is basically what is software testing. So testing is a part of software development. Testing is an activity to find the defects in the software. The main objective of testing is to release a quality product to the customer or client. So this is all about what is software testing. The next one is what is quality. So here we are talking about the quality. What is quality? Every day we are talking about quality. If I buy something, we are always expecting the quality, right? But what exactly quality means? The main objective of testing is to release quality product to the client. But what is quality? So what is quality? So quality is something called customer justification. So how well our product or software is working, the customer will decide, okay? So here there are some parameter based on that we can say whether our software is quality or not, quality software or not. So what are those parameters? Let me just tell you. So software quality. So these are all very important guys, so beginner as a beginner. So please try to understand this. Very simple terms, software quality. So why we are discussing software quality because our ultimate goal of testing is to deliver the quality product to the customer or client. But what is software quality? So software quality, if I say a product or software is very quality product, I can say based on certain parameters, okay? So what are those parameters? So the first parameter is bug free. So based on these parameters, we can say our software is quality software or not. The first parameter is bug free. What is meant by bug free? So our software should not have any bugs, but 900% software, 100% software will not be bug free guys, but at least one or 2%, there will be bugs, but they are very, very minor bugs. The customer process or task will not be impacted by those bugs. But 100% quality product cannot be always possible to release to the customer, okay? It is not at all possible. At least one or 2% bugs will be there, but they are very minor bugs. We can ignore those bugs, okay? And the final thing, the objective of testing is to release the quality product to the client. But what is the software quality? So software quality can be measured. So later I'll tell you what are the metrics we have to use, but mainly we can say software is a quality based on certain parameters. So the first parameter will be the bug free. The software should not contain any bugs. That's the first thing. Second thing, delivered on time. So I said before, when an IT company is approaching the IT company, so some X company is approaching the IT company, they have some budget and they have some time also. Within that time, we have to develop and test the software and we have to deliver the software to the company, right? And they spend some budget and also time. Suppose what happens, suppose development and testing is taken more than the committed time, then what happens? We have to pay to the staff also, right? We have to spend a lot of time, right? So what happens if you're not able to deliver the software within the time or on time, that is also considerable because the customer has to spend more budget because automatically the time is increased, increase like duration is increased automatically. You have to spend money on the staff also, right? Employees like developers, testers, who is working on that project, we have to pay to them, right? If suppose time is increased. So deliver on time. So not only back free, we should also deliver the software on time. That is one parameter. The third parameter is within the budget. Sometimes some organization will have some budget and once you start developing and testing, the budget will be increased. That should not be happen. So whatever the time and budget they have mentioned initially, we have to deliver the software within that particular time and within that particular budget. And then only the customer will say our product or our software is quality and not only back free and it is also depends on other factors. And it should be delivered on time and it should be within the budget. And finally, it should meet the requirements or expectations from the customer, okay? So whatever software we develop, that should fulfill the requirement of customers. So that's the first and most important task. Customers set some requirement and we have developed and tested software. It should work according to their requirement. So this is very, very important. It should meet the requirements or expectations from the customer. And finally, it should be maintainable. Maintainable means what? After installing our software in the customer environment, they should be able to work with that. And if there is any small issues, they should be able to resolve themself and should be user friendly, okay? In that case, we can say it is a maintainable. So when I deliver a software to the customer, if our software is fulfilling all these parameters, we can say which is a quality product or which is a quality software. And to make sure all these things should be there, we have to conduct our testing. So the main intention of testing is to deliver the quality product to the customer. And when we say our product or software is a quality, having some quality means which we have to follow these parameters. It should be, it doesn't have any bugs. You can say bug free and it should be delivered on time. It should be delivered within the budget and it should also meet customer requirements or it should work according to the customer requirements or expectation. And finally, it should be maintainable in their environment, okay? So these are the main quality standards. So if I say software is a quality software, then we have to follow these parameters, okay? Now here, I'm just using some terms continuous like project and product. And these terms are very, very important. We need to understand as a beginner. So what is project and product? Project and product. So people are sometimes using project. Sometimes they say product. What is project and product? And even in the companies also, there are two kinds of companies like service-based companies, product-based companies. Similarly, we have a project and products. So what exactly project means? What exactly product means? There is a small difference between project and product. So you have to understand these terminology which is very important before going to testing part. Okay. Let me tell you what is project and product. Project and product. Okay, so let me write some notes here. Very small difference, guys. The first one is if software application. So whatever software we developed and tested, which is for specific customer based on the requirement, then it is called as a project. Means what? We approach a customer. Customer will give you specific customer and customer will give you the requirement. Customer will spend some budget. They will give the requirement and we will develop the software according to that particular customer. So whatever software we developed and tested according to the specific customer requirement, we can simply say that is a project. Project means what? The application or a software which is developed for specific customer requirement. And that software will be used by the customer himself. Others cannot be used. Okay, suppose I develop a software for an organization and only that organization can be used in that software and other organizations cannot be used. And those things called as a project. A project is a software application which is developed for specific customer based on the requirement, then it is called project. Okay, if the software application is developed for specific customer based on the requirement, based on the customer requirement, then it is called as a project. And only the specific customer can use this. But what is a product means? If the software application is developed for multiple customers based on market requirement, then it is called as a product. That means what? We will collect the requirements from the market, not from the specific customer. Okay, what is exactly market requirements? We will analyze them and we will develop a software. Then we'll deliver it to the market. And number of people, number of customers are using that software. In that case, which is called as a product. A product is a software which can be used by multiple customers. Project is a software which can be used by specific customer. Okay, project is a software which can be used by specific customer. We are developing it for specific customer requirement. Whereas product is a software which we can develop for market or based on market requirements. So what are the examples? For example, there is a bank. Okay, and I have developed a software which can do all the transactions automated in that particular bank. So that is project because that application or software can be used only within that bank, within that particular organization. Others cannot be used. So they are called projects. And what is a product means? Everyone should able to do that. So for example, in our mobile, there are so many apps will be there. Let's say WhatsApp. So WhatsApp is an application, a software application and everybody using it. So that is an example of product. And suppose our Microsoft products, Word, Excel, PowerPoint. So these are all the softwares and everybody using them and how they develop those softwares based on the customer requirement. And they'll analyze the requirement from the market, from the people, and they'll consolidate all the requirements. Accordingly, they develop the software and that comes under the product. So understand this difference, very, very important, the project and the product. So project is something which is developed for specific customer based on their requirement. And the product is a software which is developed based on the market requirements and everybody can use it. Okay, that is a product. Now, similarly, the companies also, two types of companies will be there. Like service-based companies and product-based companies. Service-based companies are what? Most of the times they will deal with the projects. So they will work for specific customers. They will work for specific clients. And those companies are comes under service-based companies like TCS, Accenture. Okay, so these companies are comes under the service-based companies or Infosys. These are all service-based companies and they will work for any number of customers throughout the world and product-based companies. The other type of companies are we have product. Product means what? A software which is developed based on the market requirements. So for example, Google. So Google is a product-based companies. There are so many Google products out there. Like Google Max, Google Drive, Gmail. These are all Google products. And Microsoft. Microsoft is also product-based company. So they will develop the multiple products on Microsoft products like MS Word, MS Office. These are all examples of Microsoft products. And Oracle. Oracle is also product-based company. Okay, so there are different type of companies like service-based companies and product-based companies. Okay, so that is all about project and product. Okay, and finally, why we need testing. We understood what is project and product and why we need to testing. So this we already covered. Why do we need testing? The ultimate goal is to release a quality product to the customer. So that's the reason we have to conduct our testing. And we have to ensure the software should be bug-free and it should meet the customer requirements, right? And also it should work according to the customer expectation. So these are the main things which you have to ensure while conducting the testing. So without testing, what will happen if I don't conduct any testing? Then what happens? Definitely the software contains the bugs. And once the customer has started using the software, definitely they'll first aid it with that. Okay, so that's the reason we have to conduct our testing. So we have to ensure the software doesn't have any bugs and we have to ensure our software is working according to customer requirement or not. So these are the two main things which we need to focus while conducting the software testing. So why do we need testing? Means we have to deliver the quality product to the customer. So that's the main intention. Okay, so finally, I'll just explain about these terms, error, bug and failure. So a lot of people exactly don't know the difference between these three and which is very important to know that. Error, bug and failure. Most of the people will think bug is nothing but some error or some failure. But there is a small technical differences there. Error, bug and failure. Now let me tell you what exactly error means, what exactly bug means and failure means. Error is nothing but a human mistake. If you do some task, right? If you do some mistake somewhere, that is basically called as an error, okay? It is an incorrect human action. We can simply say an incorrect human action is called an error. So suppose as a developer, he's writing some program and he has committed some, by mistake, he has typed something else and that is causing the error. So error is basically human mistake, okay? And bug, what is the bug? Bug is nothing but it is a deviation of expecting actual results. So for example, there is a simple, let's say login screen in your application, right? So when I provide a valid username and valid password, I should able to log into my application. Let's say Gmail application. So how to log into Gmail? I have to provide the valid username and valid password. So when I provide valid username and valid password, then I should able to successfully log in. But, and similarly, if I want to pass, let's say if I pass invalid username and invalid password, I should not able to log in. But what happening, even though if I providing invalid username and password, an application is allowing me to log in. Then that is a mismatch, right? What you are expecting by pass a validator, the login should be successful. When I pass invalidator, login should not be successful. That is your expectation. But how actually application is working? If I pass validator, okay, it is successfully login. But even if you pass invalidator, still it is accepting the login. So that is a mismatch. What is our expectation and how the application is working? So the deviation from expected behavior and actual behavior is basically called as a bug, and which is also called as a defect. The terminologies are different guys. The concept is same, okay? So error is a human mistake. Bug and defect is something different. So this is related to application. Something is not working in our application according to your expectation or your requirement or customer requirement, which is basically called as a bug or defect, okay? And the third thing is a failure. What is failure? Suppose we develop some software, we have tested and everything is working fine. And finally, what you will do? We will deliver the software to the customer. And we have installed the software in the customer environment, and they started using the software. And after a few days, then what happens? There is something which is not working in the software, okay? And something basically got failed, okay? So whatever the customer wanted to do, some transaction that is got failed. So this is basically end user action, okay? So the deviation identified by end user while using the software, the deviation identified by the end user while working with the software is called as a failure. Again, I'm repeating, error is a human mistake, okay? While writing the program, developer will do a lot of mistakes. All these comes under the errors. And while testing the software, we are checking the functionality of our application, whether it is working according to customer requirement or not. If something is not working according to customer requirement, which is comes under the bug or defect. And after releasing the product to the customer and the customer is using the software, or as a user, I'm working with the software in the real environment, where I found some bugs, where I found some mismatch, where I found something is not working, that is comes under the failure. And the error normally committed by the developers, bugs and defects will be identified by the testers at the time of testing phase. And failures will be there in the production environment. Production means in the sense, customer environment. And where if the customer is identified something or which is not working properly, that we can call it as a failure, okay? So the basic difference between error, bug or defect or failure. Okay, just understand these technologies, which is very, very important, okay? So most frequently I use these terms, a bug or defect, both are same, but error is a different, failure is a different, okay? So these are some basics guys. So why the software has bugs? Let me discuss one more point. So why the software has bugs? So far we are discussing like why, what is software? What is software testing? And why we need to conduct the testing, right? But why the software has bugs? So when I develop some software, it contains some bugs, but why we should have bugs? There are a lot of reasons out there. Why the software is having bugs? There are a lot of reasons. The mainly five reasons guys. The mainly three, five reasons we can say. Why the software has bugs? So why the software has bugs? So mainly five reasons. The first reason is miscommunication or no communication. Means what? There is no proper communication between the developers and testers. Means what? Developer will develop something and tester will expecting something else. Or requirement is having some functionality and developer is implemented or develop some other things, some other functionality and tester is expecting something. So there will be gap between the documentation, development and testing. So that is basically comes on the miscommunication or no communication. So that is causing the software bugs. So the requirement should be very, very clear. And according to the developer should develop the software. And according to the tester also should test the software. Everybody should be in the proper sync. And then only we can deliver the quality product to the customer. If there is any miscommunication, suppose developer is develop something and which is not communicated with the testing team. Then what happens? Tester will think in different way and they do their testing their own way. And tester also needs some developer's input. Even developer also needs some input from the testing. So everybody in the team should communicate properly and that can avoid the bugs in our software. That is one major reason. And the second reason is the complexity of the software. Suppose the software is very complex. It is almost three, four, five years project. And so many people are working like N number of developers, N number of testers, automation people, so much complexities. And N number of modules are there, sub-modules are there. In that case also we can miss some bugs, okay? Like integration testing, unit testing. There are lot of testings we will conduct. And somewhere we may miss something else. So that is again causing the bugs in later stages. So suppose in some cases in sometimes even if the software is very complex, there are some chances we have some bugs in our software. And the third reason is programming errors. And most of the times programming errors in the sense it is a responsibility of the developers. So developers will write the program, but the program is working fine. But whatever output is producing is not correct. That comes out of the programming error. So for example, developer has written a program to add two numbers. Let us say some example, what is programming error? So developer is written some programming, some program. And when I pass two inputs, let's say I have passed the two numbers, let's say two comma three. And what is the output I'm expecting? Two plus three, five I'm expecting, okay? And this way the program is written the code. But when I run the program, what happens? When I pass this input, which is giving the output, but something else, let us say it is giving something called 10, the program is running perfectly fine. But whatever the output I'm getting from the program is incorrect. So why this is gone? Why we are getting this incorrect error because of programming error. So the developers will take care of this programming errors. Okay, so that is one thing. And the next one is a frequently changing requirements. This is a major cause. So sometimes what happens is, like initially the customer will give you a few number of requirements, okay? And okay, we have started, we have understood all the requirement, we have started development. And in the middle of the development, sometime again customer come back and change their requirement. But initially they said something after some time after developing or during the testing phase, they'll come back and ask us to change some requirement. And that is also causing the bugs. And sometimes it may possible or it may not be possible to change the application according to their requirement. So even if a customer requirements are frequently changing, that is also sometimes causing the bugs. And the last reason, lack of skilled testers. If the tester doesn't have proper skill set, definitely he will miss the bugs. So if the tester is not identified the bugs, then what happens? That will go to the next level and that will come again in the production. The customer will face that bug, okay? So that is a problem. So the tester should have proper skill set. That is very, very important. And a tester should have a different mindset guys. So especially for tester, we need to always think about in the negative way. So normally people are saying positive way, we need to think, but here in the testing point of view, always we have to think like, we have to break the application. Somewhere we need to find the application. If you want to find the application, if you want to find some bug, then what you have to do, we have to provide some invalid data. Okay, we have to do some unwanted stuff in our application. So then whether we are providing some data to the application, how it is behaving, whether it is behaving according to customer requirement or not. So that we need to test. Always our focus should be on breaking the application. Okay, so if everything is working fine, there is no job for tester. We have to break our application with our skill set. So that is exactly software tester job. Okay, so for that, we need to have proper skill set. Very, very important. Okay, so why is the software having bugs? Mixed communication or new communication? And because of software complexity and sometimes programming errors also causing the bugs. And if the requirements also keep on changing very frequently, that is also causing the bugs. And finally, lack of skilled testers. If the testers doesn't have proper skills, then definitely he will miss the bugs. And those bugs will be faced by the customers. And he will start frustrating by seeing those bugs in the production environment. Okay, so these are all very, very important things before starting the testing. And then we have something called SDLC, SDLC and so on. So we will discuss these things in the next session. Okay, so these are the basics guys. Like we have understood what is software, types of softwares and what is software testing, what is software quality, and what are the parameters of software quality and project and product. And why do we need software testing? And we also understood the difference between error, bug and failure. And finally, we have understood why the software has bugs. Okay, so in the next session, we are going to discuss the rest of the topics. And I'm just stopping here for today, guys. Now, if you have any queries, you guys can post in your chat window or you guys can ask me. Okay, and the rest of the things will continue on tomorrow's session. Just a moment.