Saturday, 14 February 2015

Interoperability Testing(IOT)

Interoperability Testing:

This is one type of Manual Testing type. In normal system testing we will test the functionalities of the product against one device/OS version or may be more.

For example in case of mobile application testing on Android platform :



We will perform the mobile application testing on any of the Android devices/OS version or may be more.So Testing may be performed on Android device from Samsung vendor and on particular version Android 4.4.

In case of Interoperability testing we must ensure that the application is working good in all of the Android versions and the vendors(These details may be sometimes depend on the input provided by client.

At sometimes we may face the issues that might be observed on some Android devices only and on other Android devices it will be working fine. So to uncover these issues we need to perform the Interoperability Testing.

The final test summary report should consists of the all passed/failed cases against the all Android devices that need to be tested. Interoperability testing can be performed along with System Testing.
In some companies there will be different teams for both System and Interoperability Testing. Where as some times same testing team might be performed by one team only.

As per customer point of view this testing is very important as we cannot control which Android/OS version the customer will work. If the interoperability testing is not performed then the issues will be found from the users side which will effect the client business.











Saturday, 7 February 2015

White Box Testing types

White Box Testing:

This is a process of validating internal components or structures. So one must be having good knowledge on internal components or structure of a System.


We can divide white box testing in to two types called,

1.Static Testing.

2.Dynamic Testing.


1.Static Testing:

Testing performed without executing the source code.


2.Dynamic Testing:

Testing performed by executing the source code.


Static Testing types will be covered in next articles.

Under Dynamic Testing mostly 3 types of testing was performed.



1.Statement Coverage.

2.Branch Coverage.

3.Path Coverage.


1.Statement Coverage:

A Statement is a line of code which get executed after compilation. This method is to find whether all the statements in source code are executed at least once.

Example:

int A;
int B;
int C;

C=A+B

if(C>70)
print "True"

So how many test cases are required to test verify all the statements in the above code get executed or not.?

1 Test case is enough right?

Lets see how it is...

Suppose consider we gave input 'A' and 'B' as 40 and 50 then the value of 'C' becomes 90.

So the condition (90>70) becomes True and it will print "True" at output screen.

Is the above Test case is enough to cover all the conditions?..

Absolutely not!!!

Let's consider if we gave the input as 10 and 20 then the value of 'C' becomes 30 the condition will fail and the print statement will not get executed. In that case not all statements get executed. This method cannot cover the all the possible scenarios.




 

Sunday, 1 February 2015

Manual Vs Automation Testing


As we should not compare both Manual and Automation each type has its own Advantages & Disadvantages. Manual Testing is the base for Automation Testing.




Manual Testing:

It is a way of testing which is performed by humans. In this we will design the test cases or test scenarios based on Requirement specifications, And we will start executing the test cases.



Advantages:

1.The initial testing has to be performed in the manual way, Because the product will not be stable initially and we should not automate the product that is not stable.

2.We can think of different scenarios on the go while testing the product which we find more issues.

3.It will eliminate the use of Automation tools.

4.Useful for small projects.

5.No need of learning the tools.


Automation Testing:

It is the way of performing the testing by means of Automation tools. In this we will write the scripts which will direct the tools to perform testing.

Some Automation tools support Record and Play Option which is an easy process. In this we will start recording our testing process i.e how we are interacting with the application and it will be Played to replicate the action that we performed earlier.In this case it will automatically creates the script.



Advantages:

1.Takes less time.

2.Good for large projects.

3.More reliable.

4.Coverage is more.

5.Reduces the man power required.


Disadvantages:

1.One needs to learn the tool.

2.Scripting knowledge is required.

3.Costly.

4.Cannot perform until the product is stable.


Here are the some list of Automation Tools:

QTP

Selenium

Load Runner

J Meter etc.,



 

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.