Thursday, June 3, 2010

A simple IDEA about Cloud Computing and SaaS

 

images SaaS can be defined as IT related services a client can get through internet by paying monthly subscription for the solution they are using. In SaaS, client needs not to pay the whole amount at once for the solution which they get. And client is not the owner of the application, because of that they need not worry about application maintenance and the software, hardware upgrades.

Cloud computing is a service that you get through internet for your IT needs by paying only as use it. It’s like an upgraded version of software as a service (SaaS).

In general cloud computing and SaaS are integration of following key points

  1. Virtualization.
  2. Utilize Computing.
  3. Pay for Service.

Virtualization.

In Virtualization application components are independent from the infrastructure. That means clients need not to use their own application severs, DB server or middleware components (Integration components) in the same infrastructure. Basically application severs DB server or middleware components can run pretty much from any on globe with out dependent from each other. Actually it runs in the cloud, a cloud that charges only as you use it.

Utility Computing

If we think from client user side, client need not spent money for their own mainframes, server computers, data security and for the utility software license. Also they need not to spent money for the Software maintenance staff. They only need to pay their monthly subscription for the software service providers.

Pay for Service

Client users only need to pay for service they get from their software service providers.They need not to pay for the whole solution and they need not to pay whole amount at once.

saas-into-the-clouds

For further understanding if get a common example to understand these concepts.

- Buying Licensed Software is like that buys your own car, by pay the whole amount of money whether you used it or not.

- Using SaaS is like leasing a car. Leasing company really owns the car and Client only needs to pay monthly fixed installments.

- Using cloud computing is like going some where from TAXI. Client only want to pay for distance they go. So it’s very economical for the clients because they only pay for the distance they travel. By the way it’s also economical for the TAXI owners because there may be many clients using same TAXI when they want.

This is my simple IDEAs that I have regarding on Cloud Computing and SaaS.

Tuesday, January 12, 2010

QA with Zero BUGS is possible?

I think as testers we should try to deliver a project with at least no bugs in live-environment, in other words there should not be customer identified bugs. As I believe there are some facts which help to minimize customer identified bug count. In most of the customer testing periods they are testing the scenarios which can happen in live-environment (There can be positive or negative test scenarios). So if we want to hunt down the bugs before they do, we should be customer-minded.
In my point of view there are three main reasons which help us for this kind of testing.
1. Expertise the Domain knowledge.
2. Some knowledge in Combination & Arrangements.
3. Some knowledge in Probability.



Expertise the domain knowledge.

Tester should have a deep knowledge of the domain because they are the people who keep the solution as customer expected. (How much a tester expertise the domain knowledge he can get that much of success in testing). Most of all, tester must know how the business happen in practically, then the tester can identify the scenarios which can happen in live-environment.


Combination & Arrangements
.

If tester knows the business logic well then he can list down all the possible combinations with in very short time period. Because of understanding about Combination & Arrangements, tester can list down most of the test scenarios and tester can prevent from testing the same scenario twice. This will be very efficient for tight time-lined projects.


Probability
.

After list down the possible testing combinations, tester can give a probability value to every testing scenario by considering the probability that gets in live-environment. And then tester can prioritize the test scenarios according to probability value. For an example suppose that there are two paths of submitting an order. According to business happened in real time, 7 users are following path1 (P1=0.7), 3 users are following path2 (P2=0.3). And assume that tester have 100minuts to test those two paths. By considering probability values I suggest it’s more effective if tester can give 70mins for testing path1 and 30mins for testing path2.


And also if test team can do parallel testing with above method I hope we can deliver projects with no customer identified bugs in live-environment.