In this Salesforce Testing tutorial, we will learn what is Salesforce Testing, how to perform Salesforce testing, and the following concepts in detail.
What is Salesforce?
Salesforce is a cloud-based software that provides customer relationship management service that helps organizations to streamline their sales and marketing operations.
Salesforce started as Software as a Service (SaaS) for CRM software. Salesforce now provides several software solutions like marketing, automation, analytics, and also application development. As they provide upgrades automatically we don’t have to worry about the application or infrastructure. Now, Salesforce is the #1 CRM software in the world. Over 150,000 companies use Salesforce.com for customer relationship management.
Salesforce.com has a multi-tenant architecture, customers don’t have to worry about software upgrades as it helps multiple customers to share common technology on the latest release. This form of architecture helps our organization to focus more on innovation and less on maintaining the technology
Salesforce has two types of options available for making changes in the inbuilt CRM application:
- Configuration – Without altering the code of the application, the organization can use the inbuilt features to configure various business requirements of their own via the user interface. Salesforce admins usually perform such configurations. A new field, report, and workflows integrate with some alteration in the settings of the Salesforce panel. Creating profiles, implementing validation rules, changing page layouts, setting emails are features that are already available in the Salesforce application, etc can be few examples of configuration.
- Customization – An organization can customize the application when the inbuilt features are not enough to meet the business requirements of the organization. The development team can create new features for the application that integrates with the existing system. Integrating the system with third-party software, creating custom reports, altering the page using CSS etc can be few examples of customization.
- Developers use Apex of server-side development, it is an object-oriented language that has a similar syntax as Java. The code gets stored in the form of triggers and classes.
- Front end developers use Visual force or lightning frameworks.
- Salesforce has its data management language Salesforce Object Query Language.
- Skilled Salesforce developers do the Customization of the code.
Salesforce testing ensures that after configuration and customization, the application performs as expected.
Benefits of using Salesforce
- Salesforce is a rapid system as it can help an organization to implement
a complete CRM system in months or even weeks when compared with traditional CRM software which can take more than a year to deploy.
- Salesforce is easy, the organization can spend more time uploading data and using it rather than spending months figuring out how the software works.
- Salesforce is effective as it helps the organization to customize the software to meet business needs, improve customer relationships, automate marketing, business etc.
- Salesforce saves time in development, developers can build their custom application using inbuilt objects or they can even reuse the existing applications through the App Exchange which is a built-in Salesforce app store.
- Salesforce is affordable, the cost of the software varies depending on the needs and scale of each business. This helps even startups and small businesses can use Salesforce.
What is SalesForce Testing
SalesForce testing helps with validating the customized features of the application rather than the in-build features of SalesForceDotCom(SDFC).
One of the best features of SDFC is everything can be customized based on the customer’s need. Salesforce testing ensures that those enhancements and feature updates don’t fail or compromise other elements of your Salesforce environment.
Why Salesforce Testing
- It identifies defects in an early stage with high quality of test accuracy.
- It helps in providing stability for customized features.
- It minimizes business risks with testing customization.
- It ensures functionality is intact with internal or external environment integration testing.
- It increases test coverage with end-to-end testing.
- It validates the integration of third-party APIs with Salesforce to meet business requirements.
- It validates case management workflows designed for customer services.
Types of Salesforce Testing
Manual Testing- In Salesforce manual testing, the testing team performs functional testing, integration testing, regression testing, happy path testing, and system testing in the application. They follow the traditional methods for testing these applications.
Don’t miss our Manual Testing Guide
Don’t miss our Automation Testing Guide
Levels of Testing in SalesForce
- Salesforce developers perform unit testing during the development process.
- Developers can write, run and check the result of the test cases through a testing framework in Apex, which helps the developer in determining the code coverage.
- The code coverage should be at least 75% to move the apex code to the production environment.
- Unit tests use Apex Code, annotated with the “ testMethod ” keyword.
Don’t miss: Unit Testing Guide
- Salesforce consultants perform end to end testing in the application.
- Expert consultants test the system from end to end to check the technical process that runs in the back-end.
- They use several test scripts for specific outputs from the application.
- This helps us to find the problem with automated rules in the existing salesforce system like workflow, validation, assignment, etc, that make it difficult to customize functions towards the organization’s needs.
Read more: System Testing Guide
User Acceptance Testing
- Salesforce Users i.e the end-user who is going to use it in real-time will test the application.
- The test is carried out in a production-like environment, the user would only see the elements they need to see.
- The goal of the User Acceptance Testing is to eliminate bugs that impact the user experience.
- UAT is the last level of testing before pushing the code on the production.
Read more: User Acceptance Testing Guide
- Both the testing team and end-users perform testing in the production environment.
- It is similar to system testing, they test the system end to end to make sure that the configuration and customization done by the development team works perfectly in the production environment.
- As the testing happens in the live system, we have to be very careful while testing the Production environment.
Read more: Acceptance Testing Guide
- Both manual testers and automation testers perform regression testing.
- Once the code gets deployed in live, the development team works on creating new features or fixes bugs that were not fixed within the given timeline.
- When these new changes get developed, Regression testing helps to check whether these new features affect any existing features.
- The testing team uses automation scripts for regression testing, as the system would be stable by now and all the repeated tasks get assigned to automation scripts.
Read more: Regression Testing Guide
Salesforce Testing Process
Testing a Salesforce Application is not different from testing any normal application. But, in Salesforce we should be aware of the Salesforce configuration/ Administration settings to test the requirements.
Salesforce Testing is like any web application testing, the tester has to focus on the Salesforce infrastructure details like configurations and administration settings to test the requirements.
As a Salesforce application is customized and configured from an existing Salesforce application, the infrastructure of the system is completely different from an application that gets developed from scratch.
The testing team has to focus on the customized feature and how those features interact with built-in Salesforce features.
The development team and the testing team should have clear communication about the customized features. User stories, Test scenarios, test scripts, and test cases get created based on these interactions. should have a clear perspective of the customizable features which get built during the test process. Different levels of testing get performed in the sandbox environment (test environment) and the code gets deployed in the live environment.
Before starting the testing process the QA team should know the basics knowledge of the role & features of salesforce and should be familiar with the below functionalities.
- To create accounts.
- To create contacts to relate with accounts.
- To enable the created contacts as external users.
- To assign product licenses to external users.
- To create internal users.
- To assign SalesForceDotCom(SFDC)product licenses to both internal and external users.
- To check all page layouts.
- To verify all related lists of detail pages.
- To check all the columns in the related list.
- To create test data to perform testing.
- To work closely with the development team to design, build and test the application.
- To provide the pointer for defect fixes and product enhancement.
- To provide new ideas and information to enhance the system.
- To Prioritize and estimate the major deadlines across the project.
- To provide detailed documentation to the business and developer team.
- To organize training sessions/demos for the customers.
Salesforce Testing Challenges
- As a salesforce application has several types of users, writing test cases for different roles, features and settings can be tedious.
- Salesforce is a dynamic environment, it generates ids at runtime, field locator based on ids needs constant maintenance because of the change it brings to the Apex code.
- Even though a Salesforce application is highly customizable, Developers cannot change some functions even if they are not required.
- The test suit should get updated and maintained for every Salesforce software update.
Best Practices for Salesforce Testing
The QA team has to be involved in the early stages of the project, this helps the team increase test coverage and the variety of tests.
Developers have to take care of unit testing before handing over the code to the testing team, critical bugs get fixed in the primary stage itself.
Using the right testing tools can help the overall quality of testing, for example, selenium for automation testing because it is cost-effective.
Test case walkthrough with both the stakeholders and developers to reduce the misinterpretation in the functionality and the development team can assess the efficiency of the code.
Sample Salesforce Test Scenarios
- Check whether the contact information of lead/clients gets captured.
- Check whether the contacts get marked as active/inactive.
- Check whether any company can get marked as a customer or prospect.
- Check whether leads can get captured with the help of web forms.
- Check whether the quotation price is not equal to zero.
- Check whether the deals get closed once the email gets sent.
- Check whether the bounced emails get handled.
- Check whether integration with third-party software works properly.
- Check whether the billing service works as expected.
- Check whether there is no duplication of records in contact, opportunity, and lead management.
- Check whether the mobile workflow works as expected.
- Check whether the file access functionality of unauthorized users is not available.
What are the Tools used in Salesforce Test Automation?
Companies that want to leverage UI Test Automation on Salesforce face some challenges like what tools to use, how the selected tool will be helpful when updating automation when migrating from Salesforce Classic to Salesforce Lightning.
Following are the widely used SalesForce Testing Tools
- Selenium WebDriver
- WebDriver IO
- UFT (Unified Functional Testing)
What is the Role of a Salesforce Tester?
The role of Salesforce testers is often referred to as ‘Quality Engineers’ as an alternative to the usual ‘Quality Assurance’ because Salesforce requires software testers should be full-fledged engineers. The role of the Salesforce tester is not simply confined to review the code to find bugs, but also design, maintain and scale complex test frameworks.
Usually, the Salesforce Project core team consist of the following resources
- Business Analysts
- Project Managers/Scrum Masters
- Quality Analysts/Salesforce Testers
Some of the important roles and responsibilities of a Salesforce Tester are as follows
- Ability to set up test environments from scratch
- The tester should understand the functionality of an application
- Involvement in code review and release process.
- Need to have good communication skills to communicate well with developers and stakeholders and to understand the features that the team builds.
- Hands-on experience in Unit Testing, Functional Testing, Integration Testing, Load Testing, Security Testing, and Deployment Testing.
- Should be able to create test scenarios both positive and negative.
- Needs to perform compatibility test in case the third-party applications integrated with SalesForce
- Ability to work with load testing tools like JMeter to make sure the complex flows are giving the consistent results
- Able to execute role-based testing to ensure the consistency of data with different user roles.
- Salesforce automation testing using tools like Selenium.
- Generating reports on pending production issues, product updates
Organizations are becoming more and more customer-centric these days and good CRM software helps them get more sales and profit. Salesforce is a widely used CRM with a large set of inbuilt features and can configure and customize extra features as per the organization’s needs.
Just focusing on the development phase is not enough. Testing the code and feature that gets configured and customized is also important. Salesforce testers should be highly skilled with deep knowledge of the various Salesforce terms.
Salesforce Tester as a career option has rapid growth prospects. Having an ADM 201 certification can add to their career development immensely. You can become a future business analyst with a background in testing.