0% found this document useful (0 votes)
14 views

Copy of ch2

Uploaded by

sanchita bansode
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
0% found this document useful (0 votes)
14 views

Copy of ch2

Uploaded by

sanchita bansode
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/ 128

Unit-II

Types and Levels of Testing


Levels of Testing
Different levels of software testing are as follows.

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

For example you are testing a function; whether loop or statement


in a program is working properly or not then this is called as unit
testing.

Unit testing focuses on the distinct modules of the product.


Tests that are performed during the unit testing are explained
below:
1) Interface : In module interface is tested to ensure that
information properly flows into and out of the program unit.

2) Local data structures: Local data structures are examined to


ensure that data store temporarily maintains its integrity during
execution.
3) Boundary conditions: Boundary conditions are tested to ensure
the module operates properly at boundaries established to limit or
restrict processing

4) Independent paths: All independent path ensures that all


statements in a module have been executed at least once.

5) Error handling paths: Finally all error handling paths are


tested.
Unit Test Procedure:--
● Unit testing is normally considered as an adjunct to the
coding step.

● The design of unit tests can be performed before coding
begins or after source code has been generated.

● A component is a stand-alone program and driver, stub
software must be developed for each unit test.
● The unit test environment is illustrated in above figure

● A driver is a “main program” that accepts test case data,


passes such data to the component(to be tested), and
prints relevant results.

● A stub or dummy subprogram may do minimal data


manipulation, provides verification of entry.
Advantages of unit testing:
1. Defects are found at an early stage.
2. it helps in fixing the issues early in source code without
affecting other source codes.

3. It helps to maintain the code. Since developers making the


code less inter-dependent, which in turn reduces the chances
of impacting other sets of source code.
4. It helps in reducing the cost of defect fixes, since bugs are
found early on in the development cycle.

5. It helps in simplifying the debugging process. Only latest


changes made in the code need to be debugged if a test case
fails while doing unit testing.
Unit Testing Disadvantages
● Unit testing can't be expected to catch every error in a program.
It is not possible to evaluate all execution paths even in the most
trivial programs

● Unit testing by its nature focuses on a unit of code. Hence it


can't catch integration errors or system level errors.
Integration Testing
● A system is made up of multiple components or modules
that can comprise hardware and software.

● Integration is defined as the set of interactions among
components.

● Testing the interaction between the modules and
interaction with other systems externally is called
integration
● Integration testing starts when two of the product
components are available and ends when all component
interfaces have been tested.

● Final round of integration involving all components is


called Final Integration Testing(FIT) or System Testing.
● Following figure shows a set of modules and the
interfaces with them.

● The solid lines represent explicit interfaces and the dotted
lines represent implicit interfaces.

● From figure it is clear that there are at least 12 interfaces
between the modules to be tested(9 explicit and 3 implicit)
● Now the question is , in what order do these interfaces
need to be tested.
● There are several methodologies available, to decide the
order for integration testing. These are as follows
1. Top-down integration
2. Bottom-up integration
3. Bi-directional integration
4. System integration
Top-Down Integration
● Integration technique involves testing the topmost
component interface with other components in same order
as you navigate from top to bottom, till you cover all the
components.

● To understand the methodology better, let us assume, a
software development where components become
available one after another in the order of component
numbers specified in figure
● The integration starts with testing the interface between
component1 and component2.

● To complete the integration testing all interfaces
mentioned in figure covering all the arrow, have to be
tested together.

● The order in which the interfaces are to be tested is
depicted in table.
step Interfaces tested
1 1-2
2 1-3
3 1-4
4 1-2-5
5 1-3-6
6 1-3-6-(3-7)
7 (1-2-5)-(1-3-6-(3-7))
8 1-4-8
9 (1-2-5)-(1-3-6-(3-7))-(1-4-8)
● If a component at a higher level requires a modification
every time a module gets added to the bottom, then for
each component addition integration testing needs to be
repeated starting from step 1.

● Hence whatever may be the software development model,
top-down integration can be still applied with appropriate
repetition in integration testing.
● The order in which the interfaces are tested may change
in figure if different methods of traversing are used.

● A breadth first approach will get you component order
such as 1-2, 1-3, 1-4, and so on.

● A depth first order will get you components such as 1-2-5,
1-3-6 and so on.
Bottom-Up Integration
● Bottom-up integration is just the opposite of top-down
integration.

● Integration path of components available in reverse order,
starting from the bottom.

● Double arrow in fig denotes both the logical flow of
components and integration approach.
● Logic flow is from top to bottom and integration path is
from bottom to top.

● The navigation in bottom-up integration starts from
component 1 , covering all sub-systems, till component 8
is reached.

● The order in which the interfaces have to be tested is
depicted in table
step Interfaces tested
1 1-5
2 2-6, 3-6
3 2-6-(3-6)
4 4-7
5 1-5-8
6 2-6-(3-6)-8
7 4-7-8
8 (1-5-8)-(2-6-(3-6)-8)-(4-7-8)
● One difference between figure 5.2 and figure 5.3 is that
the arrows are two-way arrows. The arrows from top to
bottom (that is downward pointing arrow) indicate
interaction or control flow. The arrow from bottom to top
(that is upward pointing arrow) indicate integration path.
What it means is that the logic flow of the product can be
different from the integration path.

● In bottom-up integration logic flow is going from up to
down, the integration path is going from down to up.
Bi-Directional Integration
● Bi-directional integration is a combination of the top-down
and bottom-up integration approaches.

● Bi-directional integration is performed with the use of
stubs and drivers.

● Drivers are used to perform upstream connectivity while
stubs provide downstream connectivity.
● After the testing of integrated components, the drivers and
stubs are discarded.

● Steps for integration testing using this approach is given
in table as below
● Steps 1-3 use a bottom-up integration approach and step4
uses a top-down integration approach

Table--steps for integration

Step Interfaces tested


1 6-2
2 7-3-4
3 8-5
4 (1-6-2)-(1-7-3-4)-(1-8-5)

What Is Web Testing?
● Web testing is a software testing practice to test the
websites or web applications for potential bugs. It's a
complete testing of web-based applications before making
live.
● By performing website testing, an organization can make
sure that the web-based system is functioning properly
and can be accepted by real-time users.


Web Testing Checklists
1) Functionality Testing

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?

● First, check all the validations on each field.


● Check for default values of the fields.
● Wrong inputs in the forms to the fields in the forms.
● Options to create forms if any, form delete, view or
modify the forms.
Cookies Testing:
Cookies are small files stored on the user machine. These
are basically used to maintain the session- mainly the login
sessions. Test the application by enabling or disabling the
cookies in your browser options.
Validate your HTML/CSS:
If you are optimizing your site for Search engines then
HTML/CSS validation is the most important one. Mainly
validate the site for HTML syntax errors. Check if the site is
crawlable to different search engines.
Database testing:
Data consistency is also very important in a web application.
Check for data integrity and errors while you edit, delete,
modify the forms or do any DB related functionality.
Check if all the database queries are executing correctly, data
is retrieved and also updated correctly.
#2) Usability Testing
Usability testing is the process by which the human-computer interaction
characteristics of a system are measured, and weaknesses are identified
for correction.

Usability testing includes the following:

● The website should be easy to use.


● Instructions provided should be very clear.
● Check if the instructions provided are perfect to satisfy its
purpose.
● The main menu should be provided on each page.
● It should be consistent enough.
Test for navigation:

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.

The main interfaces are:

● Web server and application server interface


● Application server and Database server interface.

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.

Test web application on different browsers like Internet Explorer, Firefox,


Netscape Navigator, AOL, Safari, Opera browsers with different versions.

Mobile browsing:

Test your web pages on mobile browsers. Compatibility issues may be


there on mobile devices as well.
OS compatibility:
Some functionality in your web application is that it may not be compatible
with all operating systems. All new technologies used in web development
like graphic designs, interface calls like different API’s may not be
available in all Operating Systems.

Hence test your web application on different operating systems like


Windows, Unix, MAC, Linux, Solaris with different OS flavors.
Printing options:

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

The web application should sustain to heavy load. Web performance


testing should include:

● Web Load Testing


● Web Stress Testing

Test application performance on different internet connection speed.

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

Tested on various networks like Dial-Up, ISDN etc.


#6) Security Testing

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.

● Performance tests are typically executed to examine


speed, robustness(meaning quality of being strong),
reliability, and application size.
Performance testing process incorporates “performance”
indicators such as:
● Browser, page, and network response times
● Server request processing times
● Acceptable concurrent user volumes
● Processor memory consumption; number and type of
errors that might be encountered
● The performance tests you run will help to ensure that it
will meet the service levels expected in production, as well
as deliver a positive user experience.

● The adoption, success, and productivity of applications


depends directly on the proper implementation of
performance testing.
● the right time to conduct performance testing---As the
application starts to take shape, performance tests should
become more and more extensive(large). In some cases,
they may be carried out during deployment .
There are basically four kinds of performance testing:
● Load Testing is a type of performance testing conducted
to evaluate the behavior of a system at increasing
workload.

● Stress Testing is a type of performance testing


conducted to evaluate the behavior of a system at or
beyond the limits of its anticipated workload.
● Endurance Testing is a type of performance testing
conducted to evaluate the behavior of a system when a
significant workload is given continuously.

● Spike Testing is a type of performance testing conducted


to evaluate the behavior of a system when the load is
suddenly and substantially increased.
Load Testing
● Load Testing measures the response time when the application is
subjected to more than usual 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 usually started as low numbers and gradually


increased over a given period of time until it reaches the desired load
on the system and then it ramps(decrease in volume) down.

“ 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.

Example: MS Word may give a ‘Not Responding’ error message when


you try to copy a 7-8 GB file.

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.

“It is all about surfacing issues under extreme conditions and


resource failures.”
security testing----
What is security?
Security is set of measures to protect an application against unforeseen actions
that cause it to stop functioning or being exploited. Unforeseen actions can be
either intentional or unintentional.

OR

“Security means that authorized access is granted to protected data


and unauthorized access is restricted”.
What is security testing?
● Security Testing ensures that system and/or applications are free from any
ambiguities that may cause any loss.

● 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.

● Normally, security testing has the following attributes:



● Confidentiality – Information should be accessible to only those with
authorized access
● Integrity – A measure intended to allow the receiver to determine that
the information which it is providing is correct
● Authentication – Establishes the identity of the user
● Authorization – User should receive a service or perform an action
for which he has permission
● Availability – Information and communication services should be
ready any time, as needed

● Thus, security testing is to identify the threats in the system and


measure its potential vulnerabilities. It also helps in detecting all
possible security risks in the system and help developers in fixing
these problems through coding.
This can lead to disaster when vulnerability in your application is exploited by a
malicious third party, with outcomes such as:

● Tremendous damage to your organization’s brand


● A permanent loss in customer confidence
● Expensive vulnerability remediation costs, which are at their peak
post-production
● Legal sanctions and civil grievances, depending on the case in question
CLIENT / SERVER TESTING---
● This type of testing usually done for 2 tier applications (usually
developed for LAN)

● Here we will be having front-end and backend.

● The application launched on front-end will be having forms and


reports which will be monitoring and manipulating data

● Example: applications developed in VB, VC++, Core Java, C, C++,


D2K, PowerBuilder etc.,
● The backend for these applications would be MS Access, SQL
Server, Oracle, Sybase, Mysql, Quadbase

● In Client-server testing there are several clients communicating with


the server.
1. Multiple users can access the system at a time and they can
communicate with the server.
2. Configuration of client is known to the server with certainty.
3. Client and server are connected by real connection.
Testing approaches of client server system:

● 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.

● Integration testing: After successful testing of server, client and


network, they are brought together to form system testing.
● Performance testing: System performance is tested when number of
clients is communicating with server at a time. Volume testing and
stress testing may be used for testing, to test under maximum load as
well as normal load expected. Various interactions may be used for
stress testing.

● Concurrency Testing: It is very important testing for client-server


architecture. It may be possible that multiple users may be accessing
same record at a time, and concurrency testing is required to
understand the behavior of a system in this situation.
● Disaster Recovery Business continuity testing: When the client
server are communicating with each other , there exit a possibility of
breaking of the communication due to various reasons or failure of
either client or server or link connecting them. The requirement
specifications must describe the possible expectations in case of any
failure.

● Compatibility Testing: Client server may be put in different
environments when the users are using them in production. Servers
may be in different hardware, software, or operating system
environment than the recommended. Other testing such as security
testing and compliance testing may be involved if needed, as per
testing and type of system.
Acceptance Testing----
● This is a type of testing done by users, customers, or other authorised
entities to determine application/software needs and business
processes.

● Acceptance testing is the most important phase of testing as this


decides whether the user/customer approves the application/software
or not. It may involve functionality, usability, performance, and U.I of
the application. It is also known as user acceptance testing (UAT),
operational acceptance testing (OAT), and end-user testing.
● Once the System Testing process is completed by the testing team
and is signed-off, the entire Product/application is handed over to the
customer/few users of customers/both, to test for its acceptability i.e.,
Product/application should be flawless in meeting both the critical and
major Business requirements. Also, end-to-end business flows are
verified similar as in real-time scenario.
● Though System testing has been completed successfully, the
Acceptance test is demanded by the customer.
● Tests conducted here are repetitive, as they would have been covered
in System testing.

Then, why is this testing is conducted by customers?

This is because:

● To gain confidence in the product that is getting released to the


market.
● To ensure that the product is working in the way it has to.
● To ensure that the product matches current market standards and
is competitive enough with the other similar products in the
market.
Types of Acceptance testing:-

#1) User Acceptance Testing (UAT)

● 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.

#3) Contract Acceptance Testing (CAT)

● Contract signed here is termed as Service Level Agreement (SLA),


which includes the terms where the payment will be made only if the
Product services are in-line with all the requirements, which means
the contract is fulfilled.
#4) Regulations/Compliance Acceptance Testing (RAT)

● This is to assess whether the Product violates the rules and


regulations that are defined by the government of the country where it
is being released. This may be unintentional but will impact negatively
on the business.
● If any of the rules and regulations are violated for any country, then
that country or the specific region in that country will not be allowed to
use the Product and is considered as a Failure. Vendors of the
Product will be directly responsible if the Product is released even
though there is a violation.
#5) Operational Acceptance Testing (OAT)

● This is to assess the operational readiness of the Product. It mainly


includes testing of recovery, compatibility, maintainability, technical
support availability, reliability, fail-over, localization etc.

● OAT mainly assures the stability of the Product before releasing it to


the production.
#6) Alpha Testing

● This is to assess the Product in the development/testing environment


by a specialized testers team usually called alpha testers.

● Here, the testers feedback, suggestions help to improve the Product


usage and also to fix certain bugs.

● Here, testing happens in a controlled manner.


● This is a form of internal acceptance testing performed mainly by the
in-house software QA and testing teams.

● 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.

● Alpha testing can also be done by the potential users or customers of


the application. But still, this is a form of in-house acceptance testing.
● Alpha Testing is actually a methodology to assess the quality and
stability of a product.

This phase mainly focuses on:

● Uncover bugs (Specifically in corner areas)


● Usability Issues
● Feature gaps
● Compatibility/Inter-operability Issues
● Feedback from the team which involved in Alpha Test is gathered to
evaluate the Product’s quality and stability, and any suggestions to
improve the product are considered.

● And the main question that arises in Alpha Testing is “Does the
Product Work?”.
#7) Beta Testing/Field Testing

● This is to assess the Product by exposing it to the real end-users,


usually called beta testers/beta users, in their environment.
● Continuous feedback from the users is collected and the issues are
fixed.
● Also, this helps in enhancing/improving the Product to give a rich user
experience.
● Testing happens in an uncontrolled manner, which means a user has
no restrictions on the way in which the Product is being used.
● This is the final testing phase where the companies release the
software to external user outside the company test teams or
employees.
● This initial software version is known as the beta version. Most
companies gather user feedback in this release.

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

First phase of testing in Second phase of testing in


Customer Validation Customer Validation

Performed at developer's site - Performed in real environment,


testing environment. Hence, the and hence activities cannot be
activities can be controlled controlled
Only functionality, usability are Functionality, Usability,
tested. Reliability and Security Reliability, Security testing are all
testing are not usually performed given equal importance to be
in-depth performed
White box and / or Black box Only Black box testing
testing techniques are involved techniques are involved

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

To ensure Beta readiness To ensure Release readiness


(for Production launch)

Focus on finding bugs Focus on collecting suggestions


/ feedback and evaluate them
effectively

Does the product work? Do customers like the product?


Regression Testing
Regression testing definition:
Repeated testing of an already tested program, after modification, to
discover any defects introduced or uncovered as a result of the changes
in the software being tested or in another related or unrelated software
components.
--- In simple words, We do regression testing by re-executing the tests
against the modified application to evaluate whether the modified code
breaks anything which was working earlier.

--- Anytime we do modify an application, we should do regression testing


(we run regression test).

---Regression testing gives confidence to the developers that there is no


broken functionality after modifying the production code. It makes sure
that there are no unexpected side effects.
● Regression Testing is defined as a type of software testing to confirm
that a recent program or code change has not adversely affected
existing features.

● Regression Testing is nothing but a full or partial selection of already


executed test cases which are re-executed to ensure existing
functionalities work fine.
This testing is done to make sure that new code changes should not have
side effects on the existing functionalities. It ensures that the old code still
works once the new code changes are done.

Need of Regression Testing

Regression Testing is required when there is a

● Change in requirements and code is modified according to the


requirement
● New feature is added to the software
● Defect fixing
● Performance issue fix
Regression Testing can be carried out using the following techniques:
Retest All

● It aims to re-test the entire test suite.


Regression Test Selection

● Instead of re-executing the entire test suite, it is better to select part of


the test suite to be run
● Test cases selected can be categorized as 1) Reusable Test Cases

2) Obsolete Test Cases.

● Re-usable Test cases can be used in succeeding regression cycles.


● Obsolete Test Cases can't be used in succeeding cycles.
Prioritization of Test Cases

● Prioritize the test cases depending on business impact, critical &


frequently used functionalities. Selection of test cases based on
priority will greatly reduce the regression test suite.
GUI Testing

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.

● GUI is what the user sees.


● Say if you visit any site what you will see say homepage it is the GUI
(graphical user interface) of the site.

● In above example, if we have to do GUI testing we first check that the
images should be completely visible in different browsers.

● Also, the links are available, and the button should work when clicked.

● Also, if the user resizes the screen, neither images nor content should
shrink or crop or overlap.
Need of GUI Testing
● A user doesn't have any knowledge about XYZ software/Application. It
is the UI of the Application which decides that a user is going to use
the Application further or not.
● A normal User first observes the design and looks of the
Application/Software and how easy it is for him to understand the UI.
If a user is not comfortable with the Interface or find Application
complex to understand he would never going to use that Application
Again. That's why, GUI is a matter for concern, and proper testing
should be carried out in order to make sure that GUI is free of Bugs.
The following checklist will ensure detailed GUI Testing in Software
Testing.

● 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---

GUI testing can be done in three ways:

Manual Based Testing

Under this approach, graphical screens are checked manually by testers


in conformance with the requirements stated in the business requirements
document.
Code Coverage Embedded---

GUI testing can be done using automation tools.

Model Based Testing---

A model is a graphical description of a system's behavior. It helps us to


understand and predict the system behavior. Models help in a generation
of efficient test cases using the system requirements.
The following needs to be considered for this model based testing:

● Build the model


● Determine Inputs for the model
● Calculate the expected output for the model
● Run the tests
● Compare the actual output with the expected output
● A decision on further action on the model

You might also like