Salesforce Testing

What is Salesforce?

Salesforce is the world's first cloud-based CRM system. It was founded by Marc Benioff and Parker Harris in March 1999. The purpose of developing this CRM platform is to help users affordably and easily - sell, service, market, analyze and connect with their clients.

SFDC(Sales Force Dot Com) has many standard features which help you to manage the relationship with prospects and customers. It also allows you to engage and collaborate with employees and business partner to store their data securely in the cloud.

What is SalesForce Testing?

A great thing about Salesforce is that many of the out of box features can be customized to suite a company's need.

Salesforce testing is a validation of the configuration and customization performed in vanilla SDFC.

The challenge is to ensure that a tester is checking the code which has been customized in place of testing built-in salesforce functionality.

SalesForce CRM is built on a platform development language called APEX. It also provides many built in unit test case for developers to validate their code.

Why Salesforce testing?

Here, are prime reasons behind conducting salesforce testing:

• Allows you to check that configuration and code is functional.

• Helps you to verify that the finished system can support the client's business processes

• Helps you to confirm that the system's initial build meets the agreed requirement

• Helps you to catch problems early, while they're easy to fix

• Functional flows report based on the status of test cases. This allows the team to create the functional flows to know the functionality of the application

• Process builders feature helps you to check the working condition and behavior of the system

• Workflows allow you to check the functionality of time-based events

Types of Salesforce Testing

Manual Testing:

Manual software testing process includes the testing of Salesforce.com App by using traditional methods. QA team can use manual testing can be used to execute functional testing, happy path testing, integration testing, regression testing, and system testing.

Automated Testing:

Automated testing involves a computer program to test a Salesforce.com or Force.com app. Automated testing tools like Selenium, Assure Click, QTP, etc. are used.

Levels of Testing in Salesforce

Following levels of Testing usually, apply to Salesforce

Unit Testing

• Unit testing process is conducted by Apex developers. It involves writing clauses in their code which automatically tests its coverage

• It helps you to evaluates how many records of data are effected, so that the code would successfully run on in that environment.

• To deploy Apex code into a Production environment your code coverage ratio should be minimum 78%

System Testing:

• It Is performed by an expert team of Salesforce consultants

• Involves testing system's technical processes from beginning to finish

• Involves test script based on specific outputs

• Allows you to troubleshoot a problem with automated rules in the system like workflow, validation, assignment, etc.

UAT Testing:

• It Is conducted by the users who will use the application

• Allows to tests the system's ability to support the business processes

• UAT testing following a test script based on what happens in the business

• The desired output should be that the client confirms that the system is fit for purpose

Production Testing:

• It is a repeat of system testing in the Production environment

• Product testing in salesforce allows you to test whether config and code have been correctly deployed from sandbox to production environment or not

• If there is time left before the final project launching, then the client should run through UAT scripts again post-deployment

Regression Testing:

• The main object of Regression testing is to test whether code and config releases is affecting existing user processes of the system

• It will be conducted once a enhancement or a fix is deployed to production.

• The user provides a list of changes which may impact their current process

Salesforce Testing Process

The testing process of Salesforce is same as any normal web-based application. The tester should have a clear perspective of the customizable features which are built during the test process. It helps them to focus on that cutomized code instead of the built-in Salesforce features.

Developer and tester should use the Sandbox environment (Test Enriovnment) for each of their purposes. Tested code in Sandbox environment is deployed to production from the Sandbox environment. It is assumed that the QA tester has the basic knowledge and understanding of the terms used in the Salesforce.

Best practice for Salesforce testing

• Run tests as real user profiles

• Test Data should be prepared for validating the reports functionality

• The testing method must include functional testing, UI testing, regression testing, and system integration testing

• The dynamic nature of visual force pages should be paid special attention as all the elements of a webpage may not be loaded simultaneously

• Automation testing should be performed using tools like Selenium and HP Unified Functional Testing

• Salesforce tester should consider which include positive and negative flows

• Users role must be constructed and tested using Workflows

SalesForce Test Automation Tools

Performing automated functional testing in SalesForce is a challenging task as most of the test web pages are dynamic. Therefore, the tester needs to build robust automation framework to which should be useful not only today but also in the future.

Below, given are widely used Salesforce testing tools:

• Selenium web driver

• HP Unified Functional Testing (UFT)

• Cucumber

• Force.com IDE (Eclipse-based)

• Change Sets (Cloud Deploy)

• Ant/force.com migration tool

• Workday