May 15, 2012

Cloud Testing: How to Test on the Cloud?



Unless you've been living under a rock you must already be knowing that 'Cloud Computing' has been making a lot of buzz over past couple of years -- whether it your peer meeting, a client interview, a demo POC session with a prospect, the recent Red Hat Enterprise Virtualization Online Event on January 18, 2012 -- the talk about cloud is everywhere.

And why wouldn't it be? After all, if industry analysts and virtualization experts are to be believed then cloud based computing and business solutions are going to be the NEXT BIG thing of this decade. So I guess it is only natural if you find yourself to be asking yourself questions like 'what is cloud testing?', 'how to test on cloud?', 'how can we use cloud to better our testing?', 'how does cloud impact how we used to test before?' etc. However, since all these queries pose different questions, the answers to them would be unique. For starters, if you are looking for cloud testing, it simply means a testing environment that utilizes cloud infrastructure for performing software testing.


How to leverage Cloud to Transform Software Testing?

If you are someone who heavily use tools while testing then IBM (IBM Cloud) and Hewlett-Packard have already jumped into the market for software testing in the cloud. Thankfully, if done smartly, cloud based computing can prove to be a great valueaddition for both software development and testing. The reason is simple -- the very nature of a cloud based infrastructure allows for great team collaboration. As an added advantage, cloud based testing (as well as programming) environments are easy to setup (on-demand). In today's tight budgeted IT world, this can be a much bigger advantage than it appears at first. It is no secret that IT managers are operating under a very tight budgetary constraint and when it comes to testing phase, the budget is even smaller.

Traditional approaches to setting up a test environment involves high cost to setup multiple servers with various OS, hardware configuration, browser versions etc. And if you are going to simulate user activity from different geographic locations you will have to setup test servers with localized regional language OS, which in turn can add up to the cost. But using cloud based infrastructure, the team wouldn't have to setup expensive physical servers -- rather, setting up new testing environment will be fast and efficient and VMs (virtual machines) and test servers can be launched and decommissioned as needed.

On the other hand, as a tester you might also be required to one of those ever emerging cloud based SaaS applications that aim to cater to various large and small customer base, on-demand. If you are testing such a cloud based application then your challenges are double-fold. Because, testing all the layers - from your application to the cloud service provider - is something that as a tester you will have to become efficient in.

As a closing note, if you are a tester and if you are intrigued by all these buzz surrounding cloud testing, then here are 2 main reasons why you might consider trying it out -- Cloud based software testing infrastructure greatly helps in reducing capital expenditure and these testing setups are highly scalable , thus allowing your team to expand or decommission your test servers on-demand, as needed.

Share your experience with me and other readers by leaving your comment below


Busting 5 Software Testing Myths


Software Testing is a field, full of false beliefs, myths and misconceptions. You can find many misconceptions about software testing and tester as a whole. These misconceptions are predominant even among testers too. But situation becomes more dangerous when other stakeholders like the management and the client also get infected by these misconceptions. That can land a tester in serious trouble. I have come across many such misconceptions in my career and will try to list out few of them:

1. Testers are ‘negative thinkers’ and they ‘complain’ a lot – I don’t know whether testers are negative or positive thinkers, but they are no doubt some of the best thinkers. If you run out of ideas at any point, try to consult a tester. Chances are more, that you will get some wonderful ideas from him. And about complaining a lot, testers don’t complain. Rather they introduce you to the reality! They offer evidence and show how things in the software don’t work!

2. Testers like to break software – Testers don’t find any pleasure to break things. Rather the software is already broken and the tester only finds it out. Testers don’t like breaking software, rather they like in dispersing illusions that the software works properly. Testers try to free the stakeholders of the project from false beliefs. Testers are the people who introduce you to the realities.

3. Testers act as guardian of Quality – Testers are not quality police. Quality is something which is built into software. Since, testers don’t build software, how can they assure quality of the software? Testers can only provide quality related information to the management. Testers are service providers not quality guardians. Moreover, Quality can not be assured by testing. As Cem Kaner says, “Whatever is QA – that is
not testing”. So concentrate on the job which you are best doing at, i.e. testing. Leave the job of Quality Assurance to your management.

4. Exhaustive testing can make software Bug Free – Let me tell you, there is no such thing like exhaustive testing! Simply because, the definition of exhaustive can vary from context to context. Any way, nobody can make a software bug free; even if he tests it for his entire life! Not even God. A tester’s job is to show the possible ways in which the software doesn’t work. But there is no such way to guarantee bug free
software. Or to tell that the software has been 'completely' tested! Think of Microsoft, where the tester developer ratio is 1:1. Still we see Microsoft Products being shipped with numerous bugs, security holes, vulnerability issues etc. 
Think of NASA, where the tester developer ratio is a whooping 5:1. Still disasters like Columbia could happen. Testers can find bugs in the software, but can’t make it 100% bug free. This is the truth and we have to live with it.

5. Testers and developers should not be friends – This is the most dangerous misconception, prominent in software industry. Even, I have seen management encouraging such attitudes among the employees. But this may do more harm than good and result in a dangerous situation. Rather, testers can get some valuable project related information from their developers. If they are friendly, then they can approach for some wonderful test ideas from the developers. Even the testers can get some important clues that can help them in designing powerful test cases. Remember, bugs are introduced by the developers. So they are the best person to know the possible ways to find them. Got any clue! :)

Share your experience with me and other readers by leaving your comment below

May 11, 2012

THE SIMPLICITY OF COMPLEXITY


One of the experiences I share with a lot of people in this modern world is that I forget phone numbers. I never used to. The problem is that my mobile phone remembers them for me. So, phone numbers no longer stick in my own head. If I want to call a colleague, I first look for my phone. If I can’t find my phone, I don’t make the call.
Another way of looking at this is that my life has been simplified in some ways by my mobile phone, and in some ways it has been made more complicated. I would argue that it was simpler for me when I was forced to memorize phone numbers. It was simpler in that my use of many useful phone numbers was completely independent of external equipment.
Any tool that helps me also costs something. Any tool, agent, or organization that abstracts away a detail may also takes away a resource that I might sometimes need, and may atrophy if not used on a regular basis.

Test Tools come at a Cost– Even if they are Free

This weekend, I attended the 5th Austin Workshop on Test Automation. This is a group of test automation people who are sharing information about test tools– specifically, open source test tools. It’s wonderful. I’m learning a lot about free stuff that might help me.
But I notice a pattern that concerns me: an apparent assumption by some of my helpful tool developer friends that a tool of theirs that handles something for me (so that I don’t have to do it myself) is obviously better than not having that tool.
So, let’s consider what is offered when someone offers me a tool that solves a problem that crops up in the course of doing a task:

  • Some capability I may not already have.
  • Possibly a new set of abstractions that help me think better about my task.
  • Possibly a higher standard of “good enough” quality in my task that I can attain because of the new capability and abstractions.

But what is also offered is this:

  • Problems in that tool.
  • New problems due to how the tool changes my task.
  • New problems due to how the tool interacts with my technological or social environment.
  • One more thing to install on all the platforms I use.
  • The necessity of paying the operating costs of the tool to the extent I choose to use it.
  • The necessity investing time to learn the tool if I choose to use it (and to keep up with that learning).
  • The necessity of investing effort in using the tool (creating tool specific artefacts, for instance) that might not pay off as well as an alternative.
  • Having invested effort, the possibility of losing that investment when the tool becomes obsolete.
  • Avoidance of the learning and mastery of details that I might get by solving the problem myself.
  • A relationship with one more thing over which I have limited influence; and a potentially weaker relationship with something else that I know today.
  • Possible dependence on the owner of the tool to keep it current.
  • Possible legal entanglements from using the tool.
  • A sense of obligation to the provider of the tool.

I find it useful to explore tools. I want to learn enough to hold in my mind a useful index of possible solutions. And of course, I use many test tools, small and large. But I’m wary of claims that a new tool will make my life simpler. I appreciate certain simplicity in the complexity of my world.

Share your experience with me and other readers by leaving your comment below