Wednesday, February 22, 2012

Types of Testing

There are many types of Testing. Refer website "Guru99.com" for the list. But I would like to set our focus on few which we use often.

White Box Testing
Testing based on an analysis of internal workings and structure of a piece of software which is based on knowledge of internal logic of application's code is known as White box testing. It is also known as Glass box Testing. In White box testing one would have knowledge of development language and general OOPS concept.

Black Box Testing
Testing a feature without having access to code, instead testing functionality of an application with considering only requirements. In Black box testing one should have knowledge of the product in test and should compare with the requirements.

Smoke Testing
Smoke Test is performed to verify the stability of the build under test; it's a quick test that major functionality is tested without bothering with finer details. Smoke Test is generally automated and it takes between 20 minutes to 3 hours (depending upon functionality to be tested).

Sanity Testing
Sanity Test is performed on new software initially to decide if the build is stable enough and can be tested further.

Regression Testing
Regression is performed to verify the changes introduced during the release of new build are working as per expectation, the other functionality due to that fixed are not hampers and a new issue is not injected in the new build.

Performance Testing
Performance Test is the most effective way to gauge an application or an environment's capacity and scalability. This is useful to identify performance bottlenecks in application. Performance Testing is performed to verify whether system meets performance requirements.

Stress Testing
Stress Test is testing under heavy load beyond system capacity. The objective of Stress testing is to identify the load under which it fails and how. Stress Testing is similar to Performance testing but in Stress Testing we use a very high level of simulated load.

Load Testing
Load Test is monitoring the behavior of system under heavy load, wherein keeping the track of system response time and the graph which degrades or fail with time.

Unit Testing
Unit Test is often performed by developers and not testers, wherein it is a testing of software components or modules which is tested before it is integrated with other modules.

Compatibility Testing
Compatibility Test is often performed to determine whether the application is compatible with other systems that it needs to interface with. For a Windows application it can be tested across different OS, the look and feel as well as the functionality can be tested on the other hand for a web based application it can be tested across different browser and their sub version.

User Acceptance Testing
User Acceptance Test is black box is testing which is performed by client 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 which is performed in presence of project team. A third party test team can work with the client to perform User Acceptance Testing.


I will try to blog more types of testing with more details in future, but if you want to know more about other types of testing please drop a comment and I will try to surely answer your queries as soon as possible.


Note: There are different process and methodologies followed in various organizations. The above content is as per my experience in industry so far.
Please feel free to write comments if you like my post or else if your opinion is different or you may like to add any more points in them.

Thursday, February 2, 2012

Smoke Testing and Sanity Testing


Smoke Testing
In Smoke testing a set of test cases are executed on every new build to verify that build is testable before test team accepts it for further testing. The test cases selected for smoke testing are the one which are of important for the build in test which is released. If any major functionality fails under smoke testing, the testing team rejects the build and conducts no further testing. Focus of Smoke testing should be on stability of the build released. In smoke testing mostly all features under test are tested, but not in much details.

Smoke Testing is also known as Build Verification Testing (BVT) or Build Acceptance Testing (BAT).
Why we perform smoke testing?
                The advantage of smoke testing is it saves the efforts of a test team considerably. Normally smoke testing should not take more than 20-40 minutes.
What we do in smoke testing?
                In Smoke Testing important or identified test cases are executed and if smoke test fails, build is rejected and a new build is released after the bug is fixed.

Sanity Testing
In Sanity testing a set of important test cases for functionality in test are executed. The test cases selected for sanity testing are the one which are of important for a feature or two in test which is released. Sanity testing is a subset of regression testing. Focuses of Sanity testing are only one or feature in build released where some changes are made.
Why we perform smoke testing?
                In Sanity testing we test only the few features which are released our focus is on the fixed issue and their affected area.
What we do in smoke testing?
                In Sanity testing a set of important test cases for functionality in test are executed. The tester should focus on the fixed issues and the components linked or affected due to the fixes.

Note: There are different process and methodologies followed in various organizations. The above content is as per my experience in industry so far.
 
Please feel free to write comments if you like my post or else if your opinion is different or you may like to add any more points in them.