- Functional Testing
Functional testing is also known as component testing.
It tests the functioning of the system or software i.e. What the software does. The functions of the software are described in the functional specification document or requirements specification document.
Functional testing considers the specified behavior of the software.
2.Non Functional Testing
Non functional testing tests the characteristics of the software like how fast the response is, or what time does the software takes to perform any operation.
Some examples of Non-Functional Testing are:
Non functionality testing focuses on the software's performance i.e. How well it works.
3.Static Testing
Static testing is the form of software testing where you do not execute the code being examined. This technique could be called non-execution technique. It is primarily syntax checking of the code or manually reviewing the code, requirements documents, design documents etc. to find errors.
From the black box testing point of view, static testing involves reviewing requirements and specifications. This is done with an eye toward completeness or appropriateness for the task at hand. This is the verification portion of Verification and Validation.
The fundamental objective of static testing technique is to improve the quality of the software products by finding errors in early stages of software development life cycle.
Following are the main Static Testing techniques used:
1. Informal Reviews
2. Walkthrough
3. Technical Reviews
4. Inspection
5. Static Code Analysis
4.Dynamic Testing
Dynamic Testing is used to test the software by executing it. Dynamic Testing is also known as Dynamic Analysis, this technique is used to test the dynamic behavior of the code. In dynamic testing the software should be compiled and executed, this analyses the variable quantities like memory usage, CPU usage, response time and overall performance of the software.
Dynamic testing involves working with the software, input values are given and output values are checked with the expected output. Dynamic testing is the Validation part of Verification and Validation.
5.Black Box Testing
Blackbox testing tests functional and non-functional characteristics of the software without referring to the internal code of the software.
BlackBox testing doesn't requires knowledge of internal code/structure of the system/software.
It uses external descriptions of the software like SRS(Software Requirements Specification), Software Design Documents to derive the test cases.
6.White Box Testing
WhiteBox testing tests the structure of the software or software component. It checks what going on inside the software.
Also Know as clear box Testing,glass box testing or structural testing.
Requires knowledge of internal code structure and good programming skills.
It tests paths within a unit and also flow between units during integration of units.
7.Install Testing
Install Testing is done to ensure that the software and its components get installed successfully and function properly post installation.
While doing Installation testing, test engineer should keep in mind the following points:
- Product Installer should check for the pre-requisites needed for the software.
- Product Installer should give user the default install location of the software.
- Installer should allow user to change the install location.
- Over the network installation should be supported.
- Try installing the software without administrative privileges.
- Installation should be successful on all the supported platforms.
- Installer should give option to repair or uninstall.
- Un-installation should happen successfully and all the installed files should get cleaned up from the install location, also registry entry should get removed.
- Silent installation should be successful.
- Native installation should be successful.
Silent Installation
Silent installation does not send messages to the console, silent installation verifies that messages and errors are stored properly in log files. Response files are used for data input in silent installation.
Native Installation
Native installation installs the software application using the OS installation utilities, it verifies that the installation of native packages(i.e. rpm files, Solaris pkg files, AIX installp files) for Linux and Unix platforms is successful.
Interactive Installation
Interactive installation is the GUI installation of software application, user sees a installation screen and provides the installation parameters.
8.Smoke Testing
Smoke testing is done for the software in order to verify that the software is stable enough for further testing. it has a collection of written tests that are performed on the software prior to being accepted for further testing. Smoke testing "touches" all areas of the application without getting too deep, tester looks for answers to basic questions like, "Does the application window opens", "Can tester launch the software?" etc.
In software engineering, a smoke test generally consists of a collection of tests that can be applied to a newly created or repaired computer program. Sometimes the tests are performed by the automated system that builds the final software. In this sense a smoke test is the process of validating code changes before the changes are checked into the larger production official source code collection or the main branch of source code.
9.Globalization Testing
Globalization is the term used to describe the process of producing software that can be run independent of its geographical and cultural environment. Localization is the term used to describe the process of customizing the globalized software for a specific environment. For simplicity, the term "globalization" will be used to describe both concepts, for in the broadest sense of the term, software is not truly globalized unless it is localized as well.
There are lot aspects that must be considered when producing globalized software. Some of the aspects are as follows:
Sensitivity to the English vocabulary
Date and time formatting
Currency handling
Paper sizes for printing
Address and telephone number formatting
10.Interoperability Testing
Interoperability means the capability of the software to interact with other systems/softwares or software components.
Interoperability testing means testing the software to check if it can inter-operate with other software component, softwares or systems.