Tuesday 3 June 2014

SOFTWARE TESTING USING CLOUD

Testing is an integral part of the software development life cycle and no product can be released to the market without testing it efficiently. Organizations often face various challenges like budget, cost for test, geographical distribution of users, deadlines, infrastructure etc. during the test phase. Cloud based testing could be one of the solution for these problems. In this blog I would like to explain how.

There has always been confusion between cloud testing and testing using cloud. Cloud testing is testing cloud applications but testing using cloud refer to tests which use the infrastructure on cloud for software testing.

Selecting the cloud service provider

Once the task of designing the test cases is completed, it is time to select a service provider. There are certain points that need to be kept in mind while choosing the service providers.
  •  The service provider’s configuration model
  •  The cost
  •   Service Level Agreement
  •   Disaster recovery Plan
  •  Security
Considering all the above points, you choose a service provider that best suits to your need and budget.


Setting up the infrastructure

After you decide on the service providers, it’s time you take a look at the infrastructure. There are certain crucial factors that need to be addressed when you decide on the cloud infrastructure.
  •   Reliability and availability
  •   Integration with the existing management tools
  •   Good User interfaces
  •   Scalability

Once you are sure you have everything in place it’s time you leverage the cloud servers and then start testing.

What kind of tests can be done on cloud?

Most of the conventional test activities can be done on cloud. But the most prominent one would be performance testing due to the high infrastructure it demands. Functional tests can be also be done on cloud especially automation and cross browser tests of web based applications. You can use the cloud services for acceptance testing and system integration testing as well due to the real time environment that it offers.

Challenges that need to be tackled

The lack of universal standards in terms of security, pricing etc. pose a big challenge for organizations when they chose cloud service providers. Also using the cloud services without proper knowledge and planning can sometimes incur additional costs, especially if you are opting for the pay per use policy.

Wrap Up


To summarize, testing using cloud can be beneficial to organizations if planned properly and executed carefully. Jumping to a big scale cloud based testing can be sometimes disastrous. Taking small steps first and scaling up would be the ideal process for the adoption of cloud based testing.

Tuesday 25 March 2014

Mind Maps and Test Activities

In my previous post, I have described about mind Map and its usefulness. In this article I intend to discuss about how we can make use of Mind Map in our test activities. We can leverage the benefits that the Mind Maps offer, in many of our test phases like test planning, Test design, Problem solving,  developing tour during exploratory testing etc.

Plan your test using Mind Map

Test Planning is a phase when you plan your entire test activities for a particular release or a particular year/period. This is usually a large document in black and white. The Mind maps and its visual appearance can be put to use here. The whole planning activities can be depicted or drawn in a single sheet which increases the legibility of the entire document over the conventional approach.

Test design using Mind Map

The advantage of designing tests using mind maps is that the entire feature/functionality that has to be tested can be represented visually thereby giving insight into the various interconnections and hence giving rise to more test ideas.

Mind Map aids Problem Solving

Trouble shooting and problem solving have always been one of the major activities during the test lifecycle. One always does a brain storming session or discussions to analyze a given problem and then find a solution for it. In a conventional approach the brainstorming sessions and the results derived out of it are not structured and hence difficult to document. If you use a mind map during this process, you can structure out the ideas that come from the discussion even without losing the essence of brainstorming process. This document can be used for reference in the future also.

Gaining insight on complex subjects

Understanding and testing integrated scenarios and complex subjects are always a challenge especially during integration testing. Depict them using Mind map – give them a visual feel – and make your testing easy. It goes beyond saying that you can understand things more easily in pictorial form than in writing. Such mind map documents can be created for KT reference also.

Develop tours during exploratory testing from Mind Maps

Exploratory tests are talk of the town now. We understand the scenario and figure out which tour suits the best for it. If you have a Mind Map in place for a particular scenario, it would be easy for you to find out which is the best tour you can use for it.

To make it practical let me put all what I have said in a Mind map so that you can see for yourself.

Mind_map_for_testing

Tuesday 18 March 2014

Mind Maps – An Overview

What is Mind Map?

The wiki says “A mind map is a diagram used to visually outline information”. This technique was developed by Tony Buzan in late 60’s. Mind Maps generally have a central node from which various branches radiate. It facilitates natural thinking in a powerful graphical way. Mind map uses lines symbols, words, colors and images to depict ideas.
Mind Map was developed, after so much of research done on the working of our brain and its ability to grasp things. It was basically developed from the concept of radiant thinking. After the origin of Mind Maps various scientific researches confirmed its validity as a brain compatible thinking method. Tony Buzan argues that 'traditional' outlines require that the reader scans the information from left to right and top to bottom, whilst the brain's natural preference is to scan the entire page in a non-linear fashion.

How is it beneficial?

The great advantage of a Mind Map is that it literally "maps" the way your brain sees and creates connections. As Mind Maps are more visual and depicts associations with images and keywords they are much easier to recall and also understand. It helps us to see the whole picture – A bird’s eye view- thereby making it easier to understand the connections and links.
It works well during brainstorming, as it helps people associate the thoughts generated appropriately. Moreover using a Mind Map we can analyze these thoughts more effectively.

How to create Mind Map?

A mind map is often created around a single word or text, placed in the center, to which associated ideas, words and concepts are added. Major categories radiate from a central node, and lesser categories are sub-branches of larger branches. You can create Mind Map in plain white paper/whiteboard and some color pencils.
There are also many software tools available for creating Mind Maps. You can use those tools to create your Mind Map and share it with others as well as store it for future reference. Some tools available are blumind, FreeMind etc.

Some tips for creating Mind Maps

  • *      Use Images and symbols
  • *      Use Colors
  • *      Use single words instead of long sentences
  • *      Uses curved lines and make it colorful
  • *      Use Picture for the central node








In a Nutshell

As briefly overviewed Mind Maps are an excellent tool for learning and organizing ideas. They can be used for many activities like any design process, brainstorming, problem solving etc. The key point is that it is easy to learn new topics and easy to connect distant ideas using Mind maps.

In my next post I will share my thoughts on how we can make use of Mind Map for our test activities.
Meanwhile you can learn more about Mind Maps from the below links:


Monday 17 February 2014

Is expected result a must for every test?


Is expected result a must for every test?


The inspiration for me to write this is an interesting discussion that I came across in one of the forums. The topic of the debate was – whether every test needs to have an expected result.

The moment I glanced the topic I was very sure about the answer to it – YES every test needs an expected result. Without any expectation any tests were useless. I penned down my feelings and waited for other opinions. Though most of them voiced the same feeling as mine, there were a few who thought differently. Some of non-functional testers did not need an expectation to complete their tests at first. Some of them even asked me whether you had any problems because you had an expected result for your test case.
Now after some days of thinking over the topic I still feel that a test case needs to have an expected result as majority of my fellow testers felt.

However, in some cases, having a strict expected result can narrow down your thought process. In such cases we can write a test case by providing a very generic expected result giving enough space for the testers to ponder and play around. Also if you are doing an exploratory testing may be you would get test cases without any expected results. But even there, you would expect some results based on your previous experience. In some kind of testing especially performance tests, the expected result evolve over time.

You can view the full discussion thread here. And maybe think over the topic and can pen down what you feel about it.

Monday 13 January 2014

RBT - A better option for regression testing?

RBT - A better option for regression testing?

Is the effectiveness of your regression testing experiencing the “law of diminishing returns”? Is the business value of your testing being questioned? These are most likely to occur over a period of time, as the regression test case effectiveness will decrease over time and this would result in regression defect leakages. It is here where Risk based testing gains its importance. Risk based testing is basically a test on projects based on risks or is in other words it is a  type of software testing that prioritizes the tests of features and functions based on the risk of their failure.

Why RBT?
To analyze this we first need to understand what the drawbacks of traditional regression testing are. The most common drawback seen is that the regression test suite is built by accumulating test cases from several releases. And the execution of this test suite depends on factors like time, test environment and test data. The result being that the test cases are not prioritized based on business criticality and that the requirements are not updated after every release. Also, it is common that the impact of release specific changes are not assessed and also that there are no regression specific test environment and test data strategies. Risk based testing helps address some of these issues like, prioritization of test cases, impact assessment, eliminating non-productive test cases etc.

How to adopt RBT?
Most of us would be, knowingly or unknowingly, using risk based testing during our test phases, but without proper risk assessment. This can happen mainly because of the lack of business domain knowledge or the increasing size/complexity of the application under test.
The first step we need to take is to identify what is critical. Next you have to calculate the risk factor. Then categorize and prioritize based on the risk factor. Some of the things to be kept in mind while calculating the risk factor are complex areas, changed areas, Areas with many defects before, History of prior use etc.
One basic formula for calculating the risk is:                                                                                                                
Risk = (probability of failure) * (Cost of failure)
And based on this calculated risk, prioritize your test cases so that you execute only the most relevant ones.

Conclusion
Day by day, the complexity of application is increasing, thereby demanding a better regression testing strategy. Risk Based testing is definitely one of the best strategies that testers can look into here. This definitely saves your time and reveals the most ‘risky bugs’!!!

Thursday 2 January 2014

An exploration into Exploratory Testing

An exploration into Exploratory Testing


To explain something that everybody knows is one of the hardest things to do. Same is the case with exploratory testing. Exploratory testing is nothing but testing the software without any formal plans or schedules. And hence this is most useful when we have very short time to test the application.

Exploratory testing is just like a tourist exploring any place. And you would agree to me in that all the tourists (business tourist, medical tourist, cultural tourist) will explore their places of interest in different manners. Same is the case with exploratory testing. The exploration you do depends on the type of application you test. Some of the tours in exploratory testing are so simple that you would have been doing it all these while. Tours are nothing but patterns or strategies that you follow during your test. Each tester would have a technique to find out which the most important tests are and all skilled testers would know, which are the ways to test, so that most number of hidden bugs can be uncovered. If analyzed carefully these would follow some pattern. These patterns are nothing but tours.

These tours have been studies carefully by experts and have been classified and documented.
Some tours in exploratory testing:

  •   Antisocial tours – Doing things that should not be done
  •   Supermodel tour –Is the application under test fit to be a “super” model ?
  •  Intellectual tour –ask hard questions 


There are many more tours that can aid you in exploratory testing apart from the ones listed above.

So depending of the application under test and the type of testing that you are doing, you can decide or choose on the tours that you would like to follow. For e.g. you are performing a usability test of a web application, then one of the best tour you could use is the supermodel tour.


So the whole idea of practicing exploratory testing is that, you explore you application in a structured way (rather that ad-hoc) and uncover the most important bugs.