Copy of ch2
Copy of ch2
1. Unit Testing
2. Integration Testing
3. System Testing
4. Acceptance Testing
LEVELS OF TESTING
Done by Developers
Øc www.SoftwareTestingMateria1.com
1) Unit testing:
● A Unit is a smallest testable portion of system or
application.
● This kind of testing helps to test each module
separately.
● It checks that component are fulfilling functionalities
or not.
● This kind of testing is performed by developers.
2) Integration testing:
● Integration means combining. For Example, In this
testing phase, different software modules are
combined and tested as a group to make sure that
integrated system is ready for system testing.
● Integrating testing checks the data flow from one
module to other modules.
● This kind of testing is performed by testers.
3) System testing:
● System testing is performed on a complete,
integrated system.
● It allows checking system's compliance as per the
requirements.
● It tests the overall interaction of components.
● It involves load, performance, reliability and security
testing.
● System testing most often the final test to verify that
the system meets the specification.
● It evaluates both functional and non-functional need
for the testing.
4) Acceptance testing:
● Acceptance testing is a test conducted to find if the
requirements are met.
● Acceptance testing is basically done by the user or
customer. However, other stockholders can be
involved in this process.
● Types of Acceptance Testing are Alpha, Beta &
Gamma Testing.
Unit Testing
● This is a type of testing which is done by software
developers in which the smallest testable module of an
application - like functions, procedures or interfaces - are
tested to determine if they are fit to use.
●
● This testing is done to ensure that the source code written
by the developer meets the requirement and behaves in
an expected manner.
● Unit testing is done before integration testing,
●
● Unit tests are basically written and executed by
software developers to make sure that code meets its
design and requirements and behaves as expected.
● The goal of unit testing is to segregate each part of the
program and test that the individual parts are working
correctly.
●
● This means that for any function or procedure when a set
of inputs are given then it should return the proper values.
It should handle the failures gracefully during the course
of execution when any invalid input is given.
●
● Unit testing is basically done before integration as
shown in the image below.
● Unit Tests fix bug early in development cycle and save
costs.
●
● It helps the developers to understand the code and
enable them to make changes quickly
●
● Good unit tests serve as project documentation
●
● Reuse both your code and your tests to your new project.
Example of Unit testing is explain below
2) Usability testing
3) Interface testing
4) Compatibility testing
5) Performance testing
6) Security testing
#1) Functionality Testing
Test for – all the links in web pages, database connection,
forms used for submitting or getting information from the user
in the web pages, Cookie testing etc.
●
Check all the links:
● Test the outgoing links from all the pages to the specific
domain under test.
● Test all internal links.
● Test links jumping on the same pages.
● Test links used to send email to admin or other users
from web pages.
● Test to check if there are any orphan pages.
● Finally, link checking includes, check for broken links in
all above-mentioned links.
Test forms on all pages:
Forms are an integral part of any website. Forms are used for
receiving information from users and to interact with them. So
what should be checked in these forms?
Navigation means how a user surfs the web pages, different controls like buttons, boxes or how the user uses the links on the
pages to surf different pages.
Content checking:
Content should be logical and easy to understand. Check for spelling errors. Usage of dark colors annoys the users and should
not be used in the site theme.
You can follow some standard colors that are used for web page and content building. These are the commonly accepted
standards like what I mentioned above about annoying colors, fonts, frames etc.
Content should be meaningful. All the anchor text links should be working properly. Images should be placed properly with proper
sizes.
#3) Interface Testing
In web testing, the server side interface should be tested. This is done by
verifying that communication is done properly. Compatibility of the server
with software, hardware, network, and the database should be tested.
Check if all the interactions between these servers are executed and
errors are handled properly.
#4) Compatibility Testing
Compatibility of your website is a very important testing aspect. See which
compatibility test to be executed:
● Browser compatibility
● Operating system compatibility
● Mobile browsing
● Printing options
Browser compatibility:
Different browsers have different configurations and settings that your web
page should be compatible with.
Mobile browsing:
If you are giving page-printing options then make sure fonts, page
alignment, page graphics etc., are getting printed properly. Pages should
fit the paper size or as per the size mentioned in the printing option.
#5) Performance testing
Web load testing: You need to test if many users are accessing or
requesting the same page. Can system sustain in peak load times? The
site should handle many simultaneous user requests, large input data
from users, simultaneous connection to DB, heavy load on specific pages
etc.
Web Stress testing: Generally stress means stretching the system
beyond its specified limits. Web stress testing is performed to break the
site by giving stress and its checked as for how the system reacts to
stress and how it recovers from crashes. Stress is generally given on
input fields, login and sign up areas.
Connection Speed
The primary reason for testing the security of a web is to identify potential
vulnerabilities and subsequently repair them.
● Network Scanning
● Vulnerability Scanning
● Password Cracking
● Log Review
● Integrity Checkers
● Virus Detection
performance testing
● PERFORMANCE TESTING is a type of software testing
that intends to determine how a system performs in terms
of responsiveness and stability under a certain load.
● The application will be slower under heavy load, but the aim of load
testing is to see whether the application can sustain(defend) the
increased load on the server or will it crash and kill the servers.
● Load is more about characterizing / simulating your actual workload.
“ Load Testing is all about testing behavior under normal and peak
workload conditions.”
The goals of load testing include:
● Exposing the defects in an application related to buffer overflow,
memory leaks and mismanagement of memory. The issues that would
eventually come out as a result of load testing may include load
balancing problems, bandwidth issues, the capacity of the existing
system, etc.
● To determine the upper limit of all the components of an application
like a database, hardware, network, etc. so that the application can
manage the anticipated load in the future.
Stress testing:
● Generally stress means stretching the system beyond its specified
limits. Stress testing is performed to break the application by giving
stress and its checked as for how the system reacts to stress and how
it recovers from crashes.
●
● stress testing is to determine the limit, at which the
system or software or hardware breaks. It also checks
whether the system demonstrates effective error
management under extreme conditions.
● Stressing anything beyond a point results in serious consequences in
humans, machine or a program. It either causes serious damages or breaks it
completely.
●
● In order to avoid any permanent damage to your system when they are
stressed i.e. heavily loaded, we need to find the breaking point and in turn the
solution to avoid such conditions.
“ Stress testing is defined as the process of testing the
hardware or software for its stability under a heavy load
condition. This testing is done to find the numerical point
when the system will break (in terms of a number of the users
and server requests etc.) and the related error handling for
the same. “
● During Stress testing, the application under test (AUT) is bombarded
with a heavy load for a given period of time to verify the breaking point
and to see how well error handling is done.
You have bombarded Word with a huge sized file and it couldn’t process
such a big file and as a result, it get stressed and stop responding.
Following are some technical reasons behind performing Stress
testing:
● To verify the system behavior under abnormal or extreme load
condition.
● To find the numerical value of users, requests etc., after which the
system may break.
● Handle the error graciously by showing appropriate messages.
● To be well prepared for such conditions and take precautionary
measures like code cleaning, DB cleaning, etc.
● To verify data handling before the system breaks i.e. to see if data
was deleted, saved or not etc.
● To verify security threat under such breaking conditions etc.
● Stress Testing : Stress Testing is like load testing but we keep on
increasing the load on the server till the time it crash down. The aim of
stress testing is to test limits of an application. Stress testing starts of
the same as load testing, e.g. gradually increasing load on the
servers, the process is repeated till the time the load is reached to the
unexpected limits.
OR
● Security testing of any system is about finding all possible ambiguities and
flaws of the system which might result into loss of information at the hands of
the employees or outsiders of the organization.
● Security Testing is defined as a type of Software Testing that ensures
application is free from any vulnerabilities, threats, risks that may cause a big
loss.
● Security testing of any system is about finding all possible loopholes and
weaknesses of the system which might result into a loss of information,
revenue, repute at the hands of the employees or outsiders of the
Organization.
● The goal of security testing is to identify the threats in the system and
measure its potential vulnerabilities, so the system does not stop functioning
or is exploited. It also helps in detecting all possible security risks in the
system and help developers in fixing these problems through coding.
● Component Testing: define the approach and test plan for testing
client and server individually. When server is tested there is need of a
client simulator, whereas testing client a server simulator, and to test
network both simulators are used at a time.
This is because:
● UAT is to assess whether the Product is working for the user, correctly
for the usage.
● This is also termed as End-User Testing.
● The term “User” here signifies the end-users to whom the
Product/application is intended and hence, testing is performed from
the end-users perspective and from their point of view.
#2) Business Acceptance Testing (BAT)
● This is to assess whether the Product meets the business goals and
purposes or not.
● Alpha testing is the last testing done by the test teams at the
development site after the acceptance testing and before releasing
the software for beta test.
● And the main question that arises in Alpha Testing is “Does the
Product Work?”.
#7) Beta Testing/Field Testing
In short, beta testing can be defined as– the testing carried out by real
users in a real environment.
Alpha Testing Beta Testing
Basic Understanding
Build released for Alpha Testing Build released for Beta Testing is
is called Alpha Release called Beta Release
System Testing is performed Alpha Testing is performed
before Alpha Testing before Beta Testing
Issues / Bugs are logged into Issues / Bugs are collected from
the identified tool directly and real users in the form of
are fixed by developer at high suggestions / feedbacks and are
priority considered as improvements for
future releases.
Helps to identify the different Helps to understand the
views of product usage as possible success rate of the
different business streams are product based on real user’s
involved feedback / suggestions.
Test Goals
To evaluate the quality of the To evaluate customer
product satisfaction
What is GUI?
There are two types of interfaces for a computer application. Command
Line Interface is where you type text and computer responds to that
command. GUI stands for Graphical User Interface where you interact
with the computer using images rather than text.
What is GUI Testing?
● GUI testing is defined as the process of testing the system's Graphical
User Interface of the Application Under Test. GUI testing involves
checking the screens with the controls like menus, buttons, icons, and
all types of bars - toolbar, menu bar, dialog boxes, and windows, etc.
● Check all the GUI elements for size, position, width, length, and
acceptance of characters or numbers. For instance, you must be able
to provide inputs to the input fields.
● Check you can execute the intended functionality of the application
using the GUI
● Check Error Messages are displayed correctly
● Check for Clear demarcation(seperation) of different sections on
screen
● Check Font used in an application is readable
● Check the alignment of the text is proper
● Check the Color of the font and warning messages is aesthetically
pleasing
● Check that the images have good clarity
● Check that the images are properly aligned
● Check the positioning of GUI elements for different screen resolution.
GUI Testing Techniques / Methods---