Types of Testing : Types of Testing
Types of Testing : Types of Testing Two types of testing
Functional
Non functional
Functional Testing : Functional Testing Functional tests are those which are designed to test the software to ensure that there are no defects or bugs in fulfilling the functionality as stated in requirements. These tests are performed to ensure that the application functions as intended and meets both implied and stated requirements of functionality.
Functional Testing ( Contd.) : Functional Testing ( Contd.) Unit testing
A software is made up of a number of functions
Each function is carried out by a small unit of code which can be tested independently
Unit testing is generally done by developers themselves in most cases to ensure that the code written accomplishes the intended function
Functional Testing ( Contd.) : Functional Testing ( Contd.) Unit testing
White box testing
Each unit is tested independently
The defects are found , fixed by the developer
Functional testing ( contd.) : Functional testing ( contd.) Integration Testing
Carried out after the different units /modules are integrated
Done by test engineers / QA team
There can be many levels of integration testing
Ensures that defects found after integration or because of integration are fixed
Functional Testing ( Contd.) : Functional Testing ( Contd.) System Testing
End to end testing of complete software to ensure that all functionality is fulfilled after integration
Done by testing team
Black box testing
Scenario based testing of the complete software
Functional Testing ( Contd.) : Functional Testing ( Contd.) Sanity testing
Purpose is to assess the stability of build
To ensure there are no blocking bugs
That no major functionality is broken
Also called ‘smoke test’
Generally automated and carried out for every build
Functionality Testing ( Contd.) : Functionality Testing ( Contd.) Regression Testing
Repeated testing of functionality
Every time a new piece of code is introduced to ensure that no new bugs are introduced it is required to repeat the tests
Prime candidate for automation
Non Functional Testing : Non Functional Testing There are a number of non functional tests which need to be performed to ensure that all requirements in terms of security , performance and other implied requirements are met. These tests are equally important .
Non functional Testing (Contd.) : Non functional Testing (Contd.) Load Testing
One of the most important test especially for web applications
A number of parameters like no of concurrent users , response times with different loads and ability of the software to respond under different conditions for different loads can be tested
Number of tools are availble
Non functional Testing (Contd.) : Non functional Testing (Contd.) Stress Testing
The ability of an application to perform for sustained periods under heavy load is tested
Susceptible for automation
Very important for certain types of server applications which operate for days together under heavy load
Non functional Testing (Contd.) : Non functional Testing (Contd.) Scalability testing
To find out how much is the load that system can accommodate
System gradually loaded with increasing number of concurrent users and the parameters like CPU usage , memory usage are measured to find out the optimum load
Important for web applications
Non functional Testing (Contd.) : Non functional Testing (Contd.) Volume testing
Data base testing
Large volumes of data are used to populate the database to observe the behavior of data base under heavy loads
Very important test for applications with huge data bases
Non functional Testing (Contd.) : Non functional Testing (Contd.) Memory leak test
White box test
Tool based test with an instrumented build
Identifies memory leaks due to improper code
Also known as ‘endurance’ test
Tests are executed on the instrumented build
Non functional Testing (Contd.) : Non functional Testing (Contd.) Compatibility Testing
Compatibility testing is done to ensure that the software performs equally well in different operating environments.
Example : web application in IE (different versions) , Chrome , mozilla , Netscape etc.
Different operating systems etc
Non Functional Testing ( Contd.) : Non Functional Testing ( Contd.) Security Testing
For testing the vulnerability of the application against hackers or other threats like denial of service
Extremely important for B2B sites and software which uses sensitive data and financial applications
Non Functional Testing ( Contd.) : Non Functional Testing ( Contd.) Usability testing
To test the user friendliness of a end user
Even though application fulfills all functionality it may not be user friendly
To test whether the navigation in a web application is easy from end user point of view
Non Functional Testing ( Contd.) : Non Functional Testing ( Contd.) Acceptance testing
Is performed by the user or his representative before accepting the application/software from service provider
It could be a combination of both functional and non functional tests
Format and tests agreed to by both vendor and accepting authority.
Non Functional Testing ( Contd.) : Non Functional Testing ( Contd.) Installation testing
Very important for products
Tests ease of installation and subsequent installation of patches, uninstallation , amount of space required for installation etc
Non Functional Testing ( Contd.) : Non Functional Testing ( Contd.) Documentation testing
Documentation prepared by doc team must be verified along with the software
Follow documentation and perform all actions according to the document and test the application
Document may need to be corrected.
Summary : Summary Testing
Functional
Non Functional
Both functional and Non functional could be black box and white box testing
Summary (Contd.) : Summary (Contd.) Functional tests
Unit test
Integration test
System test
Smoke test
Regression test
Summary (Contd.) : Summary (Contd.) Non functional tests
Load testing
Stress testing
Scalability testing
Volume testing
Compatibility testing
Security testing
Summary ( Contd.) : Summary ( Contd.) Non Functional tests
Acceptance testing
Installation testing
Documentation testing
Usability testing
Memory leak testing