Software Testing

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 13

Software Testing

Day 1
Basic Concepts, Why Manual Testing?
7 Principles of software testing
SDLC
STLC
Testing Artifacts
Test Scenario & Test Case design
Levels and different Types of Testing
Testing techniques
Agile testing
Defect and Agile Scrum Management with JIRA
5 Key reasons on why Manual testing is so important?
• 1. User Experience (Human Eye captures more defects)
When manual testers interact with the system as how a user would, they can identify usability issues and glitches.
Human eyes can spot contextual, functional, visual, and usability bugs that automation scripts may not identify.
Testing functionalities like tap, shake, CAPTCHA, and video control based trigger actions using automated scripts still need a lot of effort

• 2. Exploratory Testing
Automation plays by the boundaries as created by test cases and scripts.
Exploratory testing, a skilled form of manual testing with critical, freestyle thinking, and observational skills can discover unidentified bugs

• 3. Manual Test Reports are Descriptive


Manual testing helps us understand the problem in detail both conceptually and contextually.
It allows the tester to empathize end-users while analyzing the product.
Manual Testers write highly descriptive test reports that explain the problem, the root cause, and suggest optimal ways to solve

• 4. Initial investment of time and money


Manual Testing delivers faster and better quality test results when it comes to testing the early stages testing .
On the other hand, Automation testing initially takes a significant amount of time and effort in writing automated test cases and building a
test automation framework.

• 5. Manual Testing is pocket-friendly


For smaller projects, the ROI delivered by manual testing proves to be too good whereas Automation attracts a lot of costs
7 Principles of software testing
1. Testing shows presence of defects
2. Exhaustive testing is not possible
3. Early Testing
4. Defect Clustering
5. Pesticide Paradox
6. Testing is context dependent
7. Absence of Error
Testing shows presence of defects
• Testing talks about the presence of defects and don’t talk about the
absence of defects.
• Software Testing reduces the probability of undiscovered defects
remaining in the software but even if no defects are found, it is not a
proof of correctness.
• At max we can give 99% bug-free.
Exhaustive testing is not possible
• Testing everything including all combinations of inputs and
preconditions is not possible.
• So, instead of doing the exhaustive testing we can use risk analysis
and priorities to focus testing efforts
• Example: To Enter the Age in Age field. It should accept 18 to 85 in-
between it should not accept 60 to 65
• Due to timelines we wont give all combinations of inputs
• We follow Equivalence Partitioning or boundary value analysis
Early Testing
• Testing should start as early as possible in the Software Development
Life Cycle.
• So that any defects in the requirements or design phase are captured
in early stages
• It is much cheaper to fix a Defect in early stages of testing
Defect Clustering
• Defect Clustering which states that a small number of modules
contain most of the defects detected.
• This is the application of the Pareto Principle to software testing:
approximately 80% of the problems are found in 20% of the modules.
Pesticide Paradox
• Good testing requires continual development of new testing ideas.
• You need to updates your tests after repeating over and over again,
because eventually the same set of test cases will no longer find any
new defects.
Testing is context dependent
• Testing is basically context dependent.
• Different kinds of sites are tested differently.
• For example, a software application in a medical device needs more
testing than a games software.
• By the same token, a very popular website (IRCTC), needs to go
through rigorous performance testing as well as functionality testing
then other site (Smartprix) to make sure the performance is not
affected by the load on the servers.
Absence of Error
• Even the software is 99% Bug free; If the system built is unusable and
does not fulfil the user’s needs and expectations then finding and
fixing defects does not help.
• Software testing is not mere finding defects, but also to check that
software addresses the business needs.
• To solve this problem , the next principle of testing states that Early
Testing
Time for Clarifications !!

You might also like