Wednesday, April 27, 2011

Testing Types

There are different types testing done for different accation and  for diffrerent purpose .Broadly classifying the entire testing activities ,there are mainly two types
1.White box testing
2.Black box testing

Black box testing:

Functional Testing based on the requirements with no knowledge of internal program structure or data .Also know as closed box testing.

Eg - All testing types done in system testing level by testers are black box testing .

Sanity testing ,Regression testing , Alpha testing ,Beeta testing etc.


White box testing:
 
White box testing is performed based on the knowledge of how the system is implemented. White box testing includes analyzing data flow, control flow, information flow, coding practices, and exception and error handling within the system, to test the intended and unintended software behavior. White box testing can be performed to validate whether code implementation follows intended design, to validate implemented security functionality, and to uncover exploitable vulnerabilities.
 
Also known as Open box testing ,Glass box testing
 
Eg-Unit testing


Gray box testing:

Grey box testing is the combination of black box and white box testing. Intention of this testing is to find out defects related to bad design or bad implementation of the system.

Eg-Integration testing

Sanity Testing:

The initial level of testing to make sure that basic/primary feature are there and working properly to start with the detailed level of testing.Sanity testing is done when the application is deployed into testing for the very first time .
Eg:     Open  URL and login ,navigate and check all menus and fields and buttons  are there in place.
          Try one or two very basic transactions.

Smoke Testing:

Smoke testing originated in the hardware testing practice of turning on a new piece of hardware for the first time and considering it a success if it does not catch fire and smoke. Done especially during hardware upgradations.

Functional Testing:
Its a blackbox testing done in a system testing level to verify the functionality of the pplication .Functionality testing is performed to verify that a software application performs and functions correctly according to design specifications.

Regression Testing:

Testing that is performed after making a functional improvement or repair to the program. Its purpose is to determine if the change has regressed other aspects of the program.
Testing conducted for the purpose of evaluating whether or not a change to the system  has introduced a new failure. Regression testing is often accomplished through the construction, execution and analysis of product and system tests.

Retesting :

Testing application with different inputs is normally known as retesting .Executing the same test case with different inputs .

Security Testing:

Testing how well system protects the unauthorised access , the primary aspects of security testing are authentication and authorisation

Authentication:First level of security testing to decide whether user is a valid user ,normally this can be done by testing the login requirement ie username and password.

Authorisation:This is next level of security where users are testing for their access rights ,this can be tested  by creating different users with different access rights and login and verify their access rights .

Installation Testing :

Installation is the first interaction of user with our product and it is very important to make sure that user do not have any trouble in installing the software.

Usually installers ask a series of questions and based on the response of the user, installation changes. It is always a good idea to create a Tree structure of all the options available to the user and cover all unique paths of installation if possible.


Person performing installation testing, should certainly have information on what to expect after installation is done. Tools to compare file system, registry. DLLs etc are very handy in making sure that installation is proper.

Most of the installers support the functionality of silent installation, this also need thorough testing. Main thing to look for here is the config file that it uses for installation. Any changes made in the config file should have proper effect on the installation.

If installation is dependent on some other components like database, server etc. test cases should be written specifically to address this.

Negative cases like insufficient memory, insufficient space, aborted installation should also be covered as part of installation testing. Test engineer should make sure that proper messages are given to the user and installation can continue after increasing memory, space etc.

Test engineer should be familiar with the installer technologies and if possible try to explore the defects or limitation of the installer itself.

Recovery Testing:

Recovery testing is the forced failure of the software in a variety of ways to verify that recovery is properly performed.Recovery testing is basically done in order to check how fast and better the application can recover against any type of crash or hardware failure etc.Type or extent of recovery is specified in the requirement specifications. It is basically testing how well a system recovers from crashes, hardware failures, or other catastrophic problems


Examples of recovery testing:
 

While an application is running, suddenly restart the computer, and afterwards check the validness of the application's data integrity.
While an application is receiving data from a network, unplug the connecting cable. After some time, plug the cable back in and analyze the application's ability to continue receiving data from the point at which the network connection disappeared.
Restart the system while a browser has a definite number of sessions. Afterwards, check that the browser is able to recover all of them.
Performance Testing:

Testing the application behaviour like reponse time under various load is known as performance testing.

Load Testing:

Testing application behaviour with defined load is known as load testing

Stress Testing:

Testing the application behaviour with behind the defined load is known as stress testing
Volume Testing :

Volume testing is done against the efficiency of the application. Huge amount of data is processed through the application (which is being tested) in order to check the extreme limitations of the system


Volume Testing, as its name implies, is testing that purposely subjects a system (both hardware and software) to a series of tests where the volume of data being processed is the subject of the test. Such systems can be transactions processing systems capturing real time sales or could be database updates and or data retrieval.

User Acceptance Testing:

  Formal tests (often performed by a customer) to determine whether or not a system has satisfied predetermined acceptance criteria. These tests are often used to enable the customer (either internal r external) to determine whether or not to accept a system.
Alpha Testing :

If the testers and real customers combinedly test the software in development site then it is called alpha testing.

Beta Testing :

If the testers and model customers combinedly test the software in customer site,then it is called beta
testing.

Adhoc Testing:

Testing done by testing team/non testing team as a end user without using any testplan and test cases  covering the very basic scenario. The tester tries to 'break' the system by randomly trying the system's functionality.

Monkey Testing :

Kind of adhoc testing done specially on game softwares to test the software ,here tester acts as a monkey and tries to break the software .

Localization Testing:

 

Testing software ability to adapt to local standards like local language , interface and voice etc.


     

No comments:

Post a Comment