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.
#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.
#7) Browser Compatibility Testing
It is a subtype of Compatibility Testing 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.
#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.
#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.
#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.
#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.
#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.
AGILE SOFTWARE DEVELOPMENT
In software development, agile (sometimes written Agile)[1] approaches development requirements and
solutions through the collaborative effort of self-organizing and cross-functional teams and
their customer(s)/end user(s).[2] It advocates adaptive planning, evolutionary development, early
delivery, and continual improvement, and it encourages flexible responses to change.
SCRUM
The product backlog is another artifact of Scrum. This is the complete list of the functionality that
remains to be added to the product. The product owner prioritizes the backlog so the team always
works on the most valuable features first.