Self-Notes (Sdet)
Self-Notes (Sdet)
Self-Notes (Sdet)
INDEX
Manual Testing
SQL (Structured Query
Language)
Core Java
Selenium
Maven
TestNG (Test Next Generation)
API Testing
Git
Jenkins
Project Preparation :
- Data Driven Testing Framework
- Page Object Model
- Page factory Design Pattern
- Day 2 Day activity in IT Company
Automation Framework Setup From
Scratch
- Mock Interview After 2weeks
Who developed Testing?
“TOM KILBURN” a Computer Scientist is
responsible for introducing software
testing in year 1948.
1.What is testing?
Process of checking the quality of the
product before launching is known as
testing.
Testing means verifying the behaviour of
the software based on the client
requirements and make sure that the
software is user friendly and easy to use.
Early Testing :
To find the defect in the software, early test
activity shall be started.
The defect detected in the early phases of
SDLC will be very less expensive.
For better performance of software, software
testing will start at the initial phase i.e.,
testing will perform at the requirement
analysis phase.
PHASES OF SDLC :
Defect clustering :
In a project, a small number of
the module can contains most of
the defects.
Pareto Principle to software
testing state that 80% of software
defect comes from 20% of
modules.
Pesticide Paradox :
Repeating the same test cases, again
and again, will not find new bugs.
So, it is necessary to review the test cases
and add or update test cases to find new
bugs.
Testing is context-dependent :
The testing approach depends on the
context of the software developed.
Different types of software need to perform
different types of testing.
For example, The testing of the e-
commerce site is different from the
testing of the Android application.
Absence of errors fallacy :
If a built software is 99% bug-free but it does
not follow the user requirement, then it is
useless.
It is not only necessary that software is 99%
bug-free but it is also mandatory to fulfil all the
customer requirements.
Introduction of SDLC :
The software development life cycle (SDLC) is a
process which is used to develop software.
SDLC is a step-by-step procedure need to be
followed by the organization to design and
develop a high-quality product.
The phases of software development life cycle
are which describes that how to develop,
maintain software.
The life cycle aims to develop a good quality
product/software.
SDLC produces intermediate products that can be
reviewed to check whether they work according to
customer requirement.
c
WATERFALL MODEL :
Classical waterfall model is the basic software
development life cycle model.
It is very simple but idealistic.
Earlier this model was very popular but
nowadays it is not in used.
It is very important because all the other
software development life cycle models are
based on the classical waterfall model.
FEASIBILITY STUDY :
The main goal of this phase is to determine
whether it would be financially and
technically feasible to develop the software.
The feasibility Study involves understanding
the problem and then determine the various
possible strategies to solve the problem.
These different identified solutions are
analysed based on their benefits and
drawbacks, The best solution is chosen, and
all the phases are carried out as per this
solution strategy.
REQUIREMENTS ANALYSIS &
SPECIFICATION:
DESIGN:
The aim of the design phase is to transform
the requirements specified in the BRS
Document into a structure that is suitable for
implementation in some programming
language.
MAINTENANCE :
Maintenance is the most important phase of
a software life cycle.
The effort spent on maintenance is the 60%
of the total effort spent to develop a full
software.
ADVANTAGES :
Simple and easy to understand and use.
Each Phase has specific deliverables and
a review process
Works well for smaller projects where
requirements are very well understood.
Well understand milestones.
DISADVANTAGES :
No working software isn’t produced until
late during the life cycle.
Not a good model for complex and
object-oriented projects.
Poor model for long and ongoing
projects.
Not suitable for the projects where
requirements are at a moderate to high
risk of changing. So, risk and
uncertainity is high with this process
model.
It is difficult to measure progress within
stages.
Adjusting scope and a life cycle can end
a project.
VERIFICATION :
Jab hum koi documents ke upar testing
karte hai without executing the code.
It involves static analysis technique
(Review) done without executing code.
It is the process of evaluation of the
product development phase to find
whether specified requirements meet.
VALIDATION:
The process of evaluating software
during or at the end of the
development process to
determine whether it satisfies the
requirements of the client or not.
DESIGN PHASE:
ADVANTAGES :
This is a highly disciplined model and
phases are completed one at a time.
V-Model is used for small projects
where projects requirements are clear.
Simple and Easy to understand and
use.
This model focuses on verification
and validation activities early in the life
cycle thereby enhancing the probability
of building an error-free and good quality
product.
It enables project management to
track progress accurately.
DISADVANTAGE:
It is not that good for complex and
object-oriented projects.
It is not suitable for projects where
requirements are not clear and contains
high risk of changing.
This model does not support iteration of
phrase.
It does not easily handle concurrent
(parallel) events.
ITERATIVE MODEL:
The iterative waterfall model can be thought
of as incorporating the necessary changes to
the classical waterfall model to make it
usable in practical software.
It’s almost the same as the classical waterfall
model except some changes are made to
increase the efficiency of the software
development.
AGILE MODEL:
The meaning of Agile is SWIFT (quickly) or
VERSATILE (changeable). ”Agile Process
Model” refers to a software development
approach based on iterative (repetitions)
developments.
Agile methods break tasks into smaller
iterations, or parts do not directly involve
long term planning.
Plans regarding the numbers of iterations,
the duration and the scope of each
iterations are clearly defined in advance.
The division of the entire project into
smaller parts helps to minimize the project
risk and to reduce the overall project
delivery time requirements.
Each iterations involves a team working
through a full software development life
cycle including Planning, requirements
analysis, design, coding, and testing
before a working product is demonstrated
to the client.
What is Iteration?
In Agile software development, an iteration is
a set amount of time reserved for
development.
Typical iterations last 1-2 weeks, However,
Some may go as long as 4 weeks.
Most agile development terms agree on the
length of their iterations and proceed to
operate on an iteration-by-iteration basis.
Types of Agile Development Methodology
Design
Requirement Analysis Document & Prototype
Iteration,Demo
& feedback
Production &
Technical
Support
Iterations,Demo
& Feedback
DEPLOYMENT
Sprint review
• The sprint review meeting is an opportunity
for the project team to showcase what
they've achieved during the sprint to key
business stakeholders.
• The Product Owner facilitates the sprint
review and seeks feedback from the business
on progress-to-date and what items need to
be prioritized next.
• Goal: discuss and demo work completed, celebrate and
highlight accomplishments and determine next actions
• Participants: entire Scrum team, Product Owner,
business stakeholders
• Frequency: end of each sprint, typically every 1-4 weeks
• Length: up to an hour per week of the sprint, i.e., 2-hour
meeting for a 2-week sprint
Sprint Retrospective
• A sprint retrospective is an opportunity for the
development team to give feedback on how they felt the
previous sprint went — what worked, what didn't, and
what you should change.
• Start by reviewing your notes from the previous sprint
retrospective.
• Retrospectives are also an opportunity to have an
honest conversation about workloads.
One of the main reasons sprints fails is that your team
overestimated what they could complete
within the timeframe.
During the Sprint Retrospective, the team discusses
• What went well in the Sprint
• What could be improved
• What will we commit to improve in the next Sprint
• The Scrum Master encourages the rest of the Scrum Team to
improve its process and practices to make it more effective and
enjoyable for the next Sprint.
• Participants: entire project/scrum team
• Frequency: end of each sprint, usually over within 1-4 weeks
* Length: 2-3 hours is about average
Advantage
- Frequent Delivery
• Face-to-Face Communication with clients.
• Efficient design and fulfils the business requirement.
• Anytime changes are acceptable.
• It reduces total development time.
Disadvantages
• Due to the shortage of formal documents, it creates confusion
and crucial decisions taken throughout various phases can be
misinterpreted at any time by different team members.
Spiral Model
• This Spiral model is a combination of iterative development
process model and sequential linear development model i.e.,
the waterfall model with a very high emphasis on risk analysis,
- It allows incremental releases of the product or incremental
refinement through each iteration around the spiral.
• Spiral model is one of the most important Software
Development Life Cycle models, which provides support for
Risk Handling.
• Using the spiral model, the software is developed in a series
of incremental releases.
Static Testing
• Static Testing is a software testing technique which is used to
check defects in software application without executing the
code.
* Static testing is done to avoid errors at an early stage of
development as it is easier to identify the errors and solve the
errors.
• It also helps finding errors that may not be found by
Dynamic Testing.
Why Static Testing?
• Early defect detection and correction
• Reduced development timescales
• Reduced testing cost and time
• For improvement of development productivity
• To get fewer defect at a later stage of testing.
Formal reviews
• Formal reviews follow the formal process i.e, these reviews
are well structure and managed.
I. Planning
II. Kick-Off
III. Preparation
IV. Review meeting
V. Rework
VI. Follow-up
i) Planning
• Review process starts with planning phase.
• In planning, the review process starts with a request for
review by the authors to the inspection leader.
• Entry criteria verifies the document is ready to enter the
formal review process.
ii) Kick-off
• The aim of kick-off step is to explain the objectives of review
and distribute the documents in meeting etc.
iii) Preparation
• In preparation, reviewers review the document separately
using related rules, procedures, documents.
End y nestanding of izes the defects, questions and comments
as per their role
iv) Review meeting
Review meeting includes three phases:
1. Logging Phase - Defects and issues are identified in the
preparation step that are logged page by page.
2. Discussion Phase - This phase handles the issues that
require discussion.
3. Decision Phase - Decision on the document reviews is
constructed by reviewers or participants.
v) Rework
• If the number of defects found per page is more than certain
level, then they document needs to be reworked.
vi) Follow-up
• In follow up, moderator ensures that author has taken an
action on all known defects.
Walkthrough
• In walkthrough, author guides the review team via the
document to fulfil the common understanding and collecting
the feedback.
• Walkthrough is not a formal process.
• Walkthrough is useful for higher-level documents. i.e,
requirement specification and architectural documents.
Goals of walkthrough
• Make the document available for the stakeholders both
outside and inside the software discipline for collecting the
information about the topic under documentation.
Inspection
• The trained moderator guides the Inspection. It is most formal
type of review.
• The reviewers are prepared and check the documents before
the meeting.
• In Inspection, a separate preparation is achieved when the
product is examined, and defects are found.
Goals of Inspection
• Efficiently and rapidly remove the defects.
• Generating the documents with higher level of quality and it
helps to improve the product quality.
Technical Review
• Technical review is a discussion meeting that focuses on
technical content of the document. It is a less formal review.
• It is guided by a trained moderator or a technical expert.
Goals of technical review
• In early stages it ensures that the technical concepts are used
correctly.
• Notify the participants regarding the technical content
of the document.
Tools used for Static Testing
• Checkstyle
• Soot
• SourceMeter
• Jira
Dynamic Testing
• Dynamic Testing is a software testing method used to test the
dynamic behaviour of software code.
• The main purpose of dynamic testing is to test software
behaviour with dynamic variables or variables which are not
constant and finding weak areas in software runtime
environment.
• The code must be executed in order to test the dynamic
behaviour.
• We all know that Testing is verification and validation, and it
takes 2 Vs to make testing complete.
• Out of the 2 Vs, Verification is called a Static testing and the
other "V", Validation is known as Dynamic testing.
White Box Testing
• White Box Testing is a software testing method in which the
internal structure/ design is known to the tester.
• The main aim of White Box testing is to check on how System
is performing based on the code.
• It is mainly performed by the Developers or White Box
Testers who has knowledge on the programming.
Functional Testing
• Functional testing is performed to verify that all the features
developed are according to the functional specifications.
• It is performed by executing the functional test cases written
by the QA team.
• In functional testing phase, system is tested by providing
input, verifying the output and comparing the actual results
with the expected results.
• There are different Levels of Functional Testing out of which
the most important
are
• Unit Testing - Generally Unit is a small piece of code which
is testable, Unit Testing is performed at individual unit of
software and is performed by developers.
Important Points
• Both Sanity and Smoke testing are ways to avoid wasting
time and effort by quickly determining whether an application
is too flawed to merit any rigorous testing.
• Smoke Testing is also called tester acceptance testing and QA
team.
• Smoke testing performed on a particular build is also known
as a build verification test.
• One of the best industry practice is to conduct a Daily build
and smoke test in software projects (CI/CD pipeline).
Regression Testing
• Regression testing is responsible for the overall stability and
functionality of the existing features.
• Whenever a new modification is added to the code,
regression testing is applied to guarantee that after each
update, the system stays sustainable under
continuous improvements.
•It is performed by the Quality Assurance Team (QA)
Ad hoc Testing
• Ad hoc Testing is an informal or unstructured software testing
type that aims to break the testing process in order to find
possible defects or errors at an early possible stage.
• Ad hoc testing is done randomly, and it is usually an
unplanned activity which does not follow any documentation
and test design techniques to create test cases.
• Ad hoc Testing does not follow any structured way of testing
and it is randomly done on any part of application.
• Main aim of this testing is to find defects by random checking.
• Ad hoc testing can be achieved with the Software testing
technique called Error Guessing.
Buddy Testing
• Two buddies mutually work on identifying defects in the same
module.
• Mostly one buddy will be from development team and
another person will be from testing team.
• Buddy testing helps the testers develop better test cases and
development team can also make design changes early.
• This testing usually happens after Unit Testing completion.
Pair testing
• Two testers are assigned modules, share ideas and work on
the same machines to find defects.
• One person can execute the tests and another person can
take notes on the findings. Roles of the persons can be a tester
and scriber during testing.
Comparison Buddy and Pair Testing
• Buddy testing is combination of unit and System Testing
together with developers and testers, but Pair testing is done
only with the testers with different knowledge levels.
(Experienced and non-experienced to share their
ideas and views)
Installation Testing
• Installation Testing: It is performed to verify if the software
has been installed with all the necessary components and the
application is working as expected.
• This is very important as installation would be the first user
interaction with the end users.
• Companies launch Beta Version just to ensure smoother
transition to the actual product.
Installation Types:
i. Silent Installation
ii. Network Installation
iii. Clean Installation
Localization Testing
• Just imagine, your native language is Hindi, and you are
more comfortable with it than English.
• And you are opening the Amazon application for buying a
brand-new mobile.
• There you select Hindi as your preferred language since
you are comfortable with it the most.
• Then the content and user interface will be adapted to the
language "Hindi".
Globalization Testing
• Globalization Testing is a type of software testing that is
performed to ensure the system or software application can
function independent of the geographical and cultural
environment.
• It ensures that the application can be used all over the
world and accepts all the language texts.
• Sensitivity to the language vocabulary: A product that is
used all over the world needs to Support many languages.
Different language translators are used to verify if the
application uses proper vocabulary for each language
• Date and time formatting : Date and time formats vary
from one place to another.
• Currency Format: Currency formats vary from one country
to another. So, application should support all kind of the
formats. Application should also display the correct symbol
of currency and the units.
• Phone and mobile number formatting: Every country has
different phone and mobile number formats. Also, the ISD
varies from one country to another country.
So, the application should take care of it.
• Address Formatting: Address formats also vary from one
country to another. In
• Zip Code Format: The zip code format also changes from
one country to another.
What is Compatibility?
• Compatibility is nothing but the capability of existing or
living together:
• In normal life, Oil is not compatible with water, but milk can
be easily combined with water.
What is Compatibility Testing?
• Compatibility Testing is a type of Software testing to check
whether your software can run on different hardware,
operating systems, applications, network environments
or Mobile devices.
• Hardware : It checks software to be compatible with
different hardware configurations.
• Operating Systems : It checks your software to be
compatible with different Operating Systems like Windows,
Unix, Mac OS etc.
• Software : It checks your developed software to be
compatible with other software. For example, MS Word
application should be compatible with other software like MS
Outlook, MS Excel, VBA etc.
• Network : Evaluation of performance of a system in a
network with varying parameters such as Bandwidth,
Operating speed, Capacity. It also checks application in
different networks with all parameters mentioned earlier.