Functional and Non Functional Testing: 7.1 Smoke Testing: 7.2 Sanity Testing
Functional and Non Functional Testing: 7.1 Smoke Testing: 7.2 Sanity Testing
7.1 Smoke Testing:“Smoke testing refers to testing the basic functionality of the build declared as unstable and it
is NOT tested anymore until the smoke test of the build passes.
7.2 Sanity Testing:“Software testing technique performed by the test team for some basic tests. The aim of basic
test is to be conducted whenever a new build is received for testing. “
The terminologies such as Smoke Test or Build Verification Test or Basic Acceptance Test or Sanity Test are
interchangeably used, however, each one of them is used under a slightly different scenario.
Sanity test is usually unscripted, helps to identify the dependent missing functionalities. It is used to determine if the
section of the application is still working after a minor change.Sanity testing can be narrow and deep. Sanity test is a
narrow regression test that focuses on one or a few areas of functionality
7.3 Re-testing: “Retesting is executing a previously failed test against new software to check if the problem is
resolved. “
7.4 Regression Testing: “Regression testing is performed to verify if the build has NOT broken any other parts of
the application by the recent code changes for defect fixing or for enhancement. “
The purpose of a regression testing is to verify that modifications in the software or the environment have not
caused any unintended adverse side effects and that the system still meets its requirements.
7.5 Exploratory Testing: “Testing of software without any documents (test cases or test planning) and Identify
the functionality of application by exploring the application and exploring & learni
7.6 Monkey Testing: “Monkey testing is a software testing technique in which the testi
system under test randomly. The Input data that is used to test also generated r
7.7 End to End Testing:“End-to-end testing is a methodology used to test whether the flow of an application is
performing as designed from start to finish.”
The purpose of carrying out end-to-end tests is to identify system dependencies and to ensure that the right
information is passed between various system components and systems.
There isn't really a huge difference between the two and in some establishments the terms could be used
interchangeably. Everywhere is different.
System testing: You're testing the whole system i.e. all of its components to ensure that each is functioning
as intended. This is more from a functional side to check against requirements.
End to end testing: This is more about the actual flow through a system in a more realistic end user scenario.
Can a user navigate the application as expected and does it work. You're testing the workflow.
7.8 User Interface Testing:“Graphical User Interface (GUI) testing is checking the application design of
an application”.
Ex: Required/Optional, Fields Align, Lengths, Progress Bars, Scroll Bars, Alignments, etc
7.9 Usability Testing: “In usability testing basically the testers tests the ease with which the user interfaces
can be used. It tests that whether the application is user-friendly or not. “
7.10 Stress Testing: “It is a form of testing that is used to determine the stability of a given system,
Stress testing involves testing beyond normal operational capacity, often to a breaking point, in order to
observe the results. “
Stress testing is a generic term used to describe the process of putting a system through stress.
7.11 Load Testing: “Load testing is performed to determine a system’s behavior under both normal
and at peak conditions. “
A load test is usually conducted to understand the behavior of the application under a specific expected
load.
E.g. If the number of users are in creased then how much CPU, memory will be consumed, what is the network
and bandwidth response time.
7.12 Performance Testing: “Performance testing is testing that is performed, to determine how fast
some aspect of a system performs under a particular workload. “
It can serve different purposes like it can demonstrate that the system meets performance criteria .
2
7.13 Localization Testing: “Localization translates the product UI and occasionally changes some initial settings
to make it suitable for another region.” Localization testing checks the quality of a product's localization for a
particular target culture/locale.
7.14 Globalization Testing: “Globalization Testing is testing process to check whether software can
perform properly in any locale or culture & functioning properly with all types of international inputs and
steps to effectively make your product truly global.”
3
This type of testing validates whether the application is capable for using all over the world and
to check whether the input accepts all the language texts.
Ex: Let’s see another example of a Zip code field in Sign up form:
7.15 Security Testing: “Security testing is basically to check that whether the application or the
product is secured or not. “
Can anyone came tomorrow and hack the system or login the application without any authorization.
It is a process to determine that an information system protects data and maintains functionality as
intended.
Security testing is related to the security of data and the functionality of the application. You
should be aware of the following concepts while performing security testing:
1. Confidentiality - The application should only provide the data to the relevant party e.g. one
customer's transactional data should not be visible to another customer; the irrelevant personal
details of the customer should not be visible to the administrator and so on.
2. Integrity - The data stored and displayed by the application should be correct e.g. after a
withdrawal, the customer's account should be debited by the correct amount.
4. Authorization - The application or a user should only be able to perform the tasks which
they are respectively authorized to perform e.g. a customer should not be able to withdraw more
than the balance in their account without having an overdraft facility, the application should not be
able to levy charges on a customer account without prior customer approval.
5. Availability - The data and functionality should be available to the users throughout the
working period e.g. if the bank's operating times are from 8 a.m. to 8 p.m. on all working days, it
should be possible for a customer to access their account and make the necessary transactions on
their account.
6. Non-repudiation - At a later date, it should not be possible for a party to deny that a
particular transaction or data change took place e.g. if a customer withdraws an amount from their
account, this should trigger the relevant actions (posting to their transaction records, debiting their
account and sending them a notification etc.).
7.16 Compatibility Testing: ”Compatibility Testing ensure compatibility of the application built with
various other objects such as other web browsers, hardware platforms, operating systems etc.”
4
This type of testing helps find out how well a system performs in a particular environment that
includes hardware, network, operating system and other software etc .
7.17 Installation Testing: “Installation testing is performed to ensure that all necessary
components are installed properly and working as per the requirements of the software, post
installation. Installation process may include partial, full or upgrade install. “
7.18 Recovery Testing: “Recovery testing is done in order to check how fast and better the
application can recover after it has gone through any type of crash or failure“
Ex: For example, when an application is receiving data from a network, unplug the connecting cable. After
some time, plug the cable back in and analyze the application’s ability to continue receiving data from the
point at which the network connection got disappeared. Restart the system while a browser has a
definite number of sessions and check whether the browser is able to recover all of them or not.
8.1 What is Windows application: “A program that is written to run under Microsoft's Windows
operating system. “