Test Case Design
Below are some best practices for designing Provar test cases.
Reusable tests
Wherever possible, Callable test cases should be used to maximize reuse.
- Always use input and return parameters to override data (avoid using variables where Scope = Test Folder or Test Run).
- Try to ensure the test is flexible to support multiple use cases. The use of an If statement can help support different use cases
- Create multiple Callable Tests if the test case is becoming overly complex and difficult to support
- Choose a meaningful Callable test case name and provide a meaningful summary description. The summary description will be displayed in the Assistant view when using the Callable Test.
Readable tests
It is important that team members can run and understand each other’s tests.
Note: Group Steps are recommended for organizing and adding comments to your test cases. These can be added at any level and can help to reduce complexity.
Create meaningful folder structures in the Navigator and conform to an agreed naming standard for Test Cases.
Maintainable tests
Ease of maintenance must be considered when creating test cases.
- Reduce the number of UI test steps by using SFDC API test steps.
- Reduce the number of UI test steps by allowing Provar to navigate directly to SFDC layouts. For this, you can use the Navigate option on any UI On Screen Test Step.
- Do not rely on existing data in your test environment; always create what you need for your test case.
- Avoid unreliable field locators.
Field locators
The following types of locators should be avoided:
- Salesforce IDs: e.g., 00eb0000000uFma cannot be guaranteed between environments. Use Provar’s metadata integration instead.
- J_ids for Visualforce pages: e.g., j_id0:j_id1:j_id2:j_id32:j_id33 These IDs can change frequently. Use Provar’s Visualforce locators instead.
- Extremely long XPaths (e.g. /html/body/div[4]/div/div[2]/div[2]/div[1]/div/table[1]/tbody/tr[2]/td[2]): When testing against non-Salesforce pages, Provar presents the option to use an XPath editor. This is recommended for creating an optimized XPath.
Other standards
- A peer review process should be used in the creation of test cases.
- If test execution is on multiple Orgs or Environments, all these Orgs/Environments should be consistent to avoid incorrect failure of test cases.
- Transient data (not present after a sandbox refresh) should not be used in tests.
- Page Objects should not have multiple definitions for the same field.
- If modifying data in your Org, ensure it is returned to its original state.
- Tests should be able to run using the Run mode without breakpoints or debugging.
- The Sleep test step should be used sparingly. Use Page Object Timeouts for UI Testing or Wait For for Asynchronous Testing for better control.
- All tests should use group steps to help explain the functional logic.
- Screenshots should be added at essential points such as UI Asserts.
- Test cases should be backed up in the Configuration management system of choice.
- When performing table testing, the With Row should use a WHERE clause in preference to a hardcoded Row Number.
For more information, check out this course on University of Provar.
Documentation library
- Provar Automation
- System Requirements
- Browser and Driver Recommendations
- Installing Provar Automation
- Updating Provar Automation
- Licensing Provar
- Granting Org Permissions to Provar Automation
- Optimizing Org and Connection Metadata Processing in Provar
- Using Provar Automation
- Provar Automation
- Creating a New Test Project
- Import Test Project from a File
- Import Test Project from a Remote Repository
- Import Test Project from Local Repository
- Commit a Local Test Project to Source Control
- API Testing
- Behavior-Driven Development
- Consolidating Multiple Test Execution Reports
- Creating Test Cases
- Custom Table Mapping
- Functions
- Debugging Tests
- Defining a Namespace Prefix on a Connection
- Defining Proxy Settings
- Environment Management
- Exporting Test Cases into a PDF
- Exporting Test Projects
- Japanese Language Support
- Override Auto-Retry for Test Step
- Mapping and Executing the Lightning Article Editor in Provar
- Managing Test Steps
- Namespace Org Testing
- NitroX
- Provar Test Builder
- ProvarDX
- Refresh and Recompile
- Reintroduction of CLI License Check
- Reload Org Cache
- Reporting
- Running Tests
- Searching Provar with Find Usages
- Secrets Management and Encryption
- Setup and Teardown Test Cases
- Tags and Service Level Agreements (SLAs)
- Test Cycles
- Test Data Generation
- Test Plans
- Testing Browser Options
- Tooltip Testing
- Using the Test Palette
- Using Custom APIs
- Callable Tests
- Data-Driven Testing
- Page Objects
- Block Locator Strategies
- Introduction to XPaths
- Creating an XPath
- JavaScript Locator Support
- Label Locator Strategies
- Maintaining Page Objects
- Mapping Non-Salesforce fields
- Page Object Operations
- ProvarX™
- Refresh and Reselect Field Locators in Test Builder
- Using Java Method Annotations for Custom Objects
- Applications Testing
- Provar Manager
- How to Use Provar Manager
- Provar Manager Setup
- Provar Manager Integrations
- Release Management
- Test Management
- Test Operations
- Provar Manager and Provar Automation
- Setting Up a Connection to Provar Manager
- Object Mapping Between Automation and Manager
- How to Upload Test Plans, Test Plan Folders, Test Plan Instances, and Test Cases
- Provar Manager Filters
- Uploading Callable Test Cases in Provar Manager
- Uploading Test Steps in Provar Manager
- How to Know if a File in Automation is Linked in Test Manager
- Test Execution Reporting
- Metadata Coverage with Manager
- Provar Grid
- DevOps
- Introduction to Provar DevOps
- Introduction to Test Scheduling
- Apache Ant
- Configuration for Sending Emails via the Automation Command Line Interface
- Continuous Integration
- AutoRABIT Salesforce DevOps in Provar Test
- Azure DevOps
- Running a Provar CI Task in Azure DevOps Pipelines
- Configuring the Automation secrets password in Microsoft Azure Pipelines
- Parallel Execution in Microsoft Azure Pipelines using Multiple build.xml Files
- Parallel Execution in Microsoft Azure Pipelines using Targets
- Parallel execution in Microsoft Azure Pipelines using Test Plans
- Bitbucket Pipelines
- CircleCI
- Copado
- Docker
- Flosum
- Gearset
- GitHub Actions
- Integrating GitHub Actions CI to Run Automation CI Task
- Remote Trigger in GitHub Actions
- Parameterization using Environment Variables in GitHub Actions
- Parallel Execution in GitHub Actions using Multiple build.xml Files
- Parallel Execution in GitHub Actions using Targets
- Parallel Execution in GitHub Actions using Test Plan
- Parallel Execution in GitHub Actions using Job Matrix
- GitLab Continuous Integration
- Travis CI
- Jenkins
- Execution Environment Security Configuration
- Provar Jenkins Plugin
- Parallel Execution
- Running Provar on Linux
- Reporting
- Salesforce DX
- Git
- Version Control
- Salesforce Testing
- Recommended Practices
- Salesforce Connection Best Practices
- Improve Your Metadata Performance
- Java 21 Upgrade
- Testing Best Practices
- Automation Planning
- Supported Testing Phases
- Provar Naming Standards
- Test Case Design
- Create records via API
- Avoid using static values
- Abort Unused Test Sessions/Runs
- Avoid Metadata performance issues
- Increase auto-retry waits for steps using a global variable
- Create different page objects for different pages
- The Best Ways to Change Callable Test Case Locations
- Working with the .testProject file and .secrets file
- Best practices for the .provarCaches folder
- Best practices for .pageObject files
- Troubleshooting
- How to Use Keytool Command for Importing Certificates
- Installing Provar After Upgrading to macOS Catalina
- Browsers
- Configurations and Permissions
- Connections
- DevOps
- Error Messages
- Provar Manager 3.0 Install Error Resolution
- Provar Manager Test Case Upload Resolution
- Administrator has Blocked Access to Client
- JavascriptException: Javascript Error
- macOS Big Sur Upgrade
- Resolving Failed to Create ChromeDriver Error
- Resolving Jenkins License Missing Error
- Resolving Metadata Timeout Errors
- Test Execution Fails – Firefox Not Installed
- Selenium 4 Upgrade
- Licensing, Installation and Firewalls
- Memory
- Test Builder and Test Cases
- Release Notes