Home > Software Quality Tips > Software Testing > Preparing for testing applications in the cloud
Software Quality Tips:
EMAIL THIS
 TIPS & NEWSLETTERS TOPICS 

SOFTWARE TESTING

Preparing for testing applications in the cloud


John Scarpino
06.05.2009
Rating: -3.40- (out of 5)


Software quality news and advice
Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


Doing software testing in cloud environments offers economies and scalability possibilities that are intriguing to software development companies and departments. Interest is high because purveyors of "the cloud" promise to reduce software development and testing expenditures while maintaining or increasing the Quality of Service (QoS). Do those claims hold up? If so, how can software testers, in particular, prepare for this platform shift? That's what we'll explore in this tip.

You may be familiar with cloud computing, but let's just cover the basics just in case you aren't. Cloud computing is a new software service solution that holds an entire infrastructure and environment in one location, which is accessible to specified individuals via the Internet. Both hardware and software may be housed in a cloud environment. Predecessors to cloud computing include Software as a Service (SAAS), a service solution which is similar to cloud computing that allows users to access the software/hardware onsite or via an Internet connection; Service Oriented Architecture (SOA), which could also be accessed either onsite or offsite; and Application Service Providers (ASP), which hosts applications.

Being safe about cloud testing

Since cloud computing systems hold vast amounts of corporate information and can only be accessed through the Internet, the availability of the Internet and the reliability of its connection are two facets of cloud computing that users depend on the most. And, although the software and/or hardware infrastructure is harbored "safely" in a cloud computing environment, the network will not always be trustworthy.

Well, it's obvious that there are a number of things that can go wrong, such a weak telecommunications signal, a storm or an Internet provider going out of business. For these reasons, it is a good idea to prepare a backup plan for accessing the Internet. Think about purchasing a secondary connection, in addition to your primary one, that can be available when you need it most. You may even be able to configure the system to cutover or re-route to the secondary line if the primary line experiences too much traffic at one time. If you choose to do this, just be sure that your backup wire is not from the same provider as your primary connection.

Keep in mind that computers used in a cloud environment will never be 100 percent reliable; there will always be viruses and other glitches that may slow down the system. So, even with the best Internet connection, a robust computer that can handle high processor and memory speeds and has a large hard drive space is a must.

Cloud environments cannot be externally controlled by the companies using them, which means problems with quality are difficult to fix once the cloud is fully integrated with the corporate system.

In an ideal situation, a specific environment would be created for testing each application -- development, configuration management, training, etc. -- thereby helping to ease change, versioning, release management and identify quality assurance issues. Talk with your vendor to find out if replicated environments are offered as a part of the service. In most cases, though, such a luxury typically defeats the purpose of using cloud in the first place, as it is not very cost-effective.

It is in your best interest to work with the cloud service provider to construct a quality assurance "staging" area where all of the testing, configurations and setup are finalized prior to going live. You should test during this beginning phase until you're satisfied that you have the best cloud service solution to suit your needs.

Key best practices for cloud testing

When possible, test the cloud applications in a very similar, or the same, environment to the one in which it will be accessed when it goes live. The testing should scrutinize the application's performance, reliability, speed, security and functionality. Recently, the traditional functional testing, also known as regression testing, is being used more than any other kind to validate cloud; which is a one-pronged approach. To truly ensure an operable cloud environment, performance and reliability tests should take the front seat, during which probes can be used to capture statistical data and report on the consistency of the application.

The strength of cloud computing's security barrier for user-protection and corporate compliance is crucial, especially if your company will store sensitive information in the system. Formal security testing tools and even hacking techniques are some of the most effective methods for testing the security of a cloud environment. And, a disaster recovery test will help you confirm that the vendor is reliable and responsible when faced with an emergency.

A cloud computing test plan should also be created at this point and should include a detailed log of every single testing activity and issue that arises. Prepare a list of metrics that you want to be reported to the vendor, such as defects or errors found, the speed of service, reliability and so on. These indicators will help top management and staff address the maturity and consistency of the cloud vendor's processes.

If these steps are still not enough to put you at ease, create an audit of the system's log file and reports and prepare an internal and external communications plan with the vendor. Get in the habit of holding at least one weekly meeting during which you discuss future changes, status, metrics, and outstanding action items. The more communication you have with the vendor, the better they will understand your priorities and the better service you will receive.

In-house policing of cloud QA

Once your company had decided to use a Cloud service solution, there's still plenty for QA managers and testers to do in house. For instance, make certain that the developers and/or users have what they need to do the task at hand. Naturally, there will be need for planning testing of applications for future projects.

Policing employees' storage habits is a key in-house project management practice. Developers, testers, managers and users should not continue to save important files on their computer desktops and various locations on the corporate network instead of using the cloud system as the central source. Retrieving data can be a nightmare if you don't have access to a computer that has all the important information on it. Even worse is having to search through lines of folders on a corporate network for a document that someone else authored and saved somewhere.

To prevent improper file storage, QA managers may need to mandate that all employees use the cloud architecture when saving files. They could enforce correct file saving by adjusting the read- and write-privileges on each computer that has access to the cloud system. Another option is using local proprietary lockdown software. For instance, you may allow data-entry personnel to use the Internet for cloud applications, but prohibit them from obtaining write-access to their desktop so that data cannot be transferred to that location. Or, cloud users may be prohibited access to public Internet sites, such as email, which could be used to share sensitive corporate information. Another solution may be to use Internet machines with comprehensive capabilities instead of a traditional desktop computer, which could potentially save money and reduce the risk of data misuse

In general, be prepared to relinquish a certain amount of control of the system either way. While you must be cautious about getting good service level agreements and preparing well, those are not good reasons to dismiss using cloud services. I suggest getting started with cloud services with software products that are already stable and well-tested. It is also useful for a solution with products that will be developed within a Cloud environment, as long as R&D remains consistent.

Regardless of the reason you choose to use cloud, however, using the techniques discussed above may help you get the most out of the service while remaining cost- and quality-effective.


About the author: John Scarpino is a director of quality assurance for a large corporation, has been a QA test engineer for 14-plus years and is a university instructor in Pittsburgh.


Rate this Tip
To rate tips, you must be a member of SearchSoftwareQuality.com.
Register now to start rating these tips. Log in if you are already a member.


Submit a Tip




Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google



RELATED CONTENT
Software Testing
JIRA subtask conversion using Waitr script
Choosing automated software testing tools: Open source vs. proprietary
Q&A: Software tester describes daily application performance testing work
Finding software flaws with error-guessing tours
Nine ways to evaluate automated software testing tools
Using soapUI to mock Web services can offer insight on user acceptance
Cut software performance testing costs with built-in measurements
Manipulating Business Intelligence to solve dense data warehouse testing issues
Avoiding potential complications in debugging and testing rich web applications
Using empty client knowledge to enhance debugging practices

Application Security Strategies
Web server weaknesses you don't want to overlook
Rich Internet applications security testing checklist
The lowdown on PCI compliance
Web 2.0 application security troubleshooting, testing tutorial
Expert resolves issues plaguing OpenSTA users
Fixing four Web 2.0 input validation security mistakes
Social engineering training could disrupt botnet growth
Web security problems: Five ways to stop login weaknesses
The role of quality assurance (QA) pros in software security
Common software security risks and oversights

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary

DISCLAIMER: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.



Software Design & Testing - Project Management
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 2006 - 2010, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts