100% found this document useful (1 vote)
12 views

Software Testing - Day 3

Uploaded by

SASIKUMAR S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
12 views

Software Testing - Day 3

Uploaded by

SASIKUMAR S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Software Testing

Prepared by: Ajit Dash

1
Syllabus
Day 1 Day 2 Day 3 Day 4
• Introduction to testing • Testing as a career • Types of applications • QA vs QC
• Why software testing • Qualities of a tester • Verification vs Validation • SDLC
• Importance of software testing • Principles of testing • Advantages & disadvantages of SDLC

Day 5 Day 6 Day 7 Day 8


• Advantages & disadvantages of • STLC • Levels of software testing • Test scenario writing
SDLC (Continue) • Types of software testing • Test plan & Test strategy • Test case writing
• Brief on Agile methodology • Effective way of writing test cases

Day 9 Day 10 Day 11 Day 12


• Error, bug, defect, failure • Testing technology • Defect management tool • Defect reporting
• Bug life cycle • Testing of Web & Mobile • Defect template • Entry exit criteria
• Roles and responsibility in application
every stage • Severity vs Priority

Day 13 Day 14 Day 15


• Requirement Traceability • Doubt clarification • Practice for Interview
Matrix • Hands on testing • Mock interview
• Testing deliverables and
documentations

2
Agenda | Day 3

• What is application
• Types of application
• Types of application (In detail)
• Types of mobile application
• Verification vs Validation
• Principles of testing
• Principles of testing (in detail)

3
What is Application?
Applications are pieces of software that enable a user to perform certain tasks on a computer or
mobile device. All computers and mobile devices contain preloaded or built-in applications, such as a
web browser, calculator, media player etc.
These applications operate using your device’s operating system (OS), with the support of
background programs called system software. These communicate with other applications or
hardware, such as memory and storage, using its application programming interface (API), which is a
tool that allows two applications to communicate with each other.

4
Types of Application
There are three types of applications used by people worldwide. Let’s go through these different
types of application one by one.

Application

No Does it need to Yes


be installed?

Does it require active user engagement? Is it to be installed on a mobile device?

No Yes No Yes

Desktop app Mobile app


Website Web app

Is it optimized for Is it written specifically for one OS?


mobile devices?
No Yes

Mobile Yes Mobile Hybrid app Native app


Website Web app 5
Types of Application (In detail)
Web application:
A web application is an application that runs on a browser and does not require any installation. Web
applications require a server, URL, and access to the application. These are the set of programs and
services that deliver the information to the users using HTTP and HTTPS connections. Additionally,
they are more secure, simple to back up, and economical than others. Example: Amazon.
Mobile application:
The applications that created to operate on different mobile platforms is known as mobile
application. To be more specific, a mobile platform is a mobile operating system. These platforms
have distinct rules, limitations, and specifications for creating mobile apps. It has 3 sub types:
Native app, Mobile web app, Hybrid app (described in next slide).
Desktop application:
Any application that runs on a computer’s environment and configuration without opening a
browser is a Desktop Application. Here, neither an internet connection nor a server is required. Only
one person can access the installed software at a time on a device. These applications are usually
designed for desktop operating systems like Windows, macOS, Linux etc. Example: Paint, Notepad,
Calendar etc.
6
Types of Mobile Application
Native application:
Native applications refer to applications that are built to run independently on any mobile device.
These applications do not require a browser or URL. We have two primary platforms in the current
trend: iOS and Android. There are also a few Windows-based mobile platforms, such as Nokia and
BlackBerry. Common native mobile applications are weather apps, music players, and also installable
apps like scanners.
Mobile web application:
A mobile web application runs on various mobile browsers and is accessible through a URL. So, to
use the mobile web application, we require a mobile device, a browser, and internet access. These
applications do not require installations. These are also super responsive websites and give the best
user experience. The most used types of mobile web applications are progressive web apps.
Hybrid application:
The Hybrid applications have combined features of native and web applications, and the look and
feel remain almost the same. They are developed using HTML5 and JavaScript like other web apps.
Hybrid applications give users the best minimum load time and user experience even in lesser
bandwidth network connectivity. Example: Instagram, Uber, Gmail etc.
7
Verification vs Validation
Verification: Verification is all about process oriented to ensure whether the product that is
developed is right or not. Verification is about process, standard and guideline. It does not include
the execution of the code. Verification means, ”Are we building the product right?”
Validation: Validation is all about product oriented the check whether the software product is up to
the mark or not. It is the validation of actual and expected product. It includes testing and validating
the actual product. It includes the execution of the code. Validation means, ”Are we building the
right product?”

8
Principles of Testing

9
Principles of Testing (In detail)
Principle 1: Testing shows presence of defects
• Testing can show that defects are present but cannot prove that there are no defects. Even after
testing the application or product thoroughly we cannot say that the product is 100% defect free.
• Testing always reduces the number of undiscovered defects remaining in the software but even if
no defects are found, it is not a proof of correctness.

Principle 2: Exhaustive testing is impossible


• Testing everything including all combinations of inputs and preconditions is not possible. So,
instead of doing the exhaustive testing we can use risks and priorities to focus testing efforts
• Example: In an application in one screen there are 15 input fields, each having 5 possible values,
then to test all the valid combinations you would need 30,517,578,125 (515) tests.
• The above Example is very unlikely that the project timescales would allow for this number of
tests. So, accessing and managing risk is one of the most important activities and reason for
testing in any project.

10
Principles of Testing (In detail)
Principle 3: Early Testing
• The sooner we start the testing activities the better we can utilize the available time. As soon as
the initial products, such the requirement or design documents are available, we can start
testing.
• It is common for the testing phase to get squeezed at the end of the development life-cycle, i.e.
when development has finished, so by starting testing early, we can prepare testing for each level
of the development life-cycle
• Another important point about early testing is that when defects are found earlier in the life-
cycle, they are much easier and cheaper to fix.
Principle 4: Defect Clustering
• During testing, it can be observed that most of the reported defects are related to small number
of modules within a system. i.e. small number of modules contain most of the defects in the
system.
• A small number of modules contains most of the defects discovered during pre-release testing or
shows the most operational failures.
• By identifying and focusing on these clusters, testers can efficiently test the sensitive areas while
concurrently testing the remaining “non-sensitive” areas.
11
Principles of Testing (In detail)
Principle 5: Pesticide Paradox
• The same kind of tests are repeated again and again, eventually the same set of test cases will no
longer be able to find any new bugs. This is called “Pesticide Paradox”.
• To overcome this “Pesticide Paradox”, it is really very important to review the test cases regularly
and new and different tests need to be written to exercise different parts of the software or
system to potentially find more defects.
• Anytime a fault is fixed, or a new functionality added, we need to do regression testing to make
sure the new changed software has not broken any other part of the software.
• However, those regression test cases also need to change to reflect the changes made in the
software to be applicable and hopefully fine new defects.
Principle 6: 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. More importantly a medical device software requires risk-based testing, be compliant
with medical industry regulators and possibly specific test design techniques.
• The same tests should not be applied across the board because different software products have
varying requirements, functions and purposes 12
Principles of Testing (In detail)
Principle 7: Absence of errors – fallacy
• A test that finds no errors is different than
concluding that the software is error-free.
It should be assumed that all software
contains some faults, even if said faults
are hidden.

• When the built system is unusable and


does not fulfill the user’s needs and
expectations then finding and fixing
defects does not help.

13
Thank You!

14

You might also like