Cloud CRM's Evolution and Impact on QA
Total Page:16
File Type:pdf, Size:1020Kb
• Cognizant 20-20 Insights Cloud CRM’s Evolution and Impact on QA As cloud-based customer relationship management systems such as Salesforce.com go mainstream, quality assurance and testing teams need to reinvent their skills and processes to ensure timely and effective application deployment and return on investment. Executive Summary The Cloud: A Brief History Cloud computing is not a completely new technol- The cloud revolution1 started with the software as a ogy; rather, it represents a change in the software service (SaaS) model. In this approach, the vendor ecology for solution creation, distribution and provides end users a full software suite that is consumption. Cloud architecture has already had hosted on the vendor’s premises. These end users disruptive effects on the techno-business land- typically do not need any additional hardware or scape, particularly in pushing established vendors infrastructure, except network connectivity and aside as new players emerge. The cloud’s most an Internet browser to run the applications. Web- critical change is the amount of power and flex- based e-mail services such as Hotmail are among ibility provided to application designers, content the earliest examples of SaaS. However, the full creators and end users. The traditional roles of potential of the model was realized only after developers, testers and end users in the software multi-tenant architectures came into existence. development lifecycle (SDLC) model have become interchangeable in some respects; all roles must In the multi-tenant model, each client (usually, an adapt to survive, if not thrive, in this new age. enterprise) shares computing resources provid- ed by a host service provider, but has separate This white paper discusses enhanced testing tech- and distinct data and code bases. This enables niques that have delivered business benefits amid companies to secure sensitive business informa- challenging cloud application testing engage- tion even when the same application platform is ments and which can be adopted across a wider being used by other companies. Moreover, any spectrum of projects. client can customize and add extra features to its instance of the application, without impacting other customers that are sharing the same server and database. New features can be implement- ed by installing third-party plug-ins or writing custom code. In some cases, clients can build unique versions of the application, while using cognizant 20-20 insights | september 2014 The Cloud Stack Google Apps, Salesforce.com, Netsuite, Lotus, SaaS WebFillings, Zoho, Yahoo Mail, Hotmail. Google App Engine, Force.com, Windows Azure, LongJump, PaaS Rollbase, Amazon Elastic Beanstalk, VMware Cloud. IaaS Amazon EC2, Rackspace, WMware, Joyent, Google Cloud Storage. Figure 1 the computing resources and APIs provided by For small-scale businesses, out-of-the-box the vendor. This approach is known as platform Salesforce applications often cover all business as a service (PaaS). PaaS offers organizations an requirements. However, large-scale businesses unprecedented amount of power and flexibility. It often require customization of the company’s also allows user companies to focus on their core CRM application to match their business process- business rather than investing time and money in es, and they must integrate Salesforce with other building IT infrastructure. enterprise applications. Regardless of wheth- er internal IT teams or third-party consultants Infrastructure as a service (IaaS) takes this con- support these customizations, standardized and cept to the next level, by virtualizing the entire well-established practices for software develop- hardware layer — including the server, file-based ment still apply for efficient delivery. This is a key storage, firewalls, load balancers, IP addresses, requirement across the SDLC, from specification virtual local area networks (VLANs) and soft- and design through coding and testing. ware bundles (see Figure 1). For example, Heroku, provider of a cloud-based build and deployment The above statement does not indicate that a platform, relies completely on virtual network strict Waterfall model needs to be followed; any services that Amazon EC22 provides to run its standard iterative model can be used. The primary own software stack. issue here is that standard SDLC models require a greater amount of time spent on different phases Running applications over SaaS, PaaS or IaaS than the quick deployment most cloud vendors brings immense benefits to the enterprises in suggest when it comes to application imple- terms of Cap-Ex and Op-Ex reduction, but when mentation. The expectation disconnect typically it comes to the project lifecycle — and testing in ensues after the cloud vendor’s promise that the particular — businesses need to radically overhaul application can be used as is, with just a little bit IT methods and thought processes to extract criti- of tweaking. Timelines tend to extend well beyond cal performance advantages. the promise of immediate time-to-value, an issue for most companies looking to deliver quick-hit The Cloud Difference returns on investment after making large upfront Why does the cloud matter? Take the example of outlays on software licensing. Therefore, IT teams Salesforce.com,3 one of the most popular cloud- need to figure out a way to shorten the cycles based customer relationship management (CRM) while still retaining software quality. systems in use today. Salesforce offers an end- to-end CRM and contact management system. Even within IT teams, different groups face differ- When an organization purchases a license from ent sets of challenges. Historically, until three-tier Salesforce, it gains access to many pre-built mod- client server architectures emerged, IT roles were ules, database tables and storage spaces provided fairly straightforward. A group of business ana- via Salesforce’s cloud-based CRM platform. lysts specified the business requirement. Another cognizant 20-20 insights 2 group of architects designed the application. Independent Testing Developers wrote the code, and testers verified for Cloud Applications that the codes worked based on the specifica- A valid question is often asked by project stake- tions of the business requirement. holders: If the roles are so blurred, is there any This no longer applies in a cloud project, in which, justification of the cost incurred by maintaining based on the specific application, 30% to 70% a separate testing team? The answer to this is of the application is delivered out of the box both yes and no. Yes, because regardless of the by the cloud vendor. The business analyst who type of activities performed by a testing team, writes the requirement must understand the nuts the fundamental principles of testing remain in and bolts of the platform. This analyst needs to place; that is, to objectively assess the applica- understand the feasibility of implementing a spe- tion and expose critical flaws before end users cific customization requested by the business to use the application in a production environment. provide valuable feedback on time. The developer, No, because traditional testers do not really add who is implementing the requirement, needs to much value in this case. Only a specialized group decide whether a new feature can be implement- of professionals who are trained and experienced ed through built-in system capabilities (commonly in the architectural details of the cloud platform referred to as configuration change) or must be used to develop the application, and who also coded from scratch. The tester responsible for understand the concepts and philosophy of test- validating the system needs to decide where to ing, can produce the kind of result called for in a spend the limited available time based on the risk, cloud project. which depends on the way a system change was Some steps can be taken to ensure that test- implemented. ing teams do not become a bottleneck in the Therefore, every group needs to be intimately otherwise fast-moving cycle of SaaS and PaaS familiar with the tasks and decisions of the other implementations. What follows is a look at the groups in order to plan their activities efficiently tools and techniques applied by an empowered and accommodate the project’s overall budget. testing team and at the kind of values added in a real-time project. Proposed Lifecycle for Cloud Application Testing Projects Requirement Development Testing Specification Field specification, formula/ Significant portion of System testing cycle trigger/workflow description and testing done before consumes much less time security grid reference created actual system testing than usually required. by business analyst. cycle begins. • Field Validation • Integration Testing • Formula Validation • Functional Testing • Trigger & Workflow Validation • Regression Testing • Security Validation • User Acceptance Testing • Web Service Validation Figure 2 cognizant 20-20 insights 3 Excel Worksheet Configuration Comparison Figure 3 A Novel Approach: Figure 2, previous page, walks through the best- Redefining the Testing Process and case process used by our team of cloud testing Tester’s Role in SDLC experts. During the development phase, the team started with test cases that were In an effort to reach out to individual custom- Salesforce-configuration-specific and did not ers, a North America-based insurance company have any dependency on the user interface, and decided to implement an automated e-mail mar-