terça-feira, 28 de outubro de 2014

Exploratory Testing - Introduction

Abstract

What comes to your mind when your heard the word “exploratory testing”?
Some can say that this is a way of test software in a short period of time, others may think that this is a friendly way to run tests, once that it do not follow a formal documentation, or even there are some that might think that this is just a “walk through” on the software functionalities and then assure the product quality.
Besides that, there are other questions related, such as: How can I apply Exploratory Testing on my software? Who should run this tests ? Exploratory Testing really assure the quality of the product ?  How can I report the results ?
This speech has as objective clarify this and other questions related to exploratory testing as well as present some case studies where exploratory testing were applied in real projects with different objectives and software’s.

Introduction

Not different than others aspect, exploratory testing is one more thing that is not strictly defined yet. That’s why I am writing it, to explain the suitable concept about exploratory testing and help you to understand; although this can also been improved and changed further. =)
Some managers tend to not trust on exploratory method due to lack of formal documentation and in other hand, there are some managers that think the “poking around” on application is a exploratory method giving enough tests to guarantee product’s quality; Actually it is neither one nor the other, exploratory tests is just different way to executing tests but it doesn’t means that it is a messy, it is just different way to find bugs and it is a pretty effective method to do it.
At first we have to realize that “exploratory” is very embracing word and it is also applied on technical side; It means that you can use “exploratory” way on performing tests like ad hoc or other one, you are really “exploring” the software and you are able to call it as a exploratory testing, but you can’t say that exploratory testing are ad hoc tests because they are completely different. What I am saying is: the ad hoc tests are kind of exploratory tests but exploratory testing are not ad hoc tests. It will be clear on further.
There also a formal technique to perform exploratory testing created by James Bach, when you can document and get the steps traceability, it is Session Based Testing.
This work explains what is exploratory testing, the difference among ET and Ad hoc, some techniques to perform ET, positive & negative points as well as some case study where has been applied exploratory tests using the same techniques detailed here.

Exploratory tests definitionS

I prepared some phrases found on some books/links to define exploratory tests:

Ø  “What’s the big deal? Exploratory testing is random pounding on the keys.  Nothing to it. My toddler does it every day.”[1]

Ø  … “Oh, Exploratory Testing,” said one of the developers, “that’s where the tester does a bunch of wacky, random stuff, right?” … [2]

Ø  Exploratory, or ad hoc testing, can be an especially useful testing strategy… [3]

Ø  "Exploratory testing is an interactive process of concurrent product exploration, test design and test execution.” “To the extent that the next test we do is influenced by the result of the last test we did, we are doing exploratory testing.” James Bach, Satisfice (2001)


It is just to show up that different literature defines exploratory tests in a different concepts, people think different and defined their own perspective regarding topic. I am not trying to dictate the right concept, I am just telling you the most suitable concept to define exploratory test allowing for “exploratory” is pretty embracing word. 



... to be continued in next posts...

quinta-feira, 23 de outubro de 2014

How software testing fits the cloud computing aspects?

Cloud computing is still an IT industry hot topic and has been gaining space and importance; Meanwhile, cloud testing remains unknown even for testing professionals around the world. It happens due to not only the limited documentation and references, but also because many companies already have a testing structure very well defined and does not have any application or product in the cloud. As mentioned before, much has been said about cloud computing, at this moment a question arises: How software testing fits the cloud computing aspects?
Let’s check below.

Cloud computing
Firstly we need to understand what cloud computing is.
In a few words cloud computing is a service to everything you want from IT industry. It means, store personal files, photos, documents and so on, where all files may be accessed anywhere and anytime with no software installation required.
Cloud computing is more than this simple example, which reflects your life as a user of cloud computing. The same idea is suitable to IT industry in totality. In a B2B (business-to-business) approach, it is possible use cloud service for an infrastructure, platform, software etc... In other words, everything-as-a-service (XaaS): infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS) and others.
A cloud computing advice would be: do not waste money in things that are not your business. In IaaS for example, it is not necessary to take servers inside the companies, they might rent as a service to fit infrastructure according to the business. Think about an online company that sells shoes; their business is to sell shoes, not to control technology for selling online, this is a typically scenario that consumes in a great way a cloud computing services.
The main idea of cloud computing is cost reduction and new opportunity.

Cloud testing
There is a subtle difference between testing in the cloud and testing cloud services. Testing applications that are in the cloud is a challenge on finding a test strategy to perform tests in this new computing platform; this approach will not been attended in this article. The focus here is present a cloud testing as a services that fits to software’s which are located in the cloud or not.
Cloud testing is a new way to manage your tests where companies offer testing as a service:
-          For Outsourcing: when another company implements your tests. The difference from traditional outsourcing remains on the fact that you get complete access on your repository to execute, get results or metrics and so on. Your pool of tests will be available to been managed anytime and anywhere.
-          For consuming infrastructure: when you manage your tests, to implement tests and to execute them. In this case, your repository is also available to been managed anytime and anywhere without demanding internal infrastructure. In additional you get access to several resources such as browsers (versions/platform), mobile (models/versions). This might been used for both automation and manual tests.
Benefits of cloud testing
The focus is cost reduction by consuming resources on demand. It means only pay for what really use. Some cloud testing providers offer cloud testing by hours per month where you get access to all platforms, devices and whatever the provider offer according to the contracted hours beyond offer follow-up of test creation and execution in a real time.
Another point is the security, in this case your company chooses for a dedicated storage in providers and off course, pay for it. This is seasonable for under development applications that are not in market yet or in case of some business strategy.
The great advantage on consuming cloud testing service, beyond price, is ease of access and virtualization environments without taking dedicated servers in house, making it simple, for developers and testers.

Conclusion

Your application does not need to be in the cloud to been tested in the cloud. This is a new way to test software in different approaches, such as, automation, manual, unit, black box, grey box.  To achieve a quality of software it does not matter where your software is going to be tested; the most important is apply best practices in software testing area. Cloud testing just makes life easier for tester’s professionals since it offers a several platforms and environment to test your application for a low cost.  The strategy to optimize cloud-testing services remains in the hands of the best professionals.

References
www.informationweek.com/ blog/229206200