Correct Answer: A,B
Declarative customizations are the ones that can be done using the point-and-click tools provided by Salesforce, such as Process Builder, Flow Builder, Lightning App Builder, etc. Code customizations are the ones that require writing Apex, Visualforce, or Lightning Web Components. Some of the benefits of using declarative customizations over code are:
* Declarative customizations automatically update with each Salesforce release. This means that whenever Salesforce improves or adds a new feature to its declarative tools, the existing customizations will be compatible and take advantage of the enhancement without any additional effort from the developer1.
* Declarative customizations generally require less maintenance. This is because declarative customizations are easier to create, modify, and debug than code customizations. They also do not require writing test classes or deploying to different environments, which can save time and resources2.
The other two options are not true benefits of declarative customizations over code:
* Declarative customizations do not automatically generate test classes. Test classes are only required for code customizations, and they have to be written manually by the developer. Test classes are used to ensure the quality and functionality of the code, and to meet the code coverage requirement for deployment3.
* Declarative customizations can still generate run time errors. Run time errors are the ones that occur when the application is running, and they can be caused by various factors, such as invalid data, logic errors, or system limits. Declarative customizations are not immune to run time errors, and they have to be handled properly by the developer using error handling techniques.
References:
* Clicks Not Code: Benefits of Declarative Vs. Imperative Programming - Salesforce)
* When to Click Instead of Write Code - Salesforce Developers)
* Apex Testing - Salesforce Developers)
* Error Handling in Flows - Salesforce Help)