From the category archives:

SaaS

Last week, I evaluated InfoStretch framework (ISFW) and Sauce on Demand (SOD) integration. My main concern was to test not only the integration, but also to verify parallel execution of test that is supported by ISFW and SOD. I found that it worked without any additional efforts along with all benefits of the framework including parallel execution and auto screenshots.  In this blog, I will provide details on integration and how to configure your test to run on SOD.

Preface:

Testing web applications often requires running tests against multiple browsers and in multiple environments. Using ISFW, one can run tests on a local or a remote physical machine. For that, you need to set server, port and browser in the properties file. You can configure to execute test in parallel with different options. Furthermore, you can configure your test to run in parallel on distributed servers in different environment as well. If you are using distributed servers, then the only requirement is that selenium server must be running on a remote machine. We have implemented this for some of our clients. ISFW supports overriding server, port and browser properties from configuration file by providing appropriate parameters at suite/test/package/class level. Thus, you can configure multiple server-browser combinations.

Sauce on demand Integration

To run test on cloud with ISFW, all you need to change is the server, port and browser info provided by sauce labs. You can run your test in one or more environments without having your own infrastructure. The most powerful feature of ISFW is that it provides parallel-ready test harness to connect tests to Sauce Labs’ service. As ISFW can run tests in parallel in multiple threads you can achieve parallelism with SOD as well. To use multiple environments/browsers you just need to override browser parameter in the configuration file.

One common issue is related to json string for browser, faced when you want to set browser from xml configuration file. Normally, value of the browser parameter in the configuration file is a string like *firefox, *iehta, etc. But, for SOD you need to provide json string which contains double quotes (“). So, it will not work as parameter value.To overcome this limitation you can provide any property, defined in properties file, as browser parameter value. It’s really helpful that ISFW supports browser parameter value as property!..

Benefits:

  • By using Sauce Labs’ service you don’t required to setup different environments.
  • With ISFW, no additional efforts are required to run your test using Sauce Labs’ service
  • Get all benefits of the IS framework, including parallel execution and auto screenshots.

Those who are interested getting details of the code and configuration used for evaluation, see Code: test-cases used for evaluation, Configuration 1 and Configuration 2. You might also be interested in reading an  informative blog on Selenium UI test automation with zero infrastructure cost authored by Akhil.

 

Code: test-cases used for evaluation.

package com.sample.automation.tests;
import
/**
* Demo on how to write quick tests.

* These test not uses {@link TestPage} implementation provided by FW.
* @author chirag
*/

public class Demo extends BaseTestCase {
@Test(description = “Sample test”)
public
void TCtest() throws Exception {
final
IsSelenium selenium = getSTB().getSelenium();
WaitService waitService =
new WaitService();
selenium.open(
“/”);

selenium.type(
“q”, “infostretch automation framework”);

selenium.click(
“btnG”);

selenium.click(
“link=glob:*Automation Framework”);
// selenium.waitForPageToLoad(“5000″);
waitService.waitForPageToLoad();

getSTB
().assertEquals(
“InfoStretch Test Automation Framework”,

selenium.getText(
“css=h1.entry-title”), “Heading”);

}

/**
* Data driven test that aspect csv data file. The file path must be set
* using property
<code>test.TCDataDriven.datafile</code>

*
@param query
*
@param linkloctoverify
*
@throws Exception
*/

@Test(description = “Sample data driven test from above one”, dataProvider = “csvDataProvider”, dataProviderClass = DataProviderUtil.class)

public void TCDataDriven(String query, String linkloctoverify) throws Exception {
final
IsSelenium selenium = getSTB().getSelenium();
selenium.open(
“/”);

selenium.type(
“q”, query);

selenium.click(
“btnG”);

getSTB
().verifyElementPresent(linkloctoverify,
“Search result”);

}

@Test(description = “using property from property file”)
public
void propTest() {

final IsSelenium selenium = getSTB().getSelenium();selenium.open(“/”);
selenium.type(props.getPropertyValue(“search.txt.loc”, “q”),”infostretch automation framework”);
selenium.click(
props.getPropertyValue(“search.submit.loc”, “btnG”));

selenium.click(
“link=glob:*Automation Framework”);

}

}

Data File

TCDataDriven is data driven test and the searchText.csv data file provided with following entries. So TCDataDriven will execute in separate threads for each data set, results in 3 tests running parallel.

Qmetry,css=a[href*=www.qmetry.com]Infostretch,css=a[href*=www.infostretch.com]

infostretch selenium,css=a[href*=blog.infostretch.com]

Configuration

Configuration 1:

Here are the settings to run test in windows environment with Firefox. With this configuration data driven test will get executed in parallel.

Properties:

selenium.server=ondemand.saucelabs.com
selenium.port=80
selenium.defaultBrowser=
{“username”: “cjayswal”,\
“access-key”
: “????????-????-????-????-????????????”,\
“os”
: “Windows 2003″,\
“browser”
: “firefox”,\
“browser-version”
: “3.6″,\
“name”
: “This is an example test”}

Configuration file:

<!DOCTYPE suite SYSTEM “http://testng.org/testng-1.0.dtd”>
<suite name=“Sample Test Automation” verbose=“0″ data-provider-thread-count=“10″>
<
test name=“Sample Test”>
<
packages>
<
package name=“com.sample.automation.tests”/>
</
packages>
</
test>

</
suite>

Configuration 2:

 

Configuration to run test in IE8, FF on Windows and FF on Linux. Attribute parallel=“tests” will execute each xml test in separate thread which in turn executes data driven test in parallel (check the time stamp in attached report).

Configuration file:

<!DOCTYPE suite SYSTEM “http://testng.org/testng-1.0.dtd”>
<suite name=“Sample Test Automation” verbose=“0″ parallel=“tests” data-provider-thread-count=“10″ >
<
test name=“Test on Win2003 FireFox3.6″ >
<
parameter name=“browser” value=“sauce.json.firefox” />
<packages>
<
package name=“com.sample.automation.tests”/>
</
packages>
</
test>
<test name=“Test on Win2003 IE8″>
<
parameter name=“browser” value=“sauce.json.iehta”/>

<
packages>
<
package name=“com.sample.automation.tests”/>
</
packages>
</
test>

<test name=“Test on Linux FireFox3.6″>
<
parameter name=“browser” value=“sauce.json.firefoxOnLinux”/>
<
packages>
<
package name=“com.sample.automation.tests”/>
</
packages>
</
test>

</suite>

Properties:

selenium.server=ondemand.saucelabs.comselenium.port=80
sauce.json.firefoxOnLinux=
{“username”: “cjayswal”,\
“access-key”
: “????????-????-????-????-????????????”,\
os
: Linux“,\
“browser”
: firefox“,\
“browser-version”
: “3.6″,\
“name”
: “Parallel run evaluation with InfoStretch fw“}

sauce.json.firefox={“username”: “cjayswal”,\
“access-key”
: “????????-????-????-????-????????????”,\
os
: “Windows 2003″,\
“browser”
: firefox“,\
“browser-version”
: “3.6″,\
“name”
: “Parallel runevaluationwithInfoStretchfw“}

sauce.json.iehta={“username”: “cjayswal”,\
“access-key”
: “????????-????-????-????-????????????”,\
os
: “Windows 2003″,\
“browser”
: iehta“,\
“browser-version”
: “8″,\
“name”
: “Parallelrun evaluation withInfoStretchfw“}

Screenshots:

Report: overview
Report: Test on Win2003 FireFox3.6

package com.sample.automation.tests;

import

/**

* Demo on how to write quick tests.

* These test not uses {@link TestPage} implementation provided by FW.

* You can also utilize IDE plug-in for InfoStrech framework.

*

* @author chirag

*/

publicclass Demo extends BaseTestCase {

@Test(description = “Sample test”)

publicvoid TCtest() throws Exception {

final IsSelenium selenium = getSTB().getSelenium();

WaitService waitService = new WaitService();

selenium.open(“/”);

selenium.type(“q”, “infostretch automation framework”);

selenium.click(“btnG”);

selenium.click(“link=glob:*Automation Framework”);

// selenium.waitForPageToLoad(“5000″);

waitService.waitForPageToLoad();

getSTB().assertEquals(“InfoStretch Test Automation Framework”,

selenium.getText(“css=h1.entry-title”), “Heading”);

}

/***

* Data driven test that aspect csv data file. The file path must be set

* using property <code>test.TCDataDriven.datafile</code>

*

* @param query

* @param linkloctoverify

* @throws Exception

*/

@Test(description = “Sample data driven test from above one”, dataProvider = “csvDataProvider”, dataProviderClass = DataProviderUtil.class)

publicvoid TCDataDriven(String query, String linkloctoverify) throws Exception {

final IsSelenium selenium = getSTB().getSelenium();

selenium.open(“/”);

selenium.type(“q”, query);

selenium.click(“btnG”);

getSTB().verifyElementPresent(linkloctoverify, “Search result”);

}

@Test(description = “using property from property file”)

publicvoid propTest() {

final IsSelenium selenium = getSTB().getSelenium();

selenium.open(“/”);

selenium.type(props.getPropertyValue(“search.txt.loc”, “q”),

“infostretch automation framework”);

selenium.click(props.getPropertyValue(“search.submit.loc”, “btnG”));

selenium.click(“link=glob:*Automation Framework”);

}

}

VN:F [1.9.10_1130]
Rating: 9.7/10 (7 votes cast)

  

{ 2 comments }

Introduction
In this era of Web 2.0 and SaaS, SOA is being more popular than ever in product developments. Thus most of the developments are related to implementing web services for exposing their core/business logic. As the web services are being popular, the testing demands are increasing for web services. Also, apart from one time testing, demand for regression testing of web services is increasing rapidly. To achieve this we have to automate the web service testing and that can be achieved with SOA testing tools like SOAPUI etc.
Apart from this the demand of regression does not stop here but many product managers are interested in running regression test for each and every build and test each and every nightly build. In this case, QA department have to run the web services test cases after each nightly build and for that we have to integrate and automate testing of nightly build using continuous integration tool like Hudson etc.
There are many tools that are available for SOA testing and continuous integration, but I will consider SOAPUI as SOA testing tool and Hudson as continuous integration tool here because both are very much used in market now a days. Following sections will describe advantages and disadvantages of SOAPUI , Hudson along with integration.

SOA testing tool – SOAPUI
SOAPUI is the open source web service testing tool, it supports testing of both SOAP and REST based web services with specific steps for SOAP request and REST request. The main thing of SOAPUI is it supports groovy script. SOAPUI is developed by eviware. Same eviware has developed SOAPUI PRO which is licensed version and it have some special features like data driven testing related steps like data source, data loop etc. Also, SOAPUI support is many types of assertions like script based assertions etc. Apart from this PRO version provides facility to create library for common functions. For this we have to put library in EXT folder of SOAPUI installation.

On technical side, SOAPUI is developed in JAVA so we can extend the soapui runner and can override the events of SOAPUI which is the good feature for event handling and related actions.And most important thing of SOAPUI is we can create our own type of formats for reports and also it supports JUnit style report which will make our integration very easy.

Apart from this Hudson supports for defining next job and previous job for any job. So we can run one job on completion of the job. Like we can run test job after build job.

Continuous integration tool – Hudson
Hudson have mostly all the features and functionality which should be present in any continuous integration tool. It included features like CVS and SVN integration, post-build and pre-build actions.
Also, Hudson supports JUnit style report and based on that displays the analysis of results with Age, increase or decrease of failures etc.

Integration of SOAPUI and Hudson
For integration, we have to consider following requirements and same will be used to decide integration style.
Requirements:

  1. SOAPUI should be run from Hudson
  2. Generate reports in JUnit style and incorporate with Hudson.
  3. Show logs in console output.
  4. Run any project with different global properties of SOAPUI
    1. SOAPUI should be run from Hudson

Hudson have good feature of execution of batch of commands of windows and Linux and SOAPUI is providing test runner of its own, we can run SOAPUI from Hudson easily. We can run it as same way as we can run soapui from command line. So it can be integrated easily and using Hudson we can view console output as well.
For this first create a new job in Hudson. This link will help you understanding the Hudson management; http://www.solitarygeek.com/java/hudson-ci-server-a-step-by-step-guide-part-i/
After creating a job, go to configure section of the job and “Add build step” to run shell script / batch file as below to run SOAPUI from Hudson .Add build step

    2. Generate reports in JUnit style and incorporate with Hudson

Hudson have inbuilt functionality of digesting JUnit style report and SOAPUI generates reports in JUnit style and Hudson generates good trending and result reports based on it. To enable JUnit style report in Hudson we have to select “Publish JUnit test result report” option and it will ask for JUnit style report xml file path. If you are creating different JUnit style report in different folder than give that path using wild cards and Hudson will check for all the JUnit style report and will show the consolidated results and trends. The path should be relative to WORKSPACE.JUnit style report

    3. Show logs in console output

As described in point-1, it is necessary to have log information handy for test and Hudson have special area to show console output.

    4. Run any project with different global properties of SOAPUI

To make our test dynamic, it is must that our tools supports run time property setup option and SOAPUI command line runner supports this via global properties. Because we can setup global properties values during run time and which we can use to achieve dynamic nature of our test framework and as we know Hudson support execution of tool through command line or shell scripting.
For example, I want to run SOA test daily after nightly build of my application. Here we are assuming that our SOAUI test project is available in SVN and application source is also available in SVN. So for this the steps for setting up job will be as below:

  1. Create one new job in Hudson for building the code.
  2. Configure SVN from which we have to download the latest source of application.
  3. Configure build steps like ant script or batch file or shell script.
  4. Configure schedule to run the job daily.
  5. Save job.
  6. Create one more new job in Hudson for testing the build which was setup in previous step.
  7. Configure SVN path to get latest test project from SVN.
  8. Configure the batch commands to invoke and run the soapui tests.
  9. Set build job as triggering job to start this test job.
  10. Set email address to whom we want to send the test report.
  11. Save the job.

Now the source build job will start at scheduled time and completion of build it will start the test job.

Conclusion
There are many options in Hudson and SOAPUI to achieve maximum flexibility of building and testing the jobs and apart from this we have integrated functional UI testing with Hudson.

VN:F [1.9.10_1130]
Rating: 10.0/10 (10 votes cast)

  

{ 2 comments }

Why is the mobile device important?

75% of U.S. workers are predicted to be true mobile sometime in 2011. 23% use mobile device more often than their laptops to access internet. This increased data usage has forced wireless companies like ATT to invest $10 bn in infrastructure. Even Jim Cramer’s hot picks for “mobile tsunami” include mobile tower operator companies. So in addition to regular browsing for news & social media, SaaS applications for official usage will be accessed from mobile more often.  The users are likely to expect a similar, relevant and consistent user experience when the SaaS applications are being accessed from the mobile devices. But they might be in for a rude shock.

There are many reasons behind this varied experience. Many SaaS applications have rich graphics, animations and dynamic content. These coupled with image resolutions, multitude of mobile browsers, slower internet speeds, poor designs and lack of context spoil the user experience and impact customer loyalty. Revenues for SaaS based ISVs are largely constituted by monthly/annual subscriptions and customer delight is the key to safeguard these revenues. Hence ensuring a consistent and relevant user experience should be high on priority lists of product managers and technology groups.

Characteristics of SaaS applications where mobile user experience is getting increasingly crucial

The keystones in identifying SaaS products where mobile experience needs to be controlled are – relevance, context and the usage. For example – applications like CRMs, ERPs, financial accounting, sales management, office information, transportation, logistics, manufacturing, field operations, etc. are very likely to be accessed via mobile devices when executives are on the move. Likely content to be accessed includes specific data, reports, pending tasks, approvals, alerts, etc.  From the usage perspective – the application while being accessed from a mobile device – should ensure that relevant data gets displayed first and the website/app works consistently across devices. Application users have higher satisfaction ratings when the user experience is cognizant of user expectations, content relevance and the context of usage.

Complexities involved - there are 100 new phones launched every quarter in the market. Each different smartphone accessing the application needs to be handled differently as there are multiple combinations of operating systems, browsers and screen resolution. Internet browsers being used in mobiles need to be tested as well for their capacity to manage rich features as well look and feel.  Now the SaaS executives are faced with few options about what to do next – create specific apps, a mobile specific website or a hybrid of two. Let’s explore.

 
The next steps
 
Step 1 – Follow the customer - There are commonly available tools which will tell you the browser/device being used to access your SaaS application. That will help to track the % of users using mobile devices to access the application. This indicates the current traffic and the pages being visited more often.  It is important that this analysis includes trending as poor user experience may have forced users to abandon mobile usage of the application.  This analysis provides snapshot of current application usage. Then the CEO/CTO/COO in conjunction with the product manager and engineering teams can decide if the mobile visitors are substantial enough to consider a dedicated mobile strategy. If they decide the mobile users experience needs to be taken care of – go ahead and move to step 5

 

Step 2  Lead the customer – To increase user stickiness – go ahead and invest in creating an “augmented user experience” where the user experience will be better as the graphics/animations display will be faster. It is important that usage based application redesign is also considered. The customers can always be given the choice if they want to access the full website or mobile site. The trend so far is towards building a device specific apps.

Step 3 – Depends upon your SaaS product’s features – If your application uses rich graphs/animations/heavy graphics/high user interaction – it is highly recommended that you consider step 5. Slower internet connectivity, inability to enter data while out of coverage areas & image resolution issues  will only reduce the customer satisfaction.

Step 4 –  Are location based services important – Do your customers use location based services from your product (like current location, area code, etc.)? If yes –go to step 5

 
Step 5 – The decision. It is important to choose amongst – creating a device specific app or creating a mobile specific website or the hybrid.
 
If the application access is highly concentrated towards a specific device – then invest in creating device specific apps. The disadvantage is – porting of this app across devices entails cost. If the applications focus highly on providing a rich, engaged and interactive user experience -  then building the app is highly recommended.  These apps reduce the data communication between the mobile device and web server. It can access your mobile applications like location, camera, calendar, appointments, etc. Also for scenarios where users are expected to be in the field like – auditors evaluating factories, sales members, etc. – users will be able to use many offline features with the app. Also many financial institutions may have device specific apps as an additional medium for mobile banking as it ensures a rich user experience.  If the environment can be controlled for an enterprise – (company X recommends the device Y for the entire workforce) – go with a device specific app. We have also noticed firms adopting the app way for – their trendiness, appeal and due to competitive pressure. We believe that while having an app makes you trendy, you should carefully weigh its usefulness and applicability to your mobile use cases before deciding a mobile app the solution to your problems.

 

If the users are not concentrated on a device type and application is not graphics heavy– but the usage context is very important  then opt for mobile specific website. For example – all the official travels for a company X are managed by mycompanytravel.com. Before the tickets are booked, the Operations manager needs to approve it. The mobile version of such a site should involve quick links for pending approvals, redirect approvals, request for more information, altering priority etc. Also financial institutions like banks will definitely have a mobile specific website as they focus on ubiquitous access. There are few limitations as well. Users are being “forced” to remember the URLs of your SaaS product. Also these websites do not access mobile applications like address book, location, etc.

Hybrid usage – a mix of app and browser combines the best of both worlds. They use browser interfaces for web server interactions and also allow access to mobile applications. It allows the user to do more when the graphics being used are very rich and there is lots of transactions with the user. Also it allows the user to continue with limited usage even if there is no signal within the office or remote locations. This allows you to leverage location based services as well.  This also allows you reuse tons of business logic and existing code for information processing.  Hybrids also support leveraging the specific features of devices with minimum rework. Consider a rich social media application which will need ubiquitous access and graphics heavy interface. So to minimize umpteen number of device specific apps, too frequent data access and leverage multiple widgets – hybrid is the way forward. 

 

The SaaS revolution has elevated the customers to the higher pedestalAs vendors’ revenues are backed by the tighter SLAs and renewals, user experience has to be managed and can’t be left to chance.  Many companies are now increasingly touting about their mobile channel during sales pitches and are using it as a differentiator.  So ignore this channel at your own peril !!.
 
InfosStretch can help evaluate your mobile experience at no cost and then work with you to strategize a mobile strategy that meets your requirements !
We have rich experience in creating apps across platforms, porting them across platforms, creating mobile specific websites and merging the best of both worlds – hybrids.
Our strategic relationships with key carriers and enterprises puts us in the unique position of understanding the complete lifecycle.
 
Write to saas@infostretch.com for more details
VN:F [1.9.10_1130]
Rating: 9.6/10 (5 votes cast)

  

{ 1 comment }

In this part I will go in some details regarding what are the current drawbacks of vendor softwares and how SaaS provides a better mechanism to overcome these issues

Issues with traditional vendor softwares:

 In traditional vendor license practice, it is difficult to guarantee the expected returns assurance on software usage as it comprises of many factors, like:

 One time purchase and use all-time: In traditional vendor license practice, the software once purchased may not be replaced easily and the software applications purchased with certain objective if not met cannot be returned to the vendor or changed because the software purchased is a “package software” (as-it-is ready to implement software). So the risk and loss is un-avoidable.

 Un-avoidable upgrades: A major irritating problem with the vendor licensed software application is the upgradation of the software which usually occurs periodically and needs to be done in order to meet the recent technological advancements. This is quite time consuming and cumbersome if needed to be done on multiple machines and at different locations repeatedly.

 Pay for new releases/ versions: The software launched today is the predecessor of its tomorrow’s successor. Thus, today’s software may lack in many features and functions with their tomorrow’s counterpart, which needs to be suppressed again by buying the new/ latest version of that software and replacing it completely which raises both the implementing and operational costs, hampering the budgets.

 No provision for features/ functions enhancement: The package softwares/ applications made are usually made either with specific standard requirements or with a single client’s requirements out of which some may match to any organizations business need or may not match at all. Thus, well publicized software may not be much useful to many of the potential consumers as packaged software application have less or no features/ functions enhancement options.

 Investment on infrastructure: Some major and crucial business applications need huge and high-end infrastructures (high power/ fast processing machines, large number of dedicated machines, some special hardware setup, etc.) which may require huge investments in order to meet the applications specified operational requirements. This may be another hurdle for small or midsize enterprises/ businesses to manage. Also, once the setup is made at a particular location it can’t be moved to or may not be accessed from another location.

 Benefits of SaaS:

 Contrarily, the SaaS platform provides much flexibility and relief in the context of availability, service and infrastructural requirements. For the SaaS model to be deployed in effect, the vendor (software producer) will need to evaluate the traditional application(s) and proceed in a disciplined way to meet/ cover all the major requirements. With proper and well planned process, any organization can migrate to the SaaS platform and reap its valuable benefits. Some of the major benefits of SaaS model are:

 World class solutions: SaaS gives business enterprises access to world class business solutions and the state-of-the-art services which many businesses may not be able to afford in due time. Also, the software available will always be latest and upgraded version, as the upgrades and advance functionalities are always provided to the existing consumers and physical upgrade is not required to be done by users.

 Benefits of shared services: As the SaaS model is based on a major principle of resource sharing it gives innumerous benefits to its user not only through the software applications usage but also through all-time availability of information and resources (latest) just a click away, probably from any part of the globe.

 Pay for subscription: SaaS is a subscription based service; consumers can use it as per their requirement and need. So, if in case the requirement for any software is only for 2 years the cost that needs to be paid is only for that particular period. When the subscription is over/ lapsed the software no more stands valid for the users. Same is not the case with traditional vendor license practice.

 Provision of customizing the features: Customers using services through SaaS platform have a greater provision and possibility to get the existing application customized (modified) with added features/ functionalities as per the requirements and business needs as and when required. This facility leads to a greater flexibility to users and an ideal to choose.

 Minimum investments required: When businesses use a SaaS model, companies do not need to invest in expensive infrastructure, update their hardware, spend money on hardware maintenance and train employees on how to use the new hardware and so on. Thus, overall expenditure is reduced to a great extent and also there are less chances of down-time and loss of productivity due to “down-time” which usually do not exist in SaaS.

 Secure and disaster proof: As SaaS is service-based, it is the sole responsibility of the service provider for security compliance and other related confidentiality parameters. Also, it is the service provider’s duty to provide its customers all the services uninterruptedly irrespective of any critical situations (e.g., any emergency, disaster, and long down-time).

 Anywhere availability and accessibility: As stated earlier that SaaS is delivery of software services over Internet, it can be made available anywhere anytime and accessible to any one as and when required (always uptime) giving much better flexibility to users.

 An example: A software development company (involved in complete application development) having its in-house testing team needs to manage its testing activities and seeks a good test management tool but at an affordable and reasonable costs. As the organizations scope of testing and its management is limited so buying a conventional dedicated test management tool will be tedious job because of the cost burden. Here comes a better solution to overcome the load of huge cost of the tool by choosing an on-demand, SaaS based test management tool to manage and operate all the testing activities; now-a-days various service providers in the market like QMETRY deliver acceptably fine services in this domain, which would surely help such organizations in managing their testing activities in effective and secured way. 

 SaaS due to its salient features (through cloud computing) has numerous features and advantages over the traditional licensed software applications and is one of the best solutions for the small and midsize business enterprises, also a vital choice for startup companies! Gradually, today various flavors of SaaS are evolving in different form like “infrastructure-as-a-service”, “Back/ storage-as-a-service” are name to few. SaaS is just not “Software-as a Service” but also “Smart service of (,) affordable applications (,) all-time available [anywhere] (,) securely”.

Resources:

VN:F [1.9.10_1130]
Rating: 6.7/10 (3 votes cast)

  

{ 2 comments }

SaaS Overview:

Software is now a vital part of many businesses, not just because software is used everywhere (or can be used anywhere) but also due to its unprecedented and valuable benefits and features. Hence, being software-enabled is not a need but has become a major business requirement in today’s competent world. But, softwares are not cheap enough and hence hinder organizations adopting it (under certain circumstances). According to Gartner, a global IT research firm, the annual cost to own and manage software applications can be up to four times the cost of the initial purchase. As a result, companies end up spending more than 75% of their total IT budget just on maintaining and running existing systems and software infrastructure (Timothy Chou, The End of Software, SAMS Publishing, 2005, page 6). Also, in recent weak economic condition the approach of using and implementing softwares has changed a lot and many organizations are avoiding non-essential expenses on various IT/ softwares services. Thus, to over come this situation Software-as-a-Service (SaaS) is one of the best options available for organizations to reduce costs.

“By 2011, early technology adopters will forgo capital expenditures and instead purchase 40 percent of their IT infrastructure as a service,” states Gartner Group. “Increased high-speed bandwidth makes it practical to locate infrastructure at other sites and still receive the same response times”. According to Merrill Lynch, by 2013, 12 percent of world software market will be Internet-based forms of SaaS and cloud computing.

Generally, SaaS is a method for delivering software applications to customers over the Internet (web) and is much efficient way of delivering it to the target customers. In recent years various business enterprises, organizations and other institutions are trying to find out reliable solutions in order to get suitable softwares as per their needs in a better way i.e., in an affordable way and which should also provide assured returns on the investments made. SaaS methodology would be a better option to overcome the issues with traditional vendor license practice or even while using open source. The concept behind SaaS is simple, in SaaS instead of software producer selling the software license (either individual or group) to the client and then client deploying and maintaining it in their premises; the software vendor (or service provider) hosts the application on its own datacenter computers and provides the (controlled) access to the system over the Internet on a subscription basis. Of course, subscription is a paid service but is comparatively cheaper than buying licensed softwares.

In the next part I will go into details about why SaaS is a better option when compared to traditional softwares (End of Part 1)

Resources:

VN:F [1.9.10_1130]
Rating: 7.5/10 (2 votes cast)

  

{ 1 comment }

CES 2010 – Thoughts for SaaS Products

 

CES is the mecca for all the gadget followers. I followed many of the launches/ideas/demos at the show and tried to spot the trends. And it was not easy to focus on the trends with all the glitz around 3D devices, touch screen monitors, tablets, nexus, etc.

 

I observed that the underlying thoughts behind many of these product were – simplicity, better user experience and collaborative features. Is there a common thread between trends at CES and SaaS products? I found a couple of interesting messages for SaaS products from CES 2010. Do share your inputs.

 

1. “Simplicity” in SaaS ? -  SaaS pricing is complex. Features/Customizations add complexity for QA teams. Security & Multi Tenancy bring in additional requirements.     Despite all these additional layers – the customer experience should be simple and they should not be burdened with the unnecessary details.
   
2.  Collaboration – Are the new features – making it easier to integrate and extract data from other applications
    Integration holds the key for increasing the “usability with data” and the products should not focus on generating all the contents by themselves.

 

3. How the user” uses” – At the CES, one company demonstrated a waterproof ebook cover as many ebook users shared that they wanted to take their ebooks to swimming pools and fishing trips. Similarly if SaaS users are on the move – they should build mobile apps around them.

 

4. The smart game changers – When all the comparison parameters are getting blurred for car buyers, one car company introduced very smart cabin tech interface. It was a huge diversion from the regular comparison parameters and only time will tell about its success. But it is a well directed effort towards adding competitive flanks.

 

For SaaS products – focus should be much more on building similar flanks around competencies for differentiation and the regular ones like service up time – are commoditized flanks.

 

VN:F [1.9.10_1130]
Rating: 9.0/10 (1 vote cast)

  

{ 0 comments }

SaaS (Software as a Service) delivers software over the Internet without the end users ever needing to install any software in premise, behind their own firewalls. On the surface doing software QA for a SaaS firm should be no different. After all, you are doing same old testing for an ISV (Independent Software Vendor), it is same old software, with a development life cycle, (well written, planned ☺ ) requirements, release plans, defects, triages, wrangling with the developers, resource crunches and so on; so what can be different?

There is a difference and it is significant. Worse, not knowing it, can impact the quality of your product and credibility to your customers. To understand it first lets see how SaaS is different (For a detailed account of how SaaS is different please read our “SaaS Operational Efficiency” white paper).

How is SaaS different?

  • SaaS is more of a service than a shrink-wrapped software
  • SaaS solution has more stringent performance and security implications
  • SaaS business model enforces an Agile methodology of software engineering
  • There are significant operational costs (infrastructure, software and deployment)
  • A new release (and its defects) is immediately available to your customers, with a very high risk of an error
  • Your customers have a lower risk, cost and impact to switch you and move to a different provider.

The above impacts SQA in more ways than what meets the eye. Following is a list of  key areas QA gets impacted:

  1. Agile Methodology: SaaS firms have so stringent time to market pressures that they are forced to adapt an Agile methodology. With a release happening every month or less, QA teams have to turbo charge their productivity, in order to ascertain good quality level.
  2. Performance and Scalability Requirements: SaaS firms deploy their software on their own hardware. Poor performance exponentially increases the operational costs and in worst situations becomes a death bed for the company. QA teams have to validate the principles of multi-tenancy and test each release for its scalability.
  3. Web Services and SOA: As SaaS software gets deployed behind its own firewall, for most enterprise applications, there are strong needs for data integration. Most SaaS products have a rich WS layer that enables them to integrate with third parties. This actually is a blessing in disguise as it provides an easy interface for QA to test the key business functionality through an easy to automate interface. QA teams however need to know how to best test the SOA platform.  Please read about some specific work we have done around SOA Testing here, here and here.
  4. Test Automation: I believe SaaS QA teams (or for that matter, any agile lifecycle) can not survive without significant level of automation. This includes (but is not limited to) good unit testing, GUI automation, functional tests of key application interfaces (such as your main controllers), SOA interfaces, performance etc.  Having a good framework that extends itself to meet ongoing automation needs is critical. We have blogged about automation here and here.
  5. Security: As a SaaS company you are taking ownership of safekeeping of critical customer data both morally and legally. Any error with security can shut your company down. As a QA team, you have to know and test for major web exploits and plug them.
  6. Release Automation: Just like test automation, any agile methodology can not survive without automated builds, releases and deployments. QA teams have to understand and implement continuous integration process that builds regularly and reports failures in an automated way.
  7. Test Environments and clean Deployments: While the SaaS model is a boon for customer support (they are no longer required to support the unforeseen mess weird combination  of OS, server and software environments in customer IT, they just support what is in their production); it is yet another pain for QA. How do you know what you are testing will work in production? QA needs to have very tight control over deployment scripts and deploy the software in the test environment. The test environment itself needs to replicate production environment closely including all the load-balancing and clustering infrastructure.
  8. Testing for SLAs: So what if the code functionally works and passes performance criteria? Does it meet your SLAs? How do you guarantee your software will not breach a functional, performance or uptime SLA in production? Again it is QA’s extended role to validate for conformance with SLAs.

QA Managers working for SaaS firms have to keep the above points in mind when creating a test strategy for their SaaS product.

VN:F [1.9.10_1130]
Rating: 10.0/10 (5 votes cast)

  

{ 2 comments }

SaaS is still the new kid on the block and the friendship between SaaS and Agile brings forward few interesting aspects. The most important aspect in applying the Agile Methodology in any given organization is – its impact on the team structure. More precisely the distribution of the team is a critical success factor in enabling the implemented Agile process to either be a success, or be a foul strategy implementation.

Advantages:

Team Restructure: Team Restructuring can be advantageous if the distribution of the team allows all the senior resources to be divided into smaller teams and are paired with junior resources to help them out. This gives higher responsibilities to the senior members and the junior members get a chance to be mentored closely.

Identifying leaders: Agile methodology especially in the SaaS environment will provide numerous opportunities for team members to demonstrate their strengths. This should be used by the senior management to groom the key members according their strengths and future aspirations.

Long Term Investment: Implementation of Agile Methodology by a company which is developing/testing a SaaS based application would need modifications over the span of time. Agile allows different teams to much more involved in the process leading to better awareness about product design and inter team dependencies

Challenges observed:
Meeting the Deadlines: Agile methodology claims that the time taken for Developing, deploying and Testing is cut down to almost half than what is available in the Traditional System. The developers and testers need to be cognizant about performance and security aspects and the added boundaries of timelines may add to the workload.

Delayed ROI: For the Top Executives, the top brass would want to see far reaching results in terms of impact and ROI for the new methodology to be implemented. Less ROI in the initial stages may deny the methodology of the executive support required to withstand initial roadblocks. SaaS model already has longer breakeven periods for providers and any further delays would be watched very closely.

VN:F [1.9.10_1130]
Rating: 10.0/10 (1 vote cast)

  

{ 2 comments }

To be successful, new and existing SaaS providers must understand the unique requirements needed to create a viable SaaS business model. There are several key areas that must be addressed that highlight the differences between product software businesses and SaaS providers.

Software product vendors typically acquire more customers and retain existing customers by launching new features in their software. The focus is clearly on gathering more new customers, since once a customer buys a license, the costs for the customer to switch to another vendor is high, so fewer customers will channel their efforts in the direction of switching. This is automatically reflected in the product vendor’s team structure as well – product development and engineering teams usually have more members than the customer support or IT operations groups to ensure that they are maintaining and enhancing strong product offers. Hence to sustain this different business model – a different organizational structure is needed.

Here also the SaaS business model is different. SaaS providers need more strength in their support teams to deliver high customer satisfaction and build customer loyalty. Monthly subscription charges, with lower initial investment and low switching costs for the customer, demand that these customers are highly content with the service and will remain loyal customers. To ensure that higher performance, system uptime, security requirements and business continuity needs are all met, a stronger operations team will be needed. Concurrently, the SaaS provider’s engineering team needs to be strong in order to focus on building new features to drive new revenue growth.

The executive management must be cognizant about supporting these organizational nuances for enabling success.

VN:D [1.9.10_1130]
Rating: 6.3/10 (3 votes cast)

  

{ 0 comments }