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

Functional Testing Mod 4

Uploaded by

amitydubai056
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Functional Testing Mod 4

Uploaded by

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

Functional Testing

MOD-4
What is Functional Testing
• In functional testing, testers evaluate an application’s basic
functionalities against a predetermined set of specifications.
• Using Black Box Testing techniques, functional tests measure whether
a given input returns the desired output, regardless of any other
details.
• Results are binary: tests pass or fail.
• This testing focuses on checking the user
interface, APIs, database, security, client or server application, and
functionality of the Application Under Test.
• Functional testing can be manual or automated.
Why?
• Functional testing is important because, without it, you may not
accurately understand whether your application functions as intended.
• An application may pass non-functional tests and otherwise perform well.
• Still, if the application doesn’t deliver the key expected outputs to the
end-user, it cannot be considered working.
• The tester tests each entry function of the application to check all the
entry and exit points.
• The flow of the GUI screen is checked so that the user can navigate
throughout the application.
What to Test in Functional Testing?

• Basic Usability: This checks if users can easily navigate the app
without any trouble. It’s all about making sure the experience is
smooth.
• Main Functions: Functional testing also looks at the app is a core
features to verify they are working correctly, just as they’re meant to.
• Accessibility: This ensures the app is accessible to everyone, including
users with disabilities. It checks whether accessibility features are in
place and functioning properly.
• Error Handling: Lastly, it tests how the app handles errors. Are the
right error messages shown when something goes wrong? This part
verify users are informed when an issue arises.
Process
Type of Functional Testing
• Unit Testing:
Unit testing breaks down the desired outcome into individual units, allowing you to test if a small number of
inputs (sometimes just one) produce the desired output. These tests tend to be small and quick to write and
execute. Each one is designed to cover a single section of code (a function, method, object, etc.) and verify
that code’s functionality.
• Smoke Testing:
Testers perform smoke testing to verify that the most critical parts of the application work as intended. It’s a
first pass through the testing process and isn’t meant to be exhaustive. Smoke tests ensure that the
application is operational on a basic level. If it’s not, there’s no need to progress to more detailed testing, and
the application can go right back to the development team for review.
• Sanity Testing:
Sanity testing acts as a cousin to smoke testing, verifying basic functionality to potentially bypass detailed
testing on broken software. Unlike smoke tests, sanity tests occur later in the process to confirm whether a
new code change achieves its intended effect. This ‘sanity check’ ensures the new code roughly performs as
expected.
• Integration Testing:
Integration testing determines whether combinations of individual software modules function properly
together. Individual modules may already have passed independent tests, but when they are dependent on
other modules to operate successfully, this kind of testing is necessary to ensure that all parts work together
as expected.
• Regression Testing:
Regression testing makes sure that the addition of new code does not break existing
functionalities. In other words, did your new code cause the quality of your application to
“regress” or go backward? Regression tests focus on recent changes and ensure that the whole
application remains stable and functions as expected.
• User Acceptance Testing (UAT)/Beta Testing:
Usability testing involves exposing your application to a limited group of real users in a
production environment. Teams use feedback from live users—who have no prior experience
with the application and may uncover critical bugs unknown to internal teams—to make
further changes before a full launch.
• UI/UX Testing:
UI/UX testing evaluates the application’s graphical user interface. The performance of UI
components such as menus, buttons, text fields, and more are verified to ensure that the user
experience is ideal for the application’s users. UI/UX testing is also known as visual testing and
can be manual or automated.
• System testing:
It is a type of software testing that is performed on the complete integrated system to evaluate
the compliance of the system with the corresponding requirements.
• White box testing:
It is a type of software testing that allows the tester to verify the internal workings of the
software system. This includes analyzing the code, infrastructure, and integrations with the
external system.
• Black box testing:
It is a type of software testing where the functionality of the software system is tested
without looking at the internal workings or structures of the software system.
• Database testing:
It is a type of software testing that checks the schema, tables, etc of the database under
test.
• Adhoc testing:
It also known as monkey testing or random testing is a type of software testing that does
not follow any documentation or test plan to perform testing.
• Recovery testing:
It is a type of software testing that verifies the software’s ability to recover from failures like
hardware failures, software failures, crashes, etc.
• Static testing: It is a type of software testing that is performed to
check the defects in software without actually executing the code of
the software application.
• Component testing: It is also known as program testing or module
testing is a type of software testing that is done after the unit testing.
In this, the test objects can be tested independently as a component
without integrating with other components.
How to Perform Functional Testing

• The essence of a functional test involves three steps:


• Determine the desired test input values
• Execute the tests
• Evaluate the resulting test output values
Functional Testing Techniques
• There are many functional testing techniques you might use to design a test
suite for this:
• Boundary value tests evaluate what happens if inputs are received outside of
specified limits – such as a user entering a number that was too large (if there
is a specified limit) or attempting to enter non-numeric input
• Decision-based tests verify the results after a user decides to take an action,
such as clearing the history
• User-based tests evaluate how components work together within an
application – if the calculator’s history was stored in the cloud, this kind of test
would verify that it did so successfully
• Ad-hoc tests can be done at the end to try and discover bugs other methods
did not uncover by seeking to break the application and check its response
Parameters Functional Testing Non-functional Testing

Definition Functional testing verifies the operations and Non-functional verifies the behavior of an
actions of an application. application.

Testing based on It is based on the requirements of the customer. It is based on the expectations of the customer.

Objective The objective is to validate software actions. The objective is to performance of the software
system

Requirements Functional testing is carried out using the Non-functional testing is carried out using the
functional specification. performance specifications.

Functionality It describes what the product does. It describes how the product works.

•Unit testing. •Performance testing.


•Integration testing. •Load testing.
Example •Sanity testing •Stress testing.
•Smoke testing. •Volume testing.
•Regression testing. •Usability testing.
Benefits of Functional Testing

• Bug-free product: Functional testing ensures the delivery of a bug-free and


high-quality product.
• Customer satisfaction: It ensures that all requirements are met and ensures
that the customer is satisfied.
• Testing focused on specifications: Functional testing is focused on
specifications as per customer usage.
• Proper working of application: This ensures that the application works as
expected and ensures proper working of all the functionality of the application.
• Improves quality of the product: Functional testing ensures the security and
safety of the product and improves the quality of the product.
Limitations of Functional Testing

• Missed critical errors: There are chances while executing functional


tests that critical and logical errors are missed.
• Redundant testing: There are high chances of performing redundant
testing.
• Incomplete requirements: If the requirement is not complete then
performing this testing becomes difficult.
Non-Functional Testing
• It verifies whether the behavior of the system is as per the
requirement or not.
• To help in the reduction of production risk related to non-functional
aspects of the product.
• To help in the reduction of costs related to non-functional aspects of
the product.
• To improve and enhance knowledge of the product behavior and
technologies in use.
Non-Functional Testing Techniques
• Compatibility testing: is a type of testing to ensure that a software program or system is
compatible with other software programs or systems. For example, in this, the tester checks
that the software is compatible with other software, operating systems, etc.
• Compliance testing: is a type of testing to ensure that a software program or system meets a
specific compliance standard, such as HIPAA or Sarbanes-Oxley. It is often the first type of
testing that is performed when accessing the control environment.
• Endurance testing: is a type of testing to ensure that a software program or system can
handle a long-term, continuous load. For example for the banking application, the application
is tested to know if the system can sustain under the continuous expected load.
• Load testing: is a type of testing to ensure that a software program or system can handle a
large number of users or transactions. For example, Running multiple applications on the
computer simultaneously.
• Performance testing: is a type of testing to ensure that a software program or system meets
specific performance goals, such as response time or throughput. For example, organizations
perform performance tests to identify performance-related bottlenecks.
Non-Functional Testing Techniques
• Recovery testing: is a type of testing to ensure that a software program or system can
be recovered from a failure or data loss. For example, when the application is running
and the computer is restarted, check the validity of the application’s integrity.
• Security testing: is a type of testing to ensure that a software program or system is
secure from unauthorized access or attack. For example, Organizations perform
security testing to reveal flaws in the security mechanism of the information system.
• Scalability testing: is a type of testing to ensure that a software program or system can
be scaled up or down to meet changing needs. For example, to measure the
application’s capability to scale up or scale out in terms of non-functional capability.
• Stress testing: is a type of testing to ensure that a software program or system can
handle an unusually high load. For example, extremely large numbers of concurrent
users try to log into the application.
Non-Functional Testing Parameters
Benefits of Non-functional Testing

• Improved performance: Non-functional testing checks the performance of


the system and determines the performance bottlenecks that can affect the
performance.
• Less time-consuming: Non-functional testing is overall less time-consuming
than the other testing process.
• Improves user experience: Non-functional testing like Usability testing
checks how easily usable and user-friendly the software is for the users.
Thus, focus on improving the overall user experience for the application.
• More secure product: As non-functional testing specifically includes security
testing that checks the security bottlenecks of the application and how
secure is the application against attacks from internal and external sources.
Limitations of Non-functional Testing

• Non-functional tests are performed repeatedly: Whenever there is a


change in the application, non-functional testing is performed again.
Thus, it is more resource intensive.
• Expensive in case of software update: In case of software update,
non-functional testing is performed again thus incurring extra charges
to re-examine the software, and thus software becomes expensive.

You might also like