Introduction to SalesForce Testing:
SalesForce.com is one of the most widely used Customer Relationship Management (CRM) tool. It was found by Marc Benioff and is currently headquartered in San Francisco, US.
The primary purpose of a CRM tool is to sustain the relationship of an organization with its customers once the product is delivered to customers. Over the time, along with providing CRM services, SalesForce started to offer cloud storage as well, which reduced the hassle of maintaining physical servers for data storage of web applications.
Also, cloud-based storage does not require a user to install any additional hardware or software for using the application. It allows the organizations to reduce the development cost and build applications within a short time frame.
This tutorial on Salesforce Testing will give you a brief introduction about the tool along with its benefits and other features in simple terms for your easy understanding.
What You Will Learn:
- Benefits of using SalesForce
- SalesForce Terminology
- SalesForce Testing
- Recommended Reading
Benefits of using SalesForce
Mentioned below are the various benefits that are derived while using Salesforce:
- More than 82,000 companies use SalesForce platform worldwide.
- Helps to maintain a positive relationship with the customers.
- Enhanced communication between customers and organizations.
- Automation of daily tasks.
- The productivity of the developers would be increased as SalesForce provides inbuilt objects to reduce the development effort.
- No additional software is required to use SalesForce.
- Developers can reuse the existing applications through the built-in SalesForce app store named App Exchange. SalesForce also allows the developers to build their own custom applications.
- Inbuilt reporting mechanism.
- SalesForce administrator can create internal users within the SalesForce platform.
SalesForce will show the graphical representation of a number of users logged in, tasks assigned to each user and information added to SalesForce.
The below image is a representation of how Salesforce.com dashboard screen will look like.
The below image shows the types of inbuilt reports that can be generated on the SalesForce platform.
SalesForce contains a terminology that is required to be understood by both the developers and testers in order to work with the SalesForce applications.
Below mentioned are some of the terms that are most widely used in SalesForce:
An opportunity is a potential sales deal that an organization wants to keep a track of. It is the responsibility of any organization to make the opportunities available to the general public.
Example: A customer approaching a bank salesperson in need of a personal loan. In this case, a personal loan would be an opportunity.
A lead is a person who expresses the interest in an opportunity. It could typically be a caller to the organization for further information on an opportunity.
Example: A customer approaching a bank salesperson in need of a personal loan. In this case, the customer would be the lead and personal loan would be the opportunity.
An account corresponds to any company that you want to manage including its customers, vendors, partners, and prospects.
A contact is a person who works for an account. Contact could be an employee of the account.
#5) Tasks and Events:
Tasks and events correspond to all activities involved in association to the particular opportunity, contact or account.
SalesForce provides built-in reporting mechanisms to keep a track of the real-time data and report the daily progress of each task.
The below image shows the terminology used in SalesForce. Each term has an icon associated with it as listed below.
Below is the snapshot of how Accounts and Opportunities are represented on SalesForce platform.
What is SalesForce Testing?
SalesForce testing requires the use of complex test methodologies as most of the features in SalesForce are built-in features that are customizable. When an issue is observed, the tester needs to make sure that he is testing the code that has been customized rather than testing the built-in salesforce functionality.
SalesForce is built on a platform development language named as APEX. The language provides built-in unit test cases for developers to test their own code. The standard rule of SalesForce requires a developer to achieve 75% of code coverage with unit test cases.
From a tester's perspective, we should always aim for 100% code coverage within each test cycle.
Salesforce Testing Process
The salesforce testing process would be the same as that of testing a normal web-based application. However, a tester needs to have a clear perspective of the customizable features that are being built so that during the testing process, a tester can focus on those features alone rather than the built-in Salesforce features.
Testing of Salesforce applications requires a production like an environment called SandBox. Developers and testers need to use the Sandbox environment for each of their purposes.
Once the code is deployed in a Sandbox environment and approved to be ready for release, the code would be moved into production from the Sandbox environment. It is assumed that the tester has the basic knowledge of all the terms used in Salesforce before proceeding with testing.
Salesforce Testing Tips
Salesforce testing must include the following features:
- Testing must include UI testing, functional testing, regression testing, integration testing, system testing and system integration testing.
- Automation testing can also be enforced on SalesForce using tools like HP Unified Functional Testing (UFT ) and Selenium.
- A tester needs to be cautious during UI testing as most of the web pages on Salesforce platform are Visual Force pages. The dynamic nature of visual force pages need to be paid special attention as all the elements of a webpage may not be loaded at one go.
- Testers need to create functional flows including positive and negative flows to cover the entire functionality of an application.
- Workflows using various user roles must be constructed and tested.
- Test cases need to be documented using a test management tool like HP ALM.
- Test Data needs to be prepared for validating the reports functionality.
Roles and Responsibilities of a Salesforce Tester
Testers involved in SalesForce are often referred to as ‘Quality Engineers’ as opposed to ‘Quality Assurance’ people as SalesForce testing requires the testers to build complex test frameworks, understanding the functionality of an application in depth and the ability to work with the developers and project stakeholders.
Please note that some of the default functionalities provided by SalesForce cannot be removed, although your organization may not use them. Testers need to ignore the default functionality and focus on the customized functionality built by the organization.
Given below are some of the major roles and responsibilities of a Salesforce tester.
- A tester needs to have clear communication with the development team, to understand the customizable features that are being built into SalesForce.
- The tester needs to coordinate with the business whenever required as the requirement document for Salesforce is usually complex to understand and requires a lot of effort to be understandable by the testers.
- The tester needs to make sure that the code coverage does not go below 75% as per the standard Salesforce rule.
- The tester needs to conduct role-based testing to ensure the consistency of data with various user roles.
- The tester needs to perform compatibility testing of the third-party applications integrated with SalesForce if any.
- A tester needs to be familiar with load testing tools such as JMeter to validate the complex flows that produce inconsistent results in Salesforce.
- A tester needs to be familiar with multiple application flows.
SalesForce Exploratory Testing
Exploratory Testing in Salesforce would involve the following best practices:
- Testing should involve validating the consistency of data across multiple screens.
- UI Testing must involve documented test cases as per the requirement document.
- Testing should involve negative test flows, such as deleting the default data generated and validating the behavior of an application.
- Testing should involve user input validation on the form fields.
- Cross browser compatibility testing needs to be performed to ensure if the rendering of data is correct across multiple browsers.
- Testing must include Maximum length validation for each of the editable input fields along with the invalid data validation.
- Testing must also include error message validation when invalid data is passed onto the applications.
- Amount field validation on banking applications using Boundary Value Analysis technique needs to be performed with proper diligence.
- Reports and dashboard testing need to be paid special attention to various test data parameters.
- Testing should include the entire application flow, along with individual functional flows.
- Multiple permutations and combinations of functional flows can be tested for positive and negative testing.
- API testing for integrated third-party applications needs to be performed.
- Identify the default Salesforce functionalities that come in the way of customized features and coordinate with the developers.
SalesForce Test Automation
Automated functional testing of SalesForce is a challenging one as most of the web pages are dynamic in nature on the SalesForce platform. Hence, SalesForce demands automation testers to build robust automation framework to sustain in the future. Also, there can be frequent updates to the applications as they are on cloud applications.
Test Automation on Salesforce can be achieved using any of the following tools:
- Selenium web driver
- HP Unified Functional Testing (UFT)
- Test Frameworks, such as Cucumber
Salesforce Load Testing
Load testing involves testing the behavior of an application under varying loads. SalesForce.com is a highly scalable platform built for handling a large number of users. Salesforce.com is tested by the platform developers themselves for performance bottlenecks.
However, load testing becomes essential when a newly introduced piece of code yields performance bottlenecks that have to be addressed. Load Testing on Salesforce platform can be performed using performance testing tools such as HP LoadRunner and Apache JMeter.
Below are some of the Salesforce load testing strategies that can be implemented:
- Validating the behavior of an application under a maximum number of users.
- Load Testing needs to be carried out in the Sandbox environment rather than the actual production environment.
- Important business processes need to be identified and test scripts need to be prepared.
- Test scripts need to be executed and key metrics such as Transactions Per Second(TPS), Response Time, Bytes throughput over time must be derived.
- Once all the metrics are collected, the application needs to be assessed for any performance bottlenecks.
- If there are multiple teams working in the same environment, be sure to inform the other teams of the time within which load testing is being carried out.
Salesforce Security Testing
Security testing on the Salesforce platform is usually done by SalesForce development team. Before placing a request for security test, it is best to review the ‘Application and Network Vulnerability Assessment Summaries’ provided by Salesforce.
After reviewing the summary, if a security test is still required, then a Security Assessment Test can be scheduled with the Salesforce team.
Given below is the list of security testing tools that are offered by SalesForce:
- Force.com Security Source Scanner:
Security source scanner is an on-demand static code analysis tool provided by SalesForce. This tool scans the source code that is provided as input and yields a summary report with the list of potential security vulnerabilities. Security source scanner requires a license to be used.
The tool can be accessed from here.
- Force.com Secure Coding Library:
This is a standard library provided by SalesForce that helps the developers to enforce the best coding practices in terms of security. Usage of this library helps the developers to reduce the risk of developing high-risk applications with security vulnerabilities.
The library can be accessed from here.
SalesForce has a dedicated community of developers and testers whom one can connect to in the hour of need.
SalesForce can be used using a web browser without the need to install additional hardware or software, which makes it the ideal choice for organizations worldwide. Career growth aspects for SalesForce platform testers are very rapid.
Testers can opt for SalesForce.com administration certification or SalesForce.com developer certification and improvise their career on SalesForce platform.
Do you have experience in SalesForce Testing? We would be glad to hear from you.