1. What is Salesforce?
Salesforce is a CRM (Customer Relationship Management) platform that enables businesses to manage all kinds of customer-centric aspects of their business, including marketing automation, customer service, analytics, application development, and more. The cloud-based CRM tool started out simple and straightforward.
The software company has continuously evolved, expanded, and introduced new products to its customers. Salesforce products such as Platform, Experience Cloud, Commerce Cloud, and Customer 360, help companies build their own custom applications, services, portals, and solutions to help automate and personalize the customer experience. Likewise, organizations are responsible for performing Salesforce performance testing to ensure they are functioning properly, are responsive, and scale well as their user bases expand.
2. Describe Salesforce testing.
- Salesforce testing is a process of identifying any errors, gaps, or missing requirements within a Salesforce customization and configuration versus the actual requirement.
- Testing is important in ensuring that the functionality delivered meets the user’s expectations. During testing, potential bugs in the application are discovered and fixed before it goes live.
- APEX is the platform development language used by Salesforce CRM.
- Additionally, it provides a built-in unit test case for developers to validate their code. QA performs manual testing in Salesforce, including happy flow testing, functional testing, integration testing, regression testing, and system testing.
- The following tools can be used for Salesforce automation testing: Provar, AutoRABIT, Assure Click, Selenium, and QTP. The open-source Selenium tool is the best one to choose.
- Testers are required to create functional flow reports based on the status of test cases, in order to determine the functionality of an application.
- Different entry criteria and rule criteria are given to process builders to test the system’s behavior.
- Time-based workflows are also used to check the system’s functionality.
3. Why Salesforce testing?
In Salesforce testing, the main aim is to test the customized application features rather than the ones that are built into SalesForceDotCom (SDFC). Because one of SFDC’s main USPs is that anything in it can be customized according to the needs of the user, Salesforce tests these features to ensure that any enhancements or custom features will not malfunction in production or fail to work smoothly with other modules in SF.
It is important to test the custom features in SDFC because:
- This allows us to determine whether or not the code works.
- Based on the business requirements, it helps verify that the application can meet client requirements.
- This makes it easier to detect problems early during testing.
Common Features are:
- Maintains a positive relationship with customers. Checks the functionality of time-based events.
- Enhances communication with clients. Automates the daily tasks.
- Salesforce provides inbuilt objects to reduce the development effort, boosting the productivity of developers.
- Salesforce does not require any additional software. Checks code and configuration for functionality.
- A Salesforce app store called App Exchange allows developers to reuse existing applications. Developing custom applications is also possible with Salesforce.
- Reporting capabilities built into Salesforce. Users can be assigned to Salesforce by an administrator.
- The initial installation of the system will help you confirm that the requirements have been met. Process builders help you test the system’s behavior and condition.
4. Explain Salesforce Testing Process?
Testing Salesforce would be similar to testing any web-based application. Testers, however, should be able to understand the customizable features that are being built in order to focus on those features entirely instead of the built-in Salesforce features during testing.
Customizable Features Includes:
- Sales and Service clouds
- Standard and Custom Objects
- Salesforce Security concepts
- Workflows and Process Builder
- Lightening module
- CPQ Configure, Price, Quote
- Reports and Dashboards
Sandbox environments are used during Salesforce testing. Sandbox environments are needed by developers and testers for different purposes.
After the code has been deployed in a Sandbox environment and approved for release, it would be moved from the Sandbox environment into production. Testers are assumed to have a basic understanding of all the terms used in Salesforce before beginning the test.
5. Explain Salesforce Testing Life Cycle?
A Salesforce Testing Life Cycle consists of five steps:
- Gathering requirements for testing: The business requirements of the application to be built should be understood.
- Planning tests: Establish a test strategy, objectives, and test plan.
- Setting up the test environment: Set up a sandbox environment on Salesforce and insert test data.
- Execution of the test: Run the tests and document any bugs that are found.
- Closure of the test: Prepare a test summary once all test cases have been executed and the identified defects have been fixed.
6. Explain non-functional Salesforce testing?
An application’s performance, usability, and reliability are evaluated during Non-Functional Testing. The following components are included in Non-Functional Testing.
- Performance: Tests that evaluate how well a system performs under particular workloads in terms of responsiveness and stability.
- Security: Testing to discover vulnerabilities in the security mechanisms of an information system so that they can protect data and function as intended
- Usability: A user-centric evaluation of how easy the application is to use.
- Compatibility: Checks to ensure the application is compatible with different computing environments.
7. Explain functional Salesforce testing. (or) Explain Levels of Testing in Salesforce (or) Explain Scope of Salesforce Testing?
The Salesforce application testing life cycle follows the same steps as any other platform.
Below is a description of these types with examples:
- A unit test is conducted by the Apex developer. They write code clauses which automatically check the coverage.
- You can determine how many records of data are affected, so that the code can run successfully in the environment.
- Code coverage ratios of at least 78% are required when deploying Apex code into a Production environment.
Example: A developer has scripted a password input text field with its validation ar (8 characters long, must contain special characters.); makes a unit test to test out this one specific text field (has a test that only inputs 7 characters, no special characters, empty field)
- Performed by an expert team of Salesforce consultants(Testers and QA professionals).
- Focus is on functional requirements and use cases. Generally, testers don’t understand the code (also known as Black Box Testing).
- From start to finish, a system’s technical processes are tested. Test scripts are based on specific outputs.
- Troubleshoots a problem with automated rules in the system, such as workflows, validations, and assignments.
Example: After generating a password, a tester writes a test case to verify that the password is saved accurately in the database. By doing this, the developer ensures that the code he writes is integrated with the database.
User Acceptance Testing:
- Tests of acceptance are conducted to determine if the software system meets all predefined specifications. As a result, both business stakeholders and end users can be satisfied by the system, as long as it complies with business, technical, and aesthetic requirements.
- There are generally two types of acceptance tests: User Acceptance Testing and Business Acceptance Testing. From a user’s perspective, the former evaluates whether the product meets all performance standards, while the latter ensures that the application aligns with business goals.
- End users conduct this test. A test script mimics real-world business scenarios with expected outcomes. Client confirmation of fit-for-purpose should be the desired outcome
Example: The client tests a particular feature on site, such as adding a customer to the CRM.
Production Testing (or) Production Verification Testing:
- Testing is conducted in the production environment by both the QA team and end users. Salesforce Consultants and end users repeat system testing performed in the Production environment.
- The purpose of production testing is to ensure that configuration and code have been properly deployed from the sandbox to the production environment. End users should repeat UAT testing after deployment.
Example: Verifying that the CRM has been created and deleted properly after go-live.
- Neither a manual nor an automated method can be used to accomplish this. This type of testing checks if any changes made to a custom functionality do not affect other features.
- The main objective of this process is to ensure that the released code and configuration features don’t conflict with existing processes.
- The test is done after releasing features intended for a specific group of users and testing those features with users who are not intended for the release.
- Testing is primarily intended to ensure that system users for whom the released features are not intended can perform their day-to-day activities without interruption.
Example: Testing the login functionality after a new user interface has been designed.
8. What are the Salesforce Key Terminologies?
Developers and testers must understand Salesforce terminology in order to work with the applications.
A few of the terms most commonly used in Salesforce are listed below:
- Opportunity: Opportunities are sales deals that an organization would like to keep track of. The general public should have access to opportunities provided by any organization.
An example would be a customer requesting a personal loan from a bank salesperson. Personal loans are an opportunity in this case.
- Lead: A lead is someone who expresses interest in an opportunity. Typically, this would be a caller looking for more information about an opportunity with the organization.
An example would be a customer approaching a bank salesperson for personal loans. The lead in this instance would be the customer, and the opportunity would be the personal loan.
- Record: There are a variety of fields that contain information about a specific item. A contact record, for example, typically contains fields related to a person, such as name, title, phone number, and e-mail address. These fields appear on the detail page of the record.
Tabular(Default) – Like spreadsheets, these consist of an ordered set of fields in columns, with each matching record listed in a row.
Summary – Similar to tabular reports, but you can also group rows of data, view subtotals, and create charts.
Matrix – Groups records by both row and column.
Joint – Report blocks that present a variety of views of your data.
- Account: Accounts correspond to any company you want to manage, including its customers, vendors, partners, and prospects.
- Contact: Contacts are individuals who work for an account. They might be employees of the account.
- Tasks and Events: In an association, tasks and events refer to all activities associated with a particular opportunity, contact, or account.
- Reporting: It is easy to keep track of real-time data with the built-in reporting features in Salesforce.
- Salesforce Objects: We can store data specific to an organization with Salesforce Objects, which are database tables. These are standard objects.
- Salesforce Standard Objects: There are a large number of standard objects in Salesforce, but you can also create custom objects.
- Salesforce Custom Objects: Custom objects are all items created by external entities other than Salesforce.com.
- Relationships: such as Master-Detail and Lookup.
- Case: An issue raised by a customer.
- Solution: Descriptions of issues and their resolutions.
- Forecast: revenue estimates for the organization.
- Folders: Contains all the documents and controls their access.
- Report: Analyzes the data stored in custom or standard objects.
- Dashboards: are generated from reports, and contain graphs or charts.
- Activity: consists of tasks and calendar events.
- Products: refer to the items that customers purchase.
- Campaign: refer to marketing projects.
9. List some Salesforce test automation tools?
- Selenium web driver
- HP Unified Functional Testing (UFT)
- com IDE (Eclipse-based)
- Change Sets (Cloud Deploy)
- Ant/force.com migration tool
10. Describe Salesforce Exploratory Testing?
Salesforce Exploratory Testing would include the following practices:
- Validate that data is consistent across multiple screens.
- Test cases should be documented according to the requirements.
- A negative test flow involves deleting default data generated in an application and validating its behavior.
- Form field input should be validated as part of the testing process.
- To ensure that data is rendered correctly across multiple browsers, cross browser compatibility testing must be performed.
- Each editable input field must be validated for maximum length, as well as invalid data.
- When invalid data is passed onto applications, testing must also include error message validation.
- Boundary Value Analysis should be used with great care when validating amounts on banking applications.
- Various test data parameters need to be considered when testing reports and dashboards.
- Both the application flow and individual functional flows should be tested.
- For both positive and negative testing, there are multiple permutations and combinations of functional flows.
- API testing is required for third-party applications integrated with the system.
- Coordinate with developers to identify the default Salesforce functionalities that complicate customization.
11. What exactly is Test-driven Development?
Test-driven development (TDD) is a software development process that consists of converting software requirements into test cases before software is developed, and testing the software against these test cases throughout the development process. As opposed to creating test cases after software has been developed. As part of extreme programming, test-driven development is related to test-first programming.
12. Describe the test-driven development cycle?
It involves the following steps:
Add a test: Adding a new feature begins by writing a test that passes if (and only if) the feature’s specifications are met. By looking at users and use cases, the developer can discover what specifications are needed. Test-driven development pays attention to requirements before writing code, which is a key benefit. Unit tests are usually written after code, in contrast to the usual practice.
Run all tests: This shows that new code is needed for the desired feature because the new test fails for expected reasons. In addition, the test harness works as expected. It means that the new test cannot have any flaws and will pass every time.
In elegant or hard code, whichever passes the new test is acceptable. Step 5 will still honing the code. There should be no additional functionality added.
It is now necessary to revise the new code until all tests pass. As a result, the new code will comply with test requirements and won’t break existing features.
The code is refactored for readability and maintainability, using tests after each refactor to ensure that functionality remains intact. It is important to remove hard-coded test data. After each refactor, run the test suite to ensure existing functionality has not been broken.
13. What is Salesforce Load Testing and What Strategies can be used?
The goal of load testing is to observe the behavior of an application under varying loads. A large number of users can be accommodated by Salesforce.com, a highly scalable platform. Salesforce.com is tested for performance bottlenecks by the platform’s developers.
Nonetheless, load testing becomes necessary when a newly introduced piece of code results in performance bottlenecks that need to be addressed. Performance testing tools such as HP LoadRunner and Apache JMeter can be used to load test Salesforce platforms.
A few strategies for Salesforce load testing include:
- Identifying how an application behaves under maximum load.
- Load testing should be done in the Sandbox environment rather than the production environment.
- It is necessary to identify important business processes and to prepare test scripts.
- It is necessary to execute test scripts and determine key metrics over time, such as Transactions per Second (TPS), Response Time, and Bytes throughput.
- After all the metrics are collected, the application needs to be evaluated for any performance bottlenecks.
- Be sure to inform other teams in the same environment about when load testing is being done if there are multiple teams working in the same environment.
14. How Salesforce Security Testing works and what tools can help with this?
Salesforce’s development team usually performs security testing on the platform. The ‘Application and Network Vulnerability Assessment Summaries’ provided by Salesforce should be reviewed prior to requesting a security test.
If a security test is still required after reviewing the summary, the Salesforce team can schedule a Security Assessment Test.
Following is a list of security testing tools offered by Salesforce:
Security Source Scanner for Salesforce.com:
Salesforce offers a static code analysis tool that is used for on-demand analysis of security source code. An overview report is generated with a list of potential security vulnerabilities based on a scan of the source code provided as input. A license is required to use a security source scanner.
Using the Secure Coding Library:
The standard library provided by Salesforce enables developers to follow the best coding practices in terms of security. As a result of using this library, developers are less likely to develop high-risk applications with security vulnerabilities.
15. Best practices for Salesforce testing?
Let’s talk about some best practices for testing salesforce apps now that we know what to test, where to test, and how to test.
Develop an effective test plan:
- Salesforce testing encompasses a host of business processes and components that require a solid test strategy.
- A clear understanding of the high-level objectives, the stakeholders involved, the testing phases involved, and the tools to be used must all be determined in this phase.
Create an integrated framework for testing:
- A variety of Salesforce Sandbox options are available for isolated Salesforce Sandbox testing.
- In order to test business-critical functions satisfactorily, all systems must be properly integrated into the sandbox so that integration tests can be performed in real-time scenarios like production.
Automated testing to speed up test coverage:
- When testing, automating critical and frequently repeated business processes, like the checkout or order fulfillment flow, can save a lot of time.
- Testing automation is possible with several types of API endpoints supported by Salesforce.
- Automation of API endpoints can be achieved using tools such as Postman, REST-Assured, and SoapUI.
16. Tips for Salesforce testing?
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 the 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.
- To test an application’s entire functionality, testers need to create functional flows that include both positive and negative flow paths.
- It is also necessary to create and test workflows that take into account various user roles.
- An effective test management tool, such as HP ALM, is essential for documenting test cases.
- In order to validate reports functionality, test data must be prepared.
17. Responsibilities and Roles of a Salesforce Tester?
It is more common for Salesforce testers to be referred to as ‘Quality Engineers’ rather than QA people, as Salesforce testing requires the testers to create complex test frameworks, understand the functionality of an application in depth, and work well with developers and project stakeholders.
Although your company may not use some of the default Salesforce functionalities, some cannot be removed. Testing should focus on the customized functionality developed by the organization instead of the default functionality.
Here are some of the main roles and responsibilities of a Salesforce tester.
- In order to understand the customizable features built into Salesforce, a tester needs to be in regular contact with the development team.
- Since Salesforce requirements are often complicated and require a lot of effort to understand by testers, the tester needs to coordinate with the business whenever necessary.
- As per Salesforce’s standard rule, the tester should ensure the code coverage doesn’t go below 75%.
- To ensure data consistency, the tester needs to conduct role-based testing.
- Any third-party applications integrated with Salesforce need to be tested for compatibility with Salesforce.
- To validate the complex flows that result in inconsistent results in Salesforce, a tester will need to be familiar with load testing tools such as JMeter.
- You will need to understand multiple flow models.