Sie sind auf Seite 1von 32

Q. What is the Sanity Test (or) Build test?

Ans. Verifying the critical (important) functionality of the software on a new


build to decide whether to carry further testing or not is termed as Sanity Test.

Q. What is the difference between client-server testing and web-based testing


Ans. Check for the answer

Q. What is Black Box testing?


Ans. Black Box Testing is also known as behavioral, opaque-box, closed-box,
specification-based or eye-to-eye testing.

It is a Software Testing method that analyses the functionality of a


software/application without knowing much about the internal structure/design of
the item that is being tested and compares the input value with the output value.

The main focus in Black Box Testing is on the functionality of the system as a
whole. The term �Behavioral Testing' is also used for Black Box Testing. Behavioral
test design is slightly different from the black-box test design because the use of
internal knowledge isn't strictly forbidden, but it's still discouraged.

Each testing method has its own advantages and disadvantages. There are some bugs
that cannot be found using the only black box or only white box technique.

Majority of the applications are tested by Black Box method. We need to cover the
majority of test cases so that most of the bugs will get discovered by a Black-Box
method.

This testing occurs throughout the software development and Testing Life Cycle i.e
in Unit, Integration, System, Acceptance, and Regression Testing stages.

This can be both Functional or Non-Functional.

Types Of Black Box Testing


Practically, there are several types of Black Box Testing that are possible but if
we consider the major variant of it then below mentioned are the two fundamental
ones.

#1) Functional Testing


This type deals with the functional requirements or specifications of an
application. Here, different actions or functions of the system are being tested by
providing the input and comparing the actual output with the expected output.

For Example, when we test a Dropdown list, we click on it and verify that it
expands and all the expected values are showing in the list.

Few major types of Functional Testing are:

Smoke Testing
Sanity Testing
Integration Testing
System Testing
Regression Testing
User Acceptance Testing

#2) Non-Functional Testing


Apart from the functionalities of the requirements, there are several non-
functional aspects as well that are required to be tested to improve the quality
and performance of the application.
Few major types of Non-Functional Testing include:

Usability Testing
Load Testing
Performance Testing
Compatibility Testing
Stress Testing
Scalability Testing

Q. What is White Box testing?


Ans. If we go by the definition, �White box testing� (also known as clear, glass
box or structural testing) is a testing technique which evaluates the code and the
internal structure of a program.

White box testing involves looking at the structure of the code. When you know the
internal structure of a product, tests can be conducted to ensure that the internal
operations performed according to the specification. And all internal components
have been adequately exercised.
Coverage
White Box Testing is coverage of the specification in the code:

1. Code coverage

2. Segment coverage: Ensure that each code statement is executed once.

3. Branch Coverage or Node Testing: Coverage of each code branch in from all
possible was.

4. Compound Condition Coverage: For multiple conditions test each condition with
multiple paths and combination of the different path to reach that condition.

5. Basis Path Testing: Each independent path in the code is taken for testing.

6. Data Flow Testing (DFT): In this approach you track the specific variables
through each possible calculation, thus defining the set of intermediate paths
through the code.DFT tends to reflect dependencies but it is mainly through
sequences of data manipulation. In short, each data variable is tracked and its use
is verified. This approach tends to uncover bugs like variables used but not
initialize, or declared but not used, and so on.

7. Path Testing: Path testing is where all possible paths through the code are
defined and covered. It's a time-consuming task.

8. Loop Testing: These strategies relate to testing single loops, concatenated


loops, and nested loops. Independent and dependent code loops and values are tested
by this approach.

Why we perform WBT?


To ensure:

That all independent paths within a module have been exercised at least once.
All logical decisions verified on their true and false values.
All loops executed at their boundaries and within their operational bounds internal
data structures validity.
To discover the following types of bugs:

Logical error tend to creep into our work when we design and implement functions,
conditions or controls that are out of the program
The design errors due to difference between logical flow of the program and the
actual implementation
Typographical errors and syntax checking
Does this testing requires detailed programming skills?
We need to write test cases that ensure the complete coverage of the program logic.

For this we need to know the program well i.e. We should know the specification and
the code to be tested. Knowledge of programming languages and logic is required for
this type of testing.

Limitations
Not possible for testing each and every path of the loops in the program. This
means exhaustive testing is impossible for large systems.

This does not mean that WBT is not effective. By selecting important logical paths
and data structure for testing is practically possible and effective.

Difference Between White-Box and Black-Box Testing


To put it in simple terms:

Under Black box testing, we test the software from a user�s point of view, but in
White box, we see and test the actual code.

In Black box testing, we perform testing without seeing the internal system code,
but in WBT we do see and test the internal code.

White box testing technique is used by both the developers as well as testers. It
helps them to understand which line of code is actually executed and which is not.
This may indicate that there is either a missing logic or a typo, which eventually
can lead to some negative consequences.

Q. What are the different Types of Software Testing?


Ans. Different Types Of Software Testing
Given below is the list of some common types of Software Testing:

Functional Testing types include:

Unit Testing
Integration Testing
System Testing
Sanity Testing
Smoke Testing
Interface Testing
Regression Testing
Beta/Acceptance Testing
Non-functional Testing types include:

Performance Testing
Load Testing
Stress Testing
Volume Testing
Security Testing
Compatibility Testing
Install Testing
Recovery Testing
Reliability Testing
Usability Testing
Compliance Testing
Localization Testing
#1) Alpha Testing
It is the most common type of testing used in the Software industry. The objective
of this testing is to identify all possible issues or defects before releasing it
into the market or to the user.

Alpha Testing is carried out at the end of the software development phase but
before the Beta Testing. Still, minor design changes may be made as a result of
such testing.

Alpha Testing is conducted at the developer�s site. In-house virtual user


environment can be created for this type of testing.

#2) Acceptance Testing


An Acceptance Test is performed by the client and verifies whether the end to end
the flow of the system is as per the business requirements or not and if it is as
per the needs of the end-user. Client accepts the software only when all the
features and functionalities work as expected.

It is the last phase of the testing, after which the software goes into production.
This is also called User Acceptance Testing (UAT).

#3) Ad-hoc Testing


The name itself suggests that this testing is performed on an Ad-hoc basis i.e.
with no reference to the test case and also without any plan or documentation in
place for such type of testing.

The objective of this testing is to find the defects and break the application by
executing any flow of the application or any random functionality.

Ad-hoc Testing is an informal way of finding defects and can be performed by anyone
in the project. It is difficult to identify defects without a test case but
sometimes it is possible that defects found during ad-hoc testing might not have
been identified using existing test cases.

#4) Accessibility Testing


The aim of Accessibility Testing is to determine whether the software or
application is accessible for disabled people or not.

Here, disability means deaf, color blind, mentally disabled, blind, old age and
other disabled groups. Various checks are performed such as font size for visually
disabled, color and contrast for color blindness, etc.

#5) Beta Testing


Beta Testing is a formal type of Software Testing which is carried out by the
customer. It is performed in the Real Environment before releasing the product to
the market for the actual end-users.

Beta Testing is carried out to ensure that there are no major failures in the
software or product and it satisfies the business requirements from an end-user
perspective. Beta Testing is successful when the customer accepts the software.

Usually, this testing is typically done by end-users or others. It is the final


testing done before releasing an application for commercial purpose. Usually, the
Beta version of the software or product released is limited to a certain number of
users in a specific area.

So end-user actually uses the software and shares the feedback to the company.
Company then takes necessary action before releasing the software to the worldwide.
#6) Back-end Testing
Whenever an input or data is entered on front-end application, it stores in the
database and the testing of such database is known as Database Testing or Backend
Testing.

There are different databases like SQL Server, MySQL, and Oracle, etc. Database
Testing involves testing of table structure, schema, stored procedure, data
structure and so on.

In Back-end Testing GUI is not involved, testers are directly connected to the
database with proper access and testers can easily verify data by running a few
queries on the database.

There can be issues identified like data loss, deadlock, data corruption etc during
this back-end testing and these issues are critical to fixing before the system
goes live into the production environment

#7) Browser Compatibility Testing


It is a subtype of Compatibility Testing (which is explained below) and is
performed by the testing team.

Browser Compatibility Testing is performed for web applications and it ensures that
the software can run with the combination of different browser and operating
system. This type of testing also validates whether web application runs on all
versions of all browsers or not.

#8) Backward Compatibility Testing


It is a type of testing which validates whether the newly developed software or
updated software works well with the older version of the environment or not.

Backward Compatibility Testing checks whether the new version of the software works
properly with file format created by an older version of the software; it also
works well with data tables, data files, data structure created by the older
version of that software.

If any of the software is updated then it should work well on top of the previous
version of that software.

#9) Black Box Testing


Internal system design is not considered in this type of testing. Tests are based
on the requirements and functionality.

Detailed information about the advantages, disadvantages, and types of Black box
Testing can be seen here.

#10) Boundary Value Testing


This type of testing checks the behavior of the application at the boundary level.

Boundary Value Testing is performed for checking if defects exist at boundary


values. Boundary Value Testing is used for testing a different range of numbers.
There is an upper and lower boundary for each range and testing is performed on
these boundary values.

If testing requires a test range of numbers from 1 to 500 then Boundary Value
Testing is performed on values at 0, 1, 2, 499, 500 and 501.

#11) Branch Testing


It is a type of White box Testing and is carried out during Unit Testing. Branch
Testing, the name itself suggests that the code is tested thoroughly by traversing
at every branch.

#12) Comparison Testing


Comparison of a product's strength and weaknesses with its previous versions or
other similar products is termed as Comparison Testing.

#13) Compatibility Testing


It is a testing type in which it validates how software behaves and runs in a
different environment, web servers, hardware, and network environment.

Compatibility testing ensures that software can run on a different configuration,


different database, different browsers, and their versions. Compatibility testing
is performed by the testing team.

#14) Component Testing


It is mostly performed by developers after the completion of unit testing.
Component Testing involves testing of multiple functionalities as a single code and
its objective is to identify if any defect exists after connecting those multiple
functionalities with each other.

#15) End-to-End Testing


Similar to system testing, End-to-End Testing involves testing of a complete
application environment in a situation that mimics real-world use, such as
interacting with a database, using network communications, or interacting with
other hardware, applications, or systems if appropriate.

#16) Equivalence Partitioning


It is a testing technique and a type of Black Box Testing. During this Equivalence
Partitioning, a set of the group is selected and a few values or numbers are picked
up for testing. It is understood that all values from that group generate the same
output.

The aim of this testing is to remove redundant test cases within a specific group
which generates the same output but not any defect.

Suppose, the application accepts values between -10 to +10 so using equivalence
partitioning the values picked up for testing are zero, one positive value, one
negative value. So the Equivalence Partitioning for this testing is -10 to -1, 0,
and 1 to 10.

#17) Example Testing


It means real-time testing. Example Testing includes the real-time scenario, it
also involves the scenarios based on the experience of the testers.

#18) Exploratory Testing


Exploratory Testing is informal testing performed by the testing team. The
objective of this testing is to explore the application and looking for defects
that exist in the application.

Sometimes it may happen that during this testing major defect discovered can even
cause a system failure.

During Exploratory Testing, it is advisable to keep a track of what flow you have
tested and what activity you did before the start of the specific flow.

An Exploratory Testing technique is performed without documentation and test cases.

#20) Functional Testing


This type of testing ignores the internal parts and focuses only on the output to
check if it is as per the requirement or not. It is a Black-box type testing geared
to the functional requirements of an application. For detailed information about
Functional Testing click here.

#21) Graphical User Interface (GUI) Testing


The objective of this GUI Testing is to validate the GUI as per the business
requirement. The expected GUI of the application is mentioned in the Detailed
Design Document and GUI mockup screens.

The GUI Testing includes the size of the buttons and input field present on the
screen, alignment of all text, tables, and content in the tables.

It also validates the menu of the application, after selecting different menu and
menu items, it validates that the page does not fluctuate and the alignment remains
same after hovering the mouse on the menu or sub-menu.

#22) Gorilla Testing


Gorilla Testing is a testing type performed by a tester and sometimes by the
developer the as well. In Gorilla Testing, one module or the functionality in the
module is tested thoroughly and heavily. The objective of this testing is to check
the robustness of the application.

#23) Happy Path Testing


The objective of Happy Path Testing is to test an application successfully on a
positive flow. It does not look for negative or error conditions. The focus is only
on the valid and positive inputs through which application generates the expected
output.

#24) Incremental Integration Testing


Incremental Integration Testing is a Bottom-up approach for testing i.e continuous
testing of an application when new functionality is added. Application
functionality and modules should be independent enough to test separately. This is
done by programmers or by testers.

#25) Install/Uninstall Testing


Installation and Uninstallation Testing is done on full, partial, or upgrade
install/uninstall processes on different operating systems under different hardware
or software environment.

#26) Integration Testing


Testing of all integrated modules to verify the combined functionality after
integration is termed as Integration Testing.

Modules are typically code modules, individual applications, client and server
applications on a network, etc. This type of testing is especially relevant to
client/server and distributed systems.

#27) Load Testing


It is a type of Non-Functional Testing and the objective of Load Testing is to
check how much load or maximum workload a system can handle without any performance
degradation.

Load Testing helps to find the maximum capacity of the system under specific load
and any issues that cause software performance degradation. Load testing is
performed using tools like JMeter, LoadRunner, WebLoad, Silk performer, etc.

#28) Monkey Testing


Monkey Testing is carried out by a tester assuming that if the monkey uses the
application then how random input, values will be entered by the Monkey without any
knowledge or understanding of the application.

The objective of Monkey Testing is to check if an application or system gets


crashed by providing random input values/data. Monkey Testing is performed randomly
and no test cases are scripted and it is not necessary to

Monkey Testing is performed randomly and no test cases are scripted and it is not
necessary to be aware of the full functionality of the system.

#29) Mutation Testing


Mutation Testing is a type of white box testing in which the source code of one of
the program is changed and verifies whether the existing test cases can identify
these defects in the system.

The change in the program source code is very minimal so that it does not impact
the entire application, only the specific area having the impact and the related
test cases should able to identify those errors in the system.

#30) Negative Testing


Testers having the mindset of �attitude to break� and using Negative Testing they
validate that if system or application breaks. A Negative Testing technique is
performed using incorrect data, invalid data or input. It validates that if the
system throws an error of invalid input and behaves as expected.

#31) Non-Functional Testing


It is a type of testing for which every organization having a separate team which
usually called as Non-Functional Test (NFT) team or Performance team.

Non-Functional Testing involves testing of non-functional requirements such as Load


Testing, Stress Testing, Security, Volume, Recovery Testing, etc. The objective of
NFT testing is to ensure whether the response time of software or application is
quick enough as per the business requirement.

It should not take much time to load any page or system and should sustain during
peak load.

#32) Performance Testing


This term is often used interchangeably with �stress' and �load' testing.
Performance Testing is done to check whether the system meets the performance
requirements. Different performance and load tools are used to do this testing.

#33) Recovery Testing


It is a type of testing which validates how well the application or system recovers
from crashes or disasters.

Recovery Testing determines if the system is able to continue the operation after a
disaster. Assume that application is receiving data through the network cable and
suddenly that network cable has been unplugged.

Sometime later, plug the network cable; then the system should start receiving data
from where it lost the connection due to network cable unplugged.

#34) Regression Testing


Testing an application as a whole for the modification in any module or
functionality is termed as Regression Testing. It is difficult to cover all the
system in Regression Testing, so typically Automation Testing Tools are used for
these types of testing.
#35) Risk-Based Testing (RBT)
In Risk-Based Testing, the functionalities or requirements are tested based on
their priority. Risk-Based Testing includes testing of highly critical
functionality, which has the highest impact on business and in which the
probability of failure is very high.

The priority decision is based on the business need, so once priority is set for
all functionalities then high priority functionality or test cases are executed
first followed by medium and then low priority functionalities.

The low priority functionality may be tested or not tested based on the available
time.

The Risk-Based Testing is carried out if there is insufficient time available to


test entire software and software needs to be implemented on time without any
delay. This approach is followed only by the discussion and approval of the client
and senior management of the organization.

#36) Sanity Testing


Sanity Testing is done to determine if a new software version is performing well
enough to accept it for a major testing effort or not. If an application is
crashing for the initial use then the system is not stable enough for further
testing. Hence a build or an application is assigned to fix it.

#37) Security Testing


It is a type of testing performed by a special team of testers. A system can be
penetrated by any hacking way.

Security Testing is done to check how the software or application or website is


secure from internal and external threats. This testing includes how much software
is secure from the malicious program, viruses and how secure and strong the
authorization and authentication processes are.

It also checks how software behaves for any hackers attack and malicious programs
and how software is maintained for data security after such a hacker attack.

#38) Smoke Testing


Whenever a new build is provided by the development team then the Software Testing
team validates the build and ensures that no major issue exists.

The testing team ensures that the build is stable and a detailed level of testing
is carried out further. Smoke Testing checks that no show stopper defect exists in
the build which will prevent the testing team to test the application in detail.

If testers find that the major critical functionality is broken down at the initial
stage itself then testing team can reject the build and inform accordingly to the
development team. Smoke Testing is carried out to a detailed level of any
Functional or Regression Testing.

#39) Static Testing


Static Testing is a type of testing which is executed without any code. The
execution is performed on the documentation during the testing phase.

It involves reviews, walkthrough, and inspection of the deliverables of the


project. Static Testing does not execute the code instead of the code syntax,
naming conventions are checked.

Static Testing is also applicable for test cases, test plan, design document. It is
necessary to perform static testing by the testing team as the defects identified
during this type of testing are cost-effective from the project perspective.

#40) Stress Testing


This testing is done when a system is stressed beyond its specifications in order
to check how and when it fails. This is performed under heavy load like putting
large number beyond storage capacity, complex database queries, continuous input to
the system or database load.

#41) System Testing


Under System Testing technique, the entire system is tested as per the
requirements. It is a Black-box type Testing that is based on overall requirement
specifications and covers all the combined parts of a system.

#42) Unit Testing


Testing of an individual software component or module is termed as Unit Testing. It
is typically done by the programmer and not by testers, as it requires detailed
knowledge of the internal program design and code. It may also require developing
test driver modules or test harnesses.

#43) Usability Testing


Under Usability Testing, User-friendliness check is done. The application flow is
tested to know if a new user can understand the application easily or not, Proper
help documented if a user gets stuck at any point. Basically, system navigation is
checked in this testing.

#44) Vulnerability Testing


The testing which involves identifying weakness in the software, hardware and the
network is known as Vulnerability Testing. Malicious programs, the hacker can take
control of the system, if it is vulnerable to such kind of attacks, viruses, and
worms.

So it is necessary to check if those systems undergo Vulnerability Testing before


production. It may identify critical defects, flaws in the security.

#45) Volume Testing


Volume Testing is a type of Non-Functional Testing performed by the Performance
Testing team.

The software or application undergoes a huge amount of data and Volume Testing
checks the system behavior and response time of the application when the system
came across such a high volume of data. This high volume of data may impact the
system�s performance and speed of the processing time.

#46) White Box Testing


White Box Testing is based on the knowledge about the internal logic of an
application's code.

It is also known as Glass box Testing. Internal software and code working should be
known for performing this type of testing. Under these tests are based on the
coverage of code statements, branches, paths, conditions, etc.

Q #1) What do you understand by web application?

Answer: Web application is a means to communicate and exchange information with


customers. Unlike any desktop applications which are executed by an operating
system, a web application runs on a web server and is accessed by a web browser
which acts as a client.

The best Example of a web application is �Gmail�. In Gmail, the interaction done by
an individual user is completely independent of the others. You can send and
receive information through emails and also through attachments.

You can maintain documents in a drive, maintain spreadsheets in Google docs and
includes much more such features which make a user realize that they have an
environment which is customized to their specific identity.

Q #2) Define a Web server.

Answer: Web server follows the client/server model where the program uses HTTP
(Hypertext Transfer Protocol). In response to the request of an HTTP client, web
server handles client and server-side validation and delivers the web content in
the form of web pages to the users.

The browsers we use, such as Safari, Chrome, Internet Explorer, Firefox etc., read
the files stored on the web servers and bring the information to us in the form of
images and texts with the means of internet. Any computer which hosts websites must
have web servers.

Some of the leading web servers are:

Apache
Microsoft�s Internet Information Server (IIS)
Java web server
Google web server

Q #3) Enlist some important test scenarios for testing a website.

Answer: There are many parameters that should be considered while deciding the
important test scenarios for testing any website. Also, the type of website to be
tested and its requirement specification plays an important role here.

Enlisted below are few important test scenarios that are applicable for testing any
type of website:

Test the GUI (Graphical User Interface) of the website for checking the consistency
of the design elements and page layout.
All page links and hyperlinks are checked for their redirection to the desired
page.
In case of presence of any forms or fields on the website, testing scenarios
consist of testing with valid data, invalid data, testing with existing records as
well as testing with empty records.
Functionality testing as per the requirement specification is done.
Performance of a website is tested under heavy loads to determine the web server
response time and database query time.
Compatibility testing is done to test the behavior of an application on a different
browser and OS (operating system) combinations.
Usability testing and Database testing is also performed as a part of test
scenarios.
Q #4) What are the different configurations which have to be considered while
testing a website?

Answer: Different configuration includes different browsers as well as an operating


system on which a website is being tested. Browser plugins, text size, video
resolution, color depth, browser setting option also come under consideration when
we talk about configurations.

Different combinations of browsers and operating system are used to test the
compatibility of the website. Usually, the latest and the last latest versions are
included. Well, these versions are usually specified in the requirement documents.

Few important Browsers include:

Internet Explorer
Firefox
Chrome
Safari
Opera
Few important Operating systems include:

Windows
UNIX
LINUX
MAC
Q #5) Is Web application testing different from Desktop Application testing?
Explain how.

Answer: Yes, there is a lot of difference between web application and desktop
application.

This can be explained with the help of the below-mentioned table:

Web Application

Desktop Application

Definition Web applications are the one which can run on any client machine having
the internet connection without any installation of the execution file.
Desktop applications are one which are separately installed and executed on
the personal computer.
Performance User actions, feedback, statistics can be easily monitored as well as
data updating in one place is reflected everywhere in web application. User actions
cannot be monitored as well as changes in data can be only reflected at the
machine.
Connectivity
Web application can be accessed on any PC having internet connection using web
browser where performance of the application depends on internet speed.
Desktop application can be only accessed on specific PC where application is
installed.
Security Risks

Web application is more prone to security threats as applications can be accessed


by anyone on the internet. Desktop application is less prone to security threats
where user can keep a check on security issues at the system level.
User data
User data is saved and accessed remotely in case of web applications. Data is
stored, saved and accessed from the same machine on which application is installed.
Q #6) What is Intranet Application?

Answer: Intranet application is a kind of private application which is deployed and


run on local LAN server and can only be accessed by the people within the
organization. It uses a local network to share information.

Example: Organization usually has an application which stores information about


your attendance, holidays, upcoming celebrations within the organization or some
important event or information that needs to be circulated within the organization.
Q #7) Explain the difference between Authorization and Authentication in Web
testing.

Answer: The difference between Authorization and Authentication is explained in


below table:

Authentication Authorization

1 Authentication is the process with which the system identifies who the user
is? Authorization is the process with which system identifies what user is
authorized to do?
2 Authentication determines the identity of the user. Authorization decides
the privileges given to the user i.e. whether the user can access or manipulate
features of certain program.
3 There are different types of authentications, like password based, device
based, etc. There are two types of authorizations, like read only and read write
both.

4 For example: Within an organization, each and every employee can login into
an intranet application. For example: Only account manager or person in
accounts department can access account section.
Q #8) What are the types of Web testing security problems?

Answer: Few web security problems include:

Denial of Service (DOS) attack


Buffer overflow
Directly passing internal URL through browser address
Viewing other stats
Q #9) Define HTTP.

Answer: HTTP stands for Hypertext Transfer Protocol. HTTP is the data transfer
protocol which defines how messages are formatted and transferred over the World
Wide Web. HTTP also determines the response of the actions performed by web servers
and browsers.

For Example, when an URL is entered on the web browser, the HTTP command is sent to
the web server which in turn fetches the requested web browser.

Q #10) Define HTTPS.

Answer: HTTPS stands for Hypertext Transfer Protocol Secure. This is basically HTTP
over SSL (Secure Socket Layer) for security purposes. There is always chances of
eavesdrop on data being transferred between a user and the web server when the
website uses HTTP protocol.

Therefore, websites use secure way i.e. SSL encryption of data sent back and forth
using HTTPS protocol. Almost all the websites that require user log in uses HTTPS
protocol. Few Examples are banking websites, e-commerce websites, etc.

Q #11) What are the common problems faced in Web testing?

Answer: Some of the common problems faced in web testing are enlisted below:

Server Problem, which includes server down and server under maintenance problems.
Database connection problem.
Hardware and browser compatibility problems.
Security related problems.
Performance and load related problems.
GUI (graphical user interface) related problems.
Q #12) What is Cookie testing?

Answer: Cookie is said to be a personalized user�s identity or information which is


required to communicate between different web pages as well as track user�s
navigation through the website pages. Whenever we access any website on any web
browser, their respective cookie is written on the hard disk.

Cookies are used to track user sessions, displays ads, remember user�s choice while
accessing any website, remember and retrieve the user�s shopping cart, track the
unique number of visitors, etc.

Suppose an e-commerce site is accessible in many countries like US, Canada,


Australia, and their testing is done in India. In that case, while testing the e-
commerce site for different countries in India, at first respective countries
cookies is set so that actual data like time zone etc., are accessed of that
particular country.

Q #13) Define Client-side validation.

Answer: Client-side validation is the one which is basically done at the browser
level where user�s input is validated at the browser itself with no involvement of
the server.

Let's understand it with the help of an Example.

Suppose a user is entering an incorrect email format while filling a form. The
browser will then and there prompt an error message to correct it before moving on
to next field. Thus every field is corrected before submitting the form.

The client-side validation is usually done by script language such as JavaScript,


VBScript, HTML 5 attributes.

The two types of Client-side validation are:

Field level validation


Form level validation
Q #14) What do you understand by Server-side validation?

Answer: Server-side validation occurs where the validation and processing of user
requests require the response from the server. To understand it more clearly,
user�s input is being sent to the server and validation is done using server-side
scripting languages such as PHP, Asp.NET, etc.

After the validation process, feedback is sent back to the client in the form of
dynamically generated web page.

When compared to the Client Side validation process, Server side validation process
is more secure because here application is protected against malicious attacks and
users can easily bypass client-side scripting language.

Q #15) Differentiate between Static and Dynamic website.

Answer: Difference between static and dynamic websites are as follows:

Static Website

Dynamic website
Static websites are the one which gives out information only and there is no sort
of interaction between the user and the website. Dynamic websites are the one
where user interaction is possible between the website and user along with
imparting information.
Static websites are cheapest to develop and host. Dynamic websites are more
expensive to develop as well as their hosting cost is also more.
Static websites are easily loaded on client browser because of its fixed content
and no database connectivity. Dynamic websites usually take the time to load on
client browser because contents to display are dynamically created and retrieved
using database queries.
Static websites can be created from HTML, CSS and does not require any server
application language. Dynamic websites require server application language like
ASP.NET, JSP, PHP to run the application on the server and display the output on
the webpage.
Change in the content of the page of any static website; require being uploaded on
server many times. Dynamic website provides facilities to change the page
content using server application.
Q #16) What do you understand by Client-Server testing?

Answer: Client-server application is the one where the application itself is loaded
or installed on a server whereas the application EXE file is loaded on all client
machines. This environment is usually used in Intranet networks.

Following tests are performed on a Client-server application:

GUI testing on both client and server systems.


Client-server interaction.
The functionality of an application.
Load and performance testing.
Compatibility testing.
All the test cases and test scenarios used in client-server application testing is
derived from the tester�s experience and requirement specifications.

Q #17) Enlist HTTP response codes that are returned by the server.

Answer: HTTP response codes are enlisted below:

2xx � This means �Success�


3xx- This means �Redirection�
4xx- This means �Application error�
5xx- This means �Server error�
Q #18) What is the role of Usability testing in Web testing?

Answer: In web testing, Usability testing plays an important role. It is well known
that usability testing is the means to determine the ease with which an end user
can easily access the application with or without having any programming language
knowledge.

In terms of web testing, usability testing comprises of the following:

To check whether the website is user-friendly?


Is the end user able to easily navigate within the application?
Presence of any issues or ambiguity which can hinder the user experience.
Check how quickly the user is able to complete the task within the application

Q #19) What are the available environments on the Web?

Answer: The different types of the environment on the Web are:


Intranet (Local Network)
Internet (Wide Area Network)
Extranet(Private network over the internet)

Q #22) Enlist some Web Testing Tools.

Answer: Few Web testing tools are enlisted below:

eggplant functional
Selenium
SOA test
JMeter
iMacros, etc.
Q #23) Give some examples of web applications that are used in our day to day life.

Answer: Few Examples include:

Web portals like eBay, Amazon, Flipkart etc.


Banking applications like ICICI, Yes Bank, HDFC, Kotak Mahindra etc.
Email service providers like Gmail, Yahoo, Hotmail etc.
Social Networks like Facebook, Twitter, LinkedIn etc.
Discussion and Information forums like www.Softwaretestinghelp.com
Q #24) What is a Proxy server?

Answer: Proxy server is a server which acts as an intermediary or is the one that
lies between the client and the main server.

The communication between the main server and client-server is done through a proxy
server as the client request of any connection, file, resources from the main
server is sent through a proxy server and again the response from the main server
or local cached memory to client-server is done through the proxy server.

Some of the most common proxy servers based on their purpose and functionality are
listed below:

Transparent proxy
Web proxy
Anonymous proxy
Distorting proxy
High anonymity proxy
The proxy server is basically used for the following purposes:

To improve the performance of web response.


In case of the presence of a document in a cache memory, the response is directly
sent to the client.
Proxy server filters web page content in the form of web proxies.
A proxy server is also used to block offensive web content to be accessed by the
user especially in an organization, school, and college.
Web proxies prevent the attack of computer viruses and malware.
Q #25) What is Database server?

Answer: A Database server can be defined as a server that refers to the back-end
system of a database application that provides database services such as accessing
and retrieving data from the database.

Database server uses client/server architecture where the data can be accessed
either through the database server by a �front end� which runs and displays data on
user�s machine or �back-end� which runs on the database server itself.
A database server is like a data warehouse and also holds on Database Management
System (DBMS).

*********************

Few More Basic Software Testing Interview Questions


Q. What is Dynamic Testing?
Ans. It is the testing done by executing the code or program with various input
values and later on the output is verified.

Q. What is GUI Testing?


Ans. GUI or Graphical user interface testing is the process of testing the software
user interface against the provided requirements/mockups/HTML designs etc.,

Q. What is Formal Testing?


Ans. Software verification carried out by following a test plan, testing procedures
and proper documentation with approval from the customer is termed as Formal
Testing.

Q. What is Risk Based Testing?


Ans. Identifying the critical functionality in the system and then deciding the
orders in which these functionalities are to be tested and testing after that is
termed as Risk-based Testing.

Q. What is Early Testing?


Ans. Conducting testing as soon as possible in the development lifecycle to find
defects at early stages of STLC. Early testing is helpful to reduce the cost of
fixing defects at the later stages of STLC.

Q. What is Exhaustive Testing?


Ans. Testing functionality with all valid, invalid inputs and pre-conditions is
called Exhaustive testing.

Q. What is Defect Clustering?


Ans. Any small module or functionality may contain a number of defects �
concentrating more on testing these functionalities is known as Defect Clustering.

Q. What is Pesticide Paradox?


Ans. If prepared test cases are not finding defects, add/revise test cases to find
more defects, this is known as Pesticide Paradox.

Q. What is Static Testing?


Ans. Manual verification of the code without executing the program is called Static
Testing. In this process, the issues are identified in the code by checking code,
requirement and design documents.

Q. What is Positive Testing?


Ans. It is the Testing which is conducted on the application to determine if the
system works properly. Basically known as �test to pass� approach.

Q. What is Negative Testing?


Ans. Testing Software with a negative approach to check if the system is not
�showing error when not supposed to� and �not showing error when supposed to� is
termed as Negative Testing.

Q. What is an End-to-End Testing?


Ans. Testing the overall functionality of the system including the data integration
among all the modules is called End-to-End Testing.
Q. What is Exploratory Testing?
Ans. Exploring the application, understanding its functionalities, adding (or)
modifying the existing test cases for better testing is called Exploratory testing.

Q. What is Monkey Testing?


Ans. Testing conducted on an application without any plan and carried out randomly
with the tests to find any system crash with an intention of finding tricky defects
is called Monkey Testing.

Q. What is Non-Functional Testing?


Ans. Validating various non-functional aspects of the system such as user
interfaces, user-friendliness, security, compatibility, Load, Stress, and
Performance etc., is called Non-Functional testing.

Q. What is Usability Testing?


Ans. Checking how easily the end users are able to understand and operate the
application is called Usability Testing.

Q. What is Security Testing?


Ans. Validating whether all security conditions are properly implemented in the
software (or) not is called Security testing.

Q. What is Performance Testing?


Ans. The process of measuring various efficiency characteristics of a system such
as response time, load stress transactions per minutes, transaction mix etc., is
termed Performance Testing.

Q. What is Load Testing?


Ans. Analyzing both the functional and performance behavior of an application under
various conditions is called Load Testing.

Q. What is Stress Testing?


Ans. Checking the application behavior under stress conditions
(or)
Reducing the system resources and keeping the load as constant and checking how the
application is behaving is called Stress Testing.

Q. What is Process?
Ans. A process is a set of practices performed to achieve a given purpose; it may
include tools, methods, materials or people.

Q. What is Software Configuration Management?


Ans. The process of identifying, Organizing and controlling changes to the Software
development and maintenance.
(or)
It is a methodology to control and manage a software development project.

Q. What is a Testing Process / LifeCycle?


Ans. It includes the below factors:

Writing a Test Plan


Test Scenarios
Test Cases
Executing the Test Cases
Test Results
Defect Reporting
Defect Tracking
Defect Closing
Test Release
Q. What is the full form of CMMI?
Ans. Capability Maturity Model Integration

Q. What is a Code Walk Through?


Ans. An informal analysis of the program source code to find the defects and verify
the coding techniques is termed so.

Q. What is Unit Level Testing?


Ans. Testing of single programs, modules or unit of code is termed as Unit Level
Testing.

Q. What is Integration Level Testing?


Ans. Testing of related programs, Modules (or) Unit of code.
(or)
Partitions of the system which is ready for testing with other partitions of the
system is termed so.

Q. What is System Level Testing?


Ans. Testing of the entire computer system across all the modules is termed so.
This kind of testing can include Functional as well as Structural Testing.

Q. What is Alpha Testing?


Ans. Testing of a whole computer system before rolling out to the UAT is termed so.

Q. What is User Acceptance Testing (UAT)?


Ans. Testing of a computer system by the client to verify if it adhered to the
provided requirements.

Q. What is a Test Plan?


Ans. It is a document describing the scope, approach, resources, and schedule of
testing activities. It identifies test items, features to be tested, testing
tasks, who will do each task, and any risks requiring contingency planning.

Q. What is a Test Scenario?


Ans. Identifying all the possible areas to be tested (or) what is to be tested is
termed so.

Q. What is ECP (Equivalence Class Partition)?


Ans. It is a method for deriving test cases.

Q. What is a Defect?
Ans. Any flaw or imperfection in a software work product is termed as a Defect.
(or)
When the expected result does not match with the application actual result, it is
termed so.

Q. What is Severity?
Ans. It defines the importance of the defect from the functional point of view i.e.
how critical is a defect with respect to the application.

Q. What is Priority?
Ans. It indicates the importance or urgency of fixing a defect

Q. What is Re-Testing?
Ans. Re-testing the application means verifying whether the defects have been fixed
or not.

Q. What is Regression Testing?


Ans. Verifying an existing functional and non-functional area after making changes
to the part of a software or addition of new features is termed so.

Q. What is Recovery Testing?


Ans. Checking whether the system is able to handle some unexpected or unpredictable
situations is called Recovery Testing.

Q. What is Globalization Testing?


Ans. It is the process of verifying whether software can be run independently of
its geographical and cultural environment. Checking if the application is having
features of setting and changing language, date, format, and currency if it is
designed for global users.

Q. What is Localization Testing?


Ans. Verifying globalized application for a particular locality of users, under
cultural and geographical conditions is termed so.

Q. What is Installation Testing?


Ans. Checking whether we are able to install a software successfully (or) not, as
per the guidelines given in the installation document is called Installation
Testing.

Q. What is Un-Installation Testing?


Ans. Checking whether we are able to uninstall the software from the system
successfully (or) not is called Un-Installation Testing

Q. What is Compatibility Testing?


Ans. Checking whether the application is compatible with different software and
hardware environment or not is called Compatibility Testing.

Q. What is a Test Strategy?


Ans. It is a part of a test plan describing how testing is carried out for the
project and what testing types need to be performed on the application.

Q. What is a Test Case?


Ans. A Test case is a set of pre-conditional steps to be followed with input data
and expected behavior to validate the functionality of a system.

Q. What is Business Validation Test Case?


Ans. A test case which is prepared to check the business condition or a business
requirement is called Business Validation test case.

Q. What is a Good Test Case?


Ans. A Test case that has the high priority of catching defects is called a Good
Test Case.

Q. What is Use Case Testing?


Ans. Validating a software to confirm whether it is developed as per the use cases
or not is called Use Case testing.

Q. What is a Defect Age?


Ans. The time gap between the date of detection & the date of closure of a defect
is termed so.

Q. What is Showstopper Defect?


Ans. A defect which is not permitting to continue further with testing is called
Showstopper Defect.

Q. What is a Test Closure?


Ans. It is the last phase of the STLC, where the management prepares various test
summary reports that explain the complete statistics of the project based on the
testing carried out.

Q. What is Bucket Testing?


Ans. Bucket testing is also known as A/B testing. It is mostly used to study the
impact of various product designs in the website metrics. Two simultaneous versions
are run on a single or a set of web pages to measure the difference in click rates,
interface, and traffic.

Q. What is meant by Entry Criteria and Exit Criteria in Software Testing?


Ans. Entry Criteria is the process that must be present when a system begins, like,
SRS � Software
FRS
Use Case
Test Case
Test Plan
Exit criteria ensure whether the testing is completed and the application is ready
for release, like,
Test Summary Report,
Metrics
Defect Analysis Report.

Q. What is Concurrency Testing?


Ans. This is a multiple user testing to access the application at the same time to
verify the effect on code, module or DB and it is mainly used to identify the
locking and deadlocking situations in the code.

Q. What is Web Application Testing?


Ans. Web application testing is done on a website to check � load, performance,
security, Functionality, Interface, Compatibility and other usability-related
issues.

Q. What is Unit Testing?


Ans. Unit testing is done to check whether the individual modules of the source
code are working properly or not.

Q. What is Interface Testing?


Ans. Interface testing is done to check whether the individual modules are
communicating properly as per the specifications or not. Interface testing is
mostly used to test the user interface of GUI applications.

Q. What is Gamma Testing?


Ans. Gamma testing is done when the software is ready for release with the
specified requirements, this testing is done directly by skipping all the in-house
testing activities.

Q. What is the Test Harness?


Ans. Test Harness is configuring a set of tools and test data to test an
application under various conditions, which involves monitoring the output with the
expected output for correctness.
The benefits of Testing Harness are: Productivity increase due to process
automation and increase in the product quality

Q. What is Scalability Testing?


Ans. It is used to check whether the functionality and performance of a system are
capable to meet the volume and size changes as per the requirements.
Scalability testing is done using load test by changing various software, hardware
configurations, and testing environment.
Q. What is Fuzz Testing?
Ans. Fuzz testing is a black box testing technique which uses random bad data to
attack a program to check if anything breaks in the application.

Q. What is the Difference between QA, QC, and Testing?


Ans. QA?
It is process oriented and its Aim is to prevent the defects in an application.

QC?
QC is product oriented and it is a Set of activities used to evaluate a developed
work product

Testing?
Executing and verifying an application with the intention of finding defects.

Q. What is Data Driven Testing?


Ans. It is an Automation testing process in which an application is tested with
multiple sets of data with different preconditions as an input to the script.

Q #1) What is Automation?

Answer: Automation is any action which can reduce human efforts.

Q #2) What is Automation testing?

Answer: The process of using special software tools or scripts to perform testing
tasks such as entering data, executing the test steps and comparing the results
etc. is known as Automation testing.

Q #3) What all things can you automate?

Answer:

Regression test suite


Smoke / Sanity test suite
Build deployment
Test data creation
Automating behind the GUI like testing of APIs and methods.
Q #4) When is Automation testing useful?

Answer: Automation testing is useful in the following scenarios:

a) Regression testing: In case of a bug fix or new module implementation, we have


to make sure that the already implemented or unchanged functionality is not
affected. In this case, we end up running the regression test case multiple times.

For Example: After each change request or bug fix, after each iteration in case of
incremental development approach etc.

b) Non-functional Testing: Testing the non-functional aspects of an application.

For Example: Load testing or performance testing etc, are very difficult for humans
to track and analyze.

c) Complex calculation checks or tests scenarios that are prone to human errors.

d) Repeated execution of same tests: Sometimes we have to run the same set of test
case for a different set of data or after each build release or on multiple
hardware, software or combination of both.

Automating the test cases in the above scenarios helps in achieving the speed of
testing and minimizing human errors.

Q #5) How do you identify the test cases which are suitable for automation?

Answer: Identifying the appropriate test cases for automation is the most important
step towards automation.

Q #6) Can you achieve 100% automation?

Answer: 100% automation would be difficult to achieve because there would be many
edge test cases and some cases which are executed seldom. Automating these cases
which are not executed that often will not add value to the automated suite.

Q #7) How to decide the tool that one should use for Automation testing in their
projects?

Answer: In order to identify the tool for Automation testing in your project:

a) Understand your project requirements thoroughly and identify the testing


scenarios that you want to automate.

b) Search for the list of tools that support your project's requirements.

c) Identify your budget for the automation tool. Select the tools within your
budget.

d) Identify if you already have skilled resources for the tools. If you don't have
the necessary skilled resources then identify the cost for training the existing
resources or hiring new resources.

e) Now compare each tool for key criteria like:

How easy is it to develop and maintain the scripts for the tool.
Can a non-technical person also execute the test cases with little training?
Does the tool support different types of platforms like web, mobile, desktop etc
based on your project requirements?
Does the tool have a test reporting functionality? If not, is it easily
configurable for the tool?
How is the tool for cross-browser support for web-based applications?
How many different testing types can this tool support?
How many languages does the tool support?
f) Once you have compared the tools, select the tool which is within your budget
and supports your project requirements, and gives you more advantages based on the
key criteria mentioned above.

Q #8) Currently I do not have any automation in place in my project, but now I want
to implement automation, what would be my steps?

Answer:

First, identify which type of testing/test cases you want to automate.


Identify the tool
Design the framework
Create utility files and environment files.
Start scripting
Identify and work on the reporting.
Allocating time for enhancing and maintaining the scripts.
Steps required for getting Automation Testing in place for a project include:

Understand the advantages and disadvantages of automation testing and identify the
test scenarios which are suitable for automation.
Select the automation tool that is best suited for automating the identified
scenarios
Find the tool expert to help in setting up the tool and required environment for
executing the test cases using the tool.
Train the team so that they can write scripts in the programming language that the
tool supports.
Create the test framework or identify the already existing one that meets your
requirements.
Write an execution plan for OS, browsers, mobile devices etc.
Write programming scripts for manual test cases to convert them into automated test
cases.
Report the test case status by using the reporting feature of the tool.
Maintain the scripts for ongoing changes or new features.
Q #9) How do you decide which tool you have to use?

Answer: Concluding which tool is best suitable for the project requires a lot of
brainstorming and discussions.

Q #10) Once you identify the tool what would be your next steps?

Answer: Once we finalize the tool, our next step would be to design the framework.

Q #11) What is a framework?

Answer: A framework is a set of the structure of the entire automation suite. It is


also a guideline, which if followed can result in a structure which is easy to
maintain and enhance.

These guidelines include:

Coding standards
Handling the test data
Maintaining and handling the elements (object repository in QTP)
Handling of environment files and properties file
Reporting of data
Handling logs
Q #12) What are the attributes of a good framework?

Answer: The characteristics include:

Modular � The framework should be adaptable to change. Testers should be able to


modify the scripts as per the environment or login information change.
Reusable � The commonly used methods or utilities should be written in a common
file which is accessible to all the scripts.
Consistent � The suite should be written in a consistent format by following all
the accepted coding practices.
Independent � The scripts should be written in such a way that they are independent
of each other. In case one test fails, it should not hold back the remaining test
cases (unless it is a login page)
Logger � It is good to have implemented the logging feature in the framework. This
would help in case our scripts run for longer hours (say nightly mode), if the
script fails at any point of time, having the log file will help us to detect the
location along with the type of the error.
Reporting � It is good to have the reporting feature automatically embedded into
the framework. Once the scripting is done, we can have the results and reports sent
via email.
Integration � Automation framework should be such that it is easy to integrate with
other application like continuous integration or triggering the automated script as
soon as the build is deployed.
Q #13) Can you do without a framework?

Answer: Frameworks are guidelines and not mandatory rules, so we can do without a
framework, but if we create it and follow it, enhancing and maintaining would be
easy to implement.

Q #14) What are the different types of an automation tool that you are aware of?

Answer: Open source tool like Selenium, JMeter etc.

Paid tools like QTP, Load Runner, Ranorex, RFT, and Rational Robot.

Q #15) What generally is the structure of a framework?

Answer: Normally the structure should have � (It would differ from project to
project)

A �src� (source) folder having the actual test scripts.


A�lib� (library) folder having all the libraries and common methods.
A �class� folder having all the class file (in-case using java).
A �log� folder having the log file(s).
A file/folder having all the web element Ids.
A file containing the URL, environment and login information.
Q #16) Where will you maintain information like URL, login, password?

Answer: This information should always be maintained in a separate file.

Q #17) Why do you want to keep this kind of information in a separate file and not
directly in the code?

Answer: URL, Login, and passwords are the kind of fields which are used very often
and these change as per the environment and authorization. In case we hardcode it
into our code, we have to change it in every file which has its reference.

In case if there are more than 100 files, then it becomes very difficult to change
all the 100 files and this, in turn, can lead to errors. So this kind of
information is maintained in a separate file so that updating becomes easy.

Q #18) What are the different types of frameworks?

Answer: Different types of the framework include:

Keyword-driven framework
Data-Driven framework
Hybrid Framework
Linear Scripting
Q #19) Can you tell some good coding practices while automation?

Answer: Some of the good coding practices include:

Add appropriate comments.


Identify the reusable methods and write it in a separate file.
Follow the language-specific coding conventions.
Maintain the test data in a separate file.
Run your scripts regularly.
Q #20) Any kind of test which you think should not be automated?

Answer:

Tests which are seldom executed.


Exploratory testing
Usability testing
Test which is executed quickly when done manually.
Q #21) Do you think that testing can be done only at the UI level?

Answer: Today as we are moving to the Agile mode, testing is not limited to the UI
layer. Early feedback is imperial for an agile project. If we concentrate only on
the UI layer, we are actually waiting until the UI is developed and available to
test.

Rather we can test even before the UI is actually developed. We can directly test
the APIs or the methods using tools like Cucumber and FitNesse.

In this way, we are giving the feedback much early and are testing even before the
UI is developed. Following this approach will help us to test only the GUI aspect
of small cosmetic changes or some validations on the UI and will help the
developers by giving more time to fix the bugs.

Q #22) How do you select which automation tool is best suited for you?

Answer: Selecting the automation tool depends upon various factors like:

The scope of the application which we want to automate.


Management overhead like cost and budget.
Time to learn and implement the tool.
Type of support available for the tool.
Limitation of the tool
Q #23) What do you think holds the testers back to do automation? Is there a way to
overcome it?

Answer: The major hurdle for testers is to learn programming/coding when they want
to automate. Since testers do not code, adapting to coding is a bit challenging for
testers.

We can overcome it by:

Collaborating with developers when automating.


Considering that automation is the responsibility of the whole team and not only of
the testers.
Giving a dedicated time and focus on automation.
Getting proper management support.
You can save these automation testing interview questions as a pdf and print for
further reading.

Q #24) What is an Automation testing framework?

Answer: A framework, in general, is a set of guidelines. A set of guidelines,


assumptions, concepts and coding practices for creating an execution environment in
which the tests will be automated, is known as an Automation testing framework.

An automation testing framework is responsible for creating a test harness with a


mechanism to connect with the application under test, take input from a file,
execute the test cases and generate the reports for test execution. An automation
testing framework should be independent of the application and it should be easy to
use, modify or extend.

Q #25) What are the important modules of an automation testing framework?

Answer: Important modules of an Automation testing framework are:

Test Assertion Tool: This tool will provide assert statements for testing the
expected values in the application under test. E.g. TestNG, Junit etc.
Data Setup: Each test case needs to take the user data either from the database or
from a file or embedded in the test script. Frameworks data module should take care
of the data intake for test scripts and the global variables.
Build Management Tool: Framework needs to be built and deployed for the use of
creating test scripts.
Continuous integration tool: With CICD (continuous integration and continuous
development) in place, continuous integration tool is required for integrating and
deploying the changes done in the framework at each iteration.
Reporting tool: A reporting tool is required to generate a readable report after
the test cases are executed for a better view of the steps, results, and failures.
Logging tool: The logging tool in framework helps in better debugging of the error
and bugs.
Q #26) Explain some Automation testing tools.

Answer: Some of the famous Automation testing tools are explained below:

(i) Selenium: Selenium is a test framework for web application automation testing.
It supports multiple browsers and is OS independent. Selenium also supports various
programming languages like java, c#, PHP, Ruby, and Perl etc.

Selenium is an open source set of libraries which can be used to develop additional
test frameworks or test scripts for testing web-based applications.

(ii) UFT: Unified functional testing is a licensed tool for functional testing. It
provides a wide range of features like APIs, web services etc and also supports
multiple platforms like desktops, web, and mobile. UFT scripts are written in
visual basic scripting language.

(iii) Appium: Appium is an open source mobile application testing tool. It is used
to automate testing on cross-platform, native, hybrid and web-based mobile
applications. Appium automates any mobile application from any language with full
access to APIs and DBs from the test code.

Appium is based on client-server architecture and has evolved from selenium.

(iv) Cucumber: Cucumber is an open source behavior-driven development tool. It is


used for web-based application automation testing and supports languages like ruby,
java, scala, groovy etc. Cucumber reads executable specification written in plain
text and tests the application under test for those specifications.

For cucumber to understand the scenarios in plain text, we have to follow some
basic syntax rules which are known as Gherkin.

(v) TestComplete: TestComplete is a licensed automated UI testing tool to test the


application across different platforms like desktops, web, mobile etc. It provides
flexibility to record a test case on one browser and run it on multiple browsers
and thus supports cross browsers testing.

TestComplete has inbuilt object recognition algorithm which uniquely identifies an


object and stores it in the repository.

Q #27) What are the different types of testing framework techniques?

Answer: There are four types of automation testing framework techniques.

They are:

#1) Modular Testing framework:

This framework is built on the concept of abstraction. In this framework, the


tester creates scripts for each module of the application under test individually
and then these scripts are combined in the hierarchical order to create large test
cases.

It creates an abstraction layer between the modules, thus any modifications in test
scripts for one module do not affect any other modules.

Advantages of this framework:

Easier maintenance and scalability of test cases.


Creating test cases by using already scripted modules is easier and faster.
Disadvantages:

Test cases have data embedded in them. Thus executing the same test script with
different data is a big change at the script level.
#2) Data Driven Testing framework:

In Data-driven testing framework, the input data and the expected output data
corresponding to the input data is stored in a file or database and automated
script runs the same set of test steps for multiple sets of data. With this
framework, we can run multiple test cases where only the input data differs and the
steps of execution are the same.

Advantages:

Reduces the number of test scripts that are required to be executed. We execute the
same script multiple times with different data.
Less coding for automation testing.
Greater flexibility for maintaining and fixing the bugs or enhancing the
functionality.
Test data can be created even before the automated system for testing is ready.
Disadvantages:

Only similar test cases with the same set of execution steps can be combined for
multiple sets of data. The different set of execution steps require a different
test case.
#3) Keyword-Driven Testing framework:

It is an application independent testing framework which uses data tables and self-
explanatory keywords. Keywords explain the actions to be performed on the
application under test and data table provides the input and expected output data.

Keyword-based testing is an increment to data-driven testing.

Advantages:

Less coding and the same script can be used for multiple sets of data.
Automation expertise is not required for creating a test case using the already
existing keywords for actions.
Same keywords can be used across multiple test cases.
Disadvantages:

This framework is more complicated as it needs to take care of the keyword actions
and also the data input.
Test cases get longer and complex thereby affecting the maintainability of the
same.
#4) Hybrid Testing framework:

This framework is a combination of all the above-mentioned testing frameworks


( Modular, data-driven, and keyword-driven).

In this framework, the test cases are developed from modular scripts by combining
them in the modular testing framework. Each of the test cases uses a driver script
which uses a data file as in data-driven framework and a keyword based action file.

Advantages:

Modular and easy to maintain.


Less coding can take care of more test cases.
One test case can be executed with multiple sets of data.
Disadvantages:

Complex to read, maintain and enhance.


Q #28) When do you prefer Manual testing over Automation testing?

Answer: We prefer manual testing over automation testing if:

The project is short-term and writing scripts will be time-consuming and costly
when compared to manual testing.
Flexibility is required. Automated test cases are programmed and run in a specific
way of configurations.
Usability testing needs to be performed.
Application/module are newly developed and have no previous test cases.
Ad-hoc or exploratory testing needs to be performed.
Q #29) Is Automation testing in agile Methodology useful or not?

Answer: Automation testing is useful for regression, smoke or sanity testing. All
these types of testing in traditional waterfall model happen at the end of the
cycle and sometimes if there are not many enhancements to the application, we might
not even have to do regression testing.

Whereas, in agile methodology, every iteration requires executing the regression


test case as a new functionality is added.

Also, the regression suite itself keeps growing after each sprint as the functional
test cases of the current sprint module need to be added to the regression suite
for the next sprint.

Thus, Automation testing in agile methodology is very useful and helps in achieving
maximum test coverage in a lesser time of the sprint.

Q #30) List some advantages and disadvantages of Automation testing.

Answer:

Advantages:
Fewer Human resources
Reusability
More Test Coverage in less time
Reliability
Parallel execution of test cases
Fast
Disadvantages:

Development and maintenance time is more.


Tool Cost
Skilled resources are required.
Environment setup
Test Script debugging is an issue.
Q #31) List some advantages and disadvantages of Manual testing.

Answer:

Advantages:

No environment setup needed.


Programming knowledge is not required.
Recommended for dynamically changing requirements.
Allows human observation power to detect more bugs.
Cost is less for short-term projects.
Flexibility
Disadvantages:

Difficult to perform complex calculations.


Reusability
Time taking
High risk of human errors or mistakes.
More human resources are required.
Q #32) Can we do Automation testing without a framework? If yes, then why do we
need a framework?

Answer: Yes, We can perform automation testing even without using a framework. We
can just understand the tool that we are using for automation and program the steps
in the programming language that tools support.

If we automate test cases without a framework then there won't be any consistency
in the programming scripts for test cases.

A framework is required to give a set of guidelines that everyone has to follow to


have maintained readability, reusability, and consistency in the test scripts. A
framework also provides one common ground for reporting and logging functionality.

Q #33) How will you automate basic �login� functionality test cases for an
application?

Answer: Assuming that the automation tool and framework is already in place of the
test environment.

To test the basic �Login� functionality:

Understand the project requirement: Login functionality will have a username


textbox, a password textbox, and a login button.
Identify the Test scenarios: For login functionality, the possible test scenarios
are:
Blank username and password
Invalid username and password
A valid username and invalid password
Valid username and password
Prepare a Data input file with the data corresponding to each scenario.
Launch the tool from the program.
Identify the username field, password field, and the login button.
For each test scenario, get the data from the data file and enter into the
corresponding fields. Program click on the login button after entering the data.
Validate the error message for negative scenarios and the success message for
positive scenarios in the test script with the help of assertions.
Run the test suite and generate the report.

Q #34) Is Automation testing a Black box testing or White-box testing?

Answer: Automation testing is mostly a black box testing as we just program the
steps that a manual tester performs for application under test without knowing the
low-level design or code of the application.

Sometimes, automated test scripts need access to the database details that are used
in the application under test or some more coding details and thus can be a type of
white-box testing.

Thus automated testing can be both black or white box type of testing depending on
the scenarios in which automation is performed.

Q #35) How many test cases have you automated per day?

Answer: Well, the number depends on the complexity of the test cases. When the
complexity was limited, I was able to automate 5 to 6 test cases per day.
Sometimes, I was able to automate only one test case for complex scenarios.

I have also broken down my test cases into different components like, take input,
do the calculation, verify the output etc. in case of very complex scenarios and
have taken 2 or more days.

Q #36) What factors determine the effectiveness of Automation testing?

Answer: Some of the factors that determine the effectiveness of automation testing
are:

Time saved by running scripts over the manual execution of test cases.
Defects found
Test Coverage or code coverage
Maintenance time or development time
Stability of the scripts
Test Reusability
Quality of the software under test
Q #37) Which test cases can be automated?

Answer: Types of test cases which can be automated are:

(i) Smoke test cases: Smoke testing is also known as build verification testing.
Smoke test cases are run every time when a new build is released to check the
health of the build for acceptance to perform testing.

(ii) Regression Test Cases: Regression testing is the testing to ensure that
previously developed modules are functioning as expected after a new module is
added or a bug is fixed.
Regression test cases are very crucial in incremental software approach where a new
functionality is added at each increment phase. In this case, regression testing is
performed at each incremental phase.

(iii) Complex Calculation test cases: Test cases which involve some complex
calculations to verify a field for an application fall into this category. Complex
calculation results are more prone to human errors hence when automated they give
accurate results.

(iv) Data-driven test cases: Test cases which have the same set of steps and run
multiple times with the change of data are known as data-driven test cases.
Automated testing for these kinds of test cases is quick and cost-effective.

(v) Non-functional test cases: Test cases like load tests and performance tests
require a simulated environment with multiple users and multiple hardware or
software combinations.

Setting up multiple environments manually is impossible for each combination or


number of users. Automated tools can easily create this environment to perform non-
functional testing easily.

Q #38) What are the phases in Automation testing Life Cycle?

Answer: The phases in Automation testing life Cycle include:

The decision to perform automation testing.


Identify and learn about the automation tool.
Determine the scope of automation testing.
Design and develop a test suite.
Test Execution
Maintenance of test scripts.

Q #39) What is an Automated test script?

Answer: An automated test script is a short program that is written in a


programming language to perform a set of instructions on an application under test
to verify if the application is as per the requirements.

This program when run, gives the test results as pass or fail to depend on if the
application is as per the expectations.

Das könnte Ihnen auch gefallen