1. What is Testing?
Testing is the process of evaluating software to identify bugs, errors, or performance issues. It
     ensures the application meets requirements, functions correctly, and delivers a quality user
     experience before release.
2.   What is Bug?
     A bug is an error, flaw, or defect in software that causes it to behave unexpectedly or
     incorrectly.
3.   Who is tester?
     A tester is a professional responsible for evaluating software applications to identify bugs,
     defects, or performance issues.
4.   Why tester is needed?
     A tester is needed to ensure software quality, reliability, and performance by identifying and
     fixing bugs before release.
5.   Testing Myths?
     100% testing is possible.
     Anyone can test the application.
     There is no need of tester.
     It is too expensive and time taking/ consuming.
     A tested software is bug free.
     Only fully developed app is tested.
     Tester is responsible for quality of product.
     Testing is only about finding bugs.
     Testing is only about executing test cases.
6.   Difference B/w Automation Testing and Manual Testing
     Automation Testing uses tools to execute tests quickly, ensuring accuracy and efficiency, best
     for repetitive tasks. Manual Testing requires human effort, ideal for exploratory and usability
     testing, but slower and error-prone.
     Type of Testing
1. Sanity Testing:-
     To verify if the positive flow/ Happy path is working fine or not.
     To verify if the basic features are working fine or not.
     It’s a specialized health check-up.
     It’s a sub-set of regression testing.
2. Regression Testing:-
     To verify the failed scenario as well as it’s impact on related modules/functionality.
     To verify the both positive and negative flow.
3. Smoke Testing:-
     This is the very first testing. It’s a general health check up.
4. Retesting:-
  To verify only the failed scenarios.
5. White Box Testing:-
  Done by the developer.
  Coding Knowledge is required.
  Also known as Unit Testing/ Transparent Testing.
6. Grey Box Testing:-
  Combination of white box and black box.
  Tester has partial knowledge.
  Tester sits with developers to find the impacted of the code.
7. Black Box Testing:-
  Coding Knowledge is not required.
  Tester has limited knowledge.
  Testing the functionality of the without looking at the code.
  Done by the tester.
  It is also known as functional testing(eg).
8. UI (User Interface) Testing:-
  UI Testing is a type of software testing that checks the User Interface or graphical user
  interface of the Software.
  Main Purpose : To ensure the functionalities of software application work as per
  specifications by checking screens and controls like menus, buttons, icons, etc.
9. Compatibility Testing:-
  Compatibility Testing is a type of Software testing to check whether your software is
  capable of running on different hardware, operating systems, applications, network
  environments or mobile devices.
10.Cross Browser Testing:-
  Cross browser testing refers to the practice of verifying that web applications work as
  expected across many different combinations of web browsers, operating systems, and
  devices.
11.Positive Testing:-
  Positive Testing is a type of testing which is performed on a software/application by
  providing the valid data sets as an input.
  It checks whether the software/application behaves as expected with
  positive inputs or not.
12.Negative Testing:-
   Is a testing method performed on the software/application by providing invalid or
   improper data sets as input.
   It checks whether the software/application behaves as expected with the negative or
   unwanted user inputs.
   Main Purpose : to ensure that the software/application does not crash and remains
   stable with invalid data inputs.
13.System Testing:-
   System Testing is a level of testing that validates the complete and fully integrated
   software/product.
   Main Purpose : To evaluate the end-to-end system specifications.
   To test whole software for dependencies, data integrity and communication with other
   systems, interfaces and databases to exercise complete production like scenario.
14.Exploratory Testing:-
   Exploratory Testing is a type of software testing where Test cases are not created in
   advance but testers check system on the fly.
15.Boundary Value Analysis(BVA):-
   Boundary value analysis is the process of testing between extreme ends(like Start- End,
   Lower- Upper, Maximum-Minimum) also called boundary values.
   Main purpose : To test boundary values because the input values near the boundary
   have higher chances of error. It is based on testing the boundary values of valid and
   invalid partitions.
16.Priority:-
   How fast we need to fix a defect/bug.
   It is basically a parameter that decides the order in which we should fix the defects.
17.Severity:-
   How it is impacting the functionality of app/software.
   Severity is basically a parameter that denotes the total impact of a given defect on any
   software.
18.Monkey Testing:-
   Monkey Testing is a software testing technique in which the tester enters any random
   inputs into the software application without predefined test cases and checks the
   behaviour of the software/application, whether it crashes or not.
   Main Purpose: to find the bugs and errors in the software/application using
   experimental techniques.
19.Accessibility Testing:-
  Accessibility Testing is defined as a type of Software Testing performed to ensure that
  the application being tested is usable by people with disabilities like hearing, color
  blindness, old age, and other disadvantaged groups.
20.User Acceptance Testing (UAT):-
  It is a type of testing performed by the end user or the client to verify/ accept the
  software before moving the software/app production environment.
  1) Alpha Testing:- Alpha test are carried out early in the development process
  by internal staff.
  2) Beta Testing:- It is a testing is which tries sampling of the intended audience tries
  the product out.
  Tools: Hockey App, 99Tests, etc.
  Ex:- PEZ version of googlePay.
21.Integration Testing:-
  It is defined as a type of testing where software modules are integrated logically and
  tested as a group.
  Main purpose: To expose defects in the interaction between these software modules
  when they are integrated.
  It is a type of software testing in which the different units, modules or components of a
  software/application are tested as a combined entity.
  1)Stubb:- These are the dummy modules which are used to test the integration b/w the
  modules.
  2)Driver:- It is a set of code used to transfer the data to the stubb.
22.25. Software Development Life Cycle (SDLC):-
  SDLC is a systematic process for building software that ensures the quality of the
  software built. The system development should be complete in the pre-defined time
  frame and cost. It consists of a detailed plan which explains how to plan, build, and
  maintain specific software.
23.Waterfall Model:-
  Waterfall Model is a sequential model that divides software development into pre-
  defined phases. Each phase must be completed before the next phase can begin with no
  overlap between the phases.
24.Software Testing Life Cycle (STLC):-
  It is a sequence of specific activities conducted during the testing process to ensure
  software quality goals are met. It involves both verification and validation activities.
25.Bug Life Cycle:-
  Defect Life Cycle or Bug Life Cycle in software testing is the specific set of states that
  defect or bug goes through in its entire life.
  It helps to easily coordinate and communicate current status of defect which changes to
  various assignees and make the defect fixing process systematic and efficient.