Saturday, February 15, 2014

Software Testing Types

Unit Testing
Unit testing is the testing of an individual unit or group of related units. It falls under the class of white box testing. It is often done by the programmer to test that the unit he/she has implemented is producing expected output against given input.

Integration Testing
Upon completion of unit testing, integration testing, which is black box testing, will begin. Integration test will be termed complete when actual results and expected results are accepted. In the Integration testing group of components are combined to produce output. The purpose is to ensure distinct components of the application still work in accordance to customer requirements. Test sets will be developed with the express purpose of exercising the interfaces between the components. This activity is to be carried out by the Test Team.. 

Incremental Integration Testing
Continuous testing of an application as new functionality is recommended. This may require various aspects of an application’s functionality be independent enough to work separately before all parts of the program are completed, or that test drivers are developed as needed. This type of testing may be performed by programmers or by testers

System Testing
Upon completion of integration testing, the Test Team will begin system testing. During system testing, which is a black box test, the complete system is configured in a controlled environment to validate its accuracy and completeness in performing the functions as designed. System testing is the testing to ensure that by putting the software in different environments (e.g., Operating Systems) it still works. System testing is done with full system implementation and environment. It falls under the class of black box testing.

User Acceptance Testing
 Acceptance testing is often done by the customer to ensure that the delivered product meets the requirements and works as the customer expected. It Acceptance testing, which falls under black box  testing, will give the client the opportunity to verify the system functionality and usability prior to the system being moved to production. The acceptance test will be the responsibility of the client; however, it will be conducted with full support from the project team. The Test Team will work with the client to develop the acceptance criteria


Alpha Testing
Testing of an application when development is nearing completion, Minor design changes may still be made as a result of such testing. Alpha Testing is typically performed by end-users or others, not by programmers or testers

Beta Testing
Beta testing is the testing which is done by end users, a team outside development, or publicly releasing full pre-version of the product which is known as beta version. The aim of beta testing is to cover unexpected errors. It falls under the class of black box testing. Beta Testing is typically done by end-users or others, not by programmers or testers at client environment.

Black Box Testing
Black box testing is a testing technique that ignores the internal mechanism of the system and focuses on the output generated against any input and execution of the system. It is also called functional testing. The main purpose of the blackbox testing is to verify the functionality of the application and focused on the output.

White Box Testing 
White box testing is a testing technique that takes into account the internal mechanism of a system. It is also called structural testing and glass box testing. The main concern of white box testing to reduce coding complexity if any and verify each statement and branch has been covered by the test cases which we are write. 

Performance Testing
Performance testing is the testing to assess the speed and effectiveness of the system and to make sure it is generating results within a specified time as in performance requirements. Process of measuring various efficiency characteristics of a system such as response time, through put, load stress transactions per minutes transaction mix

Stress Testing
Stress testing is the testing to evaluate how system behaves under unfavorable conditions. Testing is conducted at beyond limits of the specifications. Checking the application behavior under stress conditions, Reducing the system resources and keeping the load as constant checking how the application does is behaving is called stress testing

Load Testing
It verifies the performance of the server under stress of many clients requesting data at the same time. Analyzing functional and performance behavior of the application under various conditions is called Load Testing

Security testing
If your site requires firewalls, encryption, user authentication, financial transactions, or access to databases with sensitive data, you may need to test these and also test your site’s overall protection against unauthorized internal or external access. The main aim of security testing is to validating whether all security conditions are properly implemented in the software or not.

Usability Testing
Usability testing is performed to the perspective of the client, to evaluate how the GUI is user-friendly? How easily can the client learn? After learning how to use, how proficiently can the client perform? How pleasing is it to use its design? Testing for ‘user-friendliness’ clearly this is subjective and will depend on the targeted end-user or customer. User interviews, surveys, video recording of user sessions, and other techniques can be used. Programmers and testers are usually not appropriate as usability testers

Build Acceptance Tests
Build Acceptance Tests simply ensure that the application can be built and installed successfully. Other related test cases ensure that Testing received the proper Development Release Document plus other build related information. The objective is to determine if further testing is possible.

Smoke Tests
Smoke Tests cases verify the major functionality a high level. The objective is to determine if further testing is possible. These test cases should emphasize breadth more than depth. All components should be touched, and every major feature should be tested briefly by the Smoke Test.

Sanity Testing
After successful completion of smoke testing we start the sanity testing which verify the issue more deeply. Typically an initial testing effort to determine if a new software version is performing well enough to accept it for a major testing effort.

Regression Testing
Regression testing is the testing after modification of a system, component, or a group of related units to ensure that the modification is working correctly and is not damaging or imposing other modules to produce unexpected results. It falls under the class of black box testing. 

Re-Testing/Confirmation Testing
Re testing is perform each and every time when any bug has been resolved we run same test case as previously and identify that bug has been fixed or not. Basically purpose of re-testing is to confirm or assured that issue has been closed.

 Exploratory Testing
Exploratory testing often taken to mean a creative, internal software test that is not based on formal test plans or test cases; testers may be learning the software as they test it. If we start testing without any proper documentation, such type of testing is done by the own experience and knowledge.



No comments:

Post a Comment