What Are The Different Types of Functional Testing?
What Are The Different Types of Functional Testing?
What Are The Different Types of Functional Testing?
functional requirements/specifications. Functions (or features) are tested by feeding them input
and examining the output. Functional testing ensures that the requirements are properly
satisfied by the application.
Each and every functionality of the system is tested by providing appropriate input, verifying the
output and comparing the actual results with the expected results.
This testing involves checking of User Interface, APIs, Database, security, client/ server
applications and functionality of the Application Under Test. The testing can be done either
manually or using automation
UNIT TESTING is a level of software testing where individual units/ components of a software
are tested. The purpose is to validate that each unit of the software performs as designed.
A unit is the smallest testable part of any software. It usually has one or a few inputs and
usually a single output.
Smoke testing is defined as a type of software testing that determines whether the deployed
build is stable or not. This serves as confirmation whether the QA team can proceed with
further testing. Smoke tests are a minimal set of tests run on each build. Here is the cycle
where smoke testing is involved.
Sanity testing is the subset of regression testing and it is performed when we do not have
enough time for doing testing. Sanity testing is the surface level testing where QA engineer
verifies that all the menus, functions, commands available in the product and project are
working fine
INTEGRATION TESTING is a level of software testing where individual units are combined
and tested as a group. The purpose of this level of testing is to expose faults in the interaction
between integrated units. Test drivers and test stubs are used to assist in Integration
Testing.
Interface Testing is defined as a software testing type which verifies whether the
communication between two different software systems is done correctly. A connection that
integrates two components is called interface.
SYSTEM TESTING is a level of software testing where a complete and integrated software is
tested. The purpose of this test is to evaluate the system's compliance with the specified
requirements. Definition by ISTQB
User acceptance testing (UAT) is the last phase of the software testing process. During UAT,
actual software users test the software to make sure it can handle required tasks in real-world
scenarios, according to specifications.
Manual Testing:
As most people in the software industry know, there are distinct differences between manual
testing and automated testing. Manual testing requires physical time and effort to ensure the
software code does everything it’s supposed to do. In addition, manual testers have to make a
record of their findings. This involves checking log files, external services and the database for
errors. If you’re familiar with manual testing, you know this process can be extremely time-
consuming and repetitive.
Automated testing
Automated testing is, well, automated. This differs from manual testing where a human
being is responsible for single-handedly testing the functionality of the software in the
way a user would. Because automated testing is done through an automation tool, less
time is needed in exploratory tests and more time is needed in maintaining test scripts
while increasing overall test coverage.
The benefit of manual testing is that it allows a human mind to draw insights from a test
that might otherwise be missed by an automated testing program. Automated testing is
well-suited for large projects; projects that require testing the same areas over and over;
and projects that have already been through an initial manual testing process.
The reality is, there is no “better” or “worse” in the automated vs. manual debate,
there’s just “different.” Each approach has its own advantages and disadvantages.
Manual testing is performed by a human sitting in front of a computer carefully going
through application via SQL and log analysis, trying various usage and input
combinations, comparing the results to the expected behavior and recording the
results. Automated testing is often used after the initial software has been developed.
Lengthy tests that are often avoided during manual testing can be run unattended.
They can even be run on multiple computers with different configurations.
In the end, both manual and automated testing have their roles, especially if the
software you’re developing is too large and too complex to rely just on the manual
approach.
Stress testing - It is performed to find the upper limit capacity of the system
and also to determine how the system performs if the current load goes well
above the expected maximum.
Scalability testing ensures that an application can handle the projected increase in
user traffic, data volume, transaction counts frequency, etc.
Security Testing
Security Testing is defined as a type of Software Testing that ensures software systems
and applications are free from any vulnerabilities, threats, risks that may cause a big loss. ...
It also helps in detecting all possible security risks in the system and help developers in
fixing these problems through coding.
Compatibility Testing:
Globalization is the process of designing and developing applications that function for
multiple cultures. Localization is the process of customizing your application for a
given culture and locale. ... Format and parse numbers, dates etc. according to the
user's locale.
Agile testing is a software testing process that follows the principles of agile software
development. Agile testing aligns with iterative development methodology in which
requirements develop gradually from customers and testing teams. The development is
aligned with customer requirements
Typically, "platform" refers to the actual hardware/software upon which a piece of software
is built or for which it is destined. Example usage: "I built this app for the Windows platform."
"Framework" refers to a collection of libraries/classes with the common goal of providing a
scaffold on which to build software.
What is difference between framework and tool?
The difference between a framework and a tool is that you have to do work to fillin
the blanks when it comes to a framework, whereas a tool does most of the work itself.
Also, frameworks are typically built to address a narrow need whereas toolsare built
for broader use cases.
Selenium is a free (open source) automated testing suite for web applications
across different browsers and platforms. It is quite similar to HP Quick Test
Pro (QTP now UFT) only that Selenium focuses on automating web-based
applications. Testing done using Selenium tool is usually referred as Selenium
Testing.
Selenium is not just a single tool but a suite of software's, each catering to
different testing needs of an organization. It has four components.