Friday, 30 January 2015

Black Box Testing and its types

Black Box Testing:

In this type of testing we will check for the output of a given system by giving the set of input data(Valid/Invalid).



Key Points:

1.No knowledge required about the system internal components.
2.We can perform Black Box Testing by having the Domain Knowledge.
3.No coding required.


Types of Black Box Testing:

1.Boundary Value Analysis.
2.Error Guessing
3.Equivalence Partitioning.

1.Boundary Value Analysis:

In this we will Test the system by giving the boundary values as an input.



Suppose system will consider values from 0 to 100 then In boundary Value Analysis we will consider the below inputs.

1.Test the system by giving values 1 and  100.
2.Test the values by giving 0 and 99 as input.
3.Test the system by giving 2 and 101 as the input.

As we know the system may having the more issues at the boundary values.


2.Error Guessing:



This Testing is based on the experience gained in the previous projects. The Tester by experience can guess where to look for the issues.


3. Equivalence Partitioning:



In this type input is divided in to valid and invalid classes. Instead of testing the system for all values, We will do testing by considering the values from each class.





Wednesday, 28 January 2015

Software Testing types based on its coverage

Software Testing is divided in to types based on its coverage.

Based on the System knowledge

1.Black Box Testing:



This Testing includes validation of the output of a system for a certain input.It will not bother about the internal system architecture.

2.White Box Testing:



In this one should have the knowledge of the internal components of the system. The aim of this testing is to test the internal structures.

It is also called Clear box testing,Glass box testing etc.,


Based on the functionality

1.Functional Testing:



In this we will verify whether the system is working as per the requirements or not. The input for this is SRS(System Requirement Specification)

2.Non-Functional Testing:



Here instead of functionality we will try to validate whether the product performance is good under abnormal conditions also.

This may include Stress Test, Load Test, Volume Test etc.


Based on the product build changes

1.Sanity Testing:



This is the first type of testing performed when the build is released from Development team to Testing team. This is to verify whether all the basic functionality of the product is working good or not.

2.Regression Testing:



This testing is to ensure the changes/adding new functionality is not effecting the other functionality of the product.




Monday, 26 January 2015

Software Testing Levels:An Overview

In my last article we have seen the basics of Software Testing. Now lets go in to the detailed view of Software Testing levels.

We generally perform Testing at four levels.





1.Unit Testing.

2.Integration Testing

3.System Testing.

4.Acceptance Testing.


1.Unit Testing:



When the development team has completed any one module then Unit testing can be performed on that module to ensure that it is working fine. Unit Testing is performed by developers. This is the first level in any kind of testing. 


2.Integration Testing:



Once the module is working fine the development team will integrate that module with one or more modules. So now the module should work fine after integration, To ensure that Integration Testing is performed. Integration testing will also check the communication between two modules/units.


3.System Testing:




Once all the modules are integrated and the Integration testing was performed the product will undergo System Testing where the entire system will be tested as whole. System Testing may include both Functional and Non Functional Testing. 

Functional Testing means to check whether all the required functionality is working fine or not. Where as Non Functional Testing means to check the performance under different loads for example Performance Testing, Stress Test etc.


4.Acceptance Testing:


This Testing is performed mostly at client site. This will include Alpha and Beta Testing. This Testing is to ensure all the customer/Client requirements are fulfilled by the product. Beta Testing will not involve development team and it will be performed at client site.

This all about the Testing levels. 

Introduction to Software Testing & it's importance.


Introduction:

In today's world we are building more and more complex applications. Suppose if these products are released to market without proper testing i.e. without verifying customer or user requirements properly after the development stage there will be more chances for the product failure.




Suppose let us consider an example of mobile application. It has to satisfy UI(User Interface) and functional requirements of client and the end user. Here comes Testing to verify the product has satisfied the end user requirements or not.


The software testing was not performed at one shot. It will be divided in to certain stages.

Software testing levels:

1.Unit Testing.

   -Performed by Developers.
   
2.Integration Testing.

   -Performed by Testers.

3.System Testing.

   -Performed by Testers

4.Acceptance Testing.

   -Performed by Testers at client side.


We will discuss about these types in the coming Articles. Stay tune to this page for latest updates.