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.