Microsoft Dynamics 365: Finance and Operations Developer Associate (MB-500)

Practice MB-500 questions for Develop and test code (20–25%). These original questions are grounded in verified Microsoft Learn content.

Q01 - Question

A developer records a vendor invoice process with Task recorder. The team wants Visual Studio to generate test code from the recording so the test can run from Test Explorer after a build. What should the developer do?

Domain: Develop and test code (20–25%) Type: Single choice

C is correct.

Explanation: Use the developer recording format for test code generation. In Visual Studio, select Dynamics 365 > Addins > Import task recording, select the XML file, and select a model. The model must reference TestEssentials for the generated test to build successfully.

A is incorrect: Saving to Lifecycle Services (LCS) publishes the recording to a business process in a BPM library. It does not generate test code in Visual Studio.

B is incorrect: A Word document contains the recorded steps and screenshots. It does not generate test code, so you must write the code manually.

D is incorrect: The .axtr package is used to play a task guide, maintain the recording, or edit annotations. Also, the target model must reference TestEssentials, so any model does not meet the requirement.

Learn more in Microsoft Learn

Q02 - Question

You need to use Chain of Command to wrap a public static method on a class. The base method declares a parameter with a default value of 1. The method isn't marked Replaceable. Which two requirements must the wrapper method meet? Each correct answer presents part of the solution.

Domain: Develop and test code (20–25%) Type: Multiple choice

A and C are correct.

Explanation: The evidence supports A and C because when you wrap a static method, the method in the extension class must include the static keyword. Additionally, if the base method has a default parameter value, you must declare the parameter in the wrapper without the default value.

B is incorrect: The wrapper must not repeat the default value. You must declare the parameter without it.

D is incorrect: The call to next must be in the first-level statements of the method body. You can't call next conditionally in an if statement unless the method is marked Replaceable.

Learn more in Microsoft Learn

Q03 - Question

Your company must add new methods and state to a class that is defined in another model. The customization must remain upgradeable, and you must not change the base code. What should you do?

Domain: Develop and test code (20–25%) Type: Single choice

B is correct.

Explanation: The evidence supports B because a class extension adds methods and state to artifacts in other models without recompiling or overlayering those models. You define the extension in a new model that depends on the model of the original artifact. Because the base code isn't changed, your customizations remain upgradeable.

A is incorrect: Overlayering changes the original model. Class extensions are designed to avoid overlayering.

C is incorrect: Extension classes must be marked final, and the runtime system instantiates them. You can't derive from an extension class.

D is incorrect: Changing and recompiling the original model changes the base code. That approach doesn't keep the customization upgradeable.

Learn more in Microsoft Learn

Q04 - Question

You are designing a base class in X++. One method contains validation logic. Code in other unrelated classes must not call this method. Subclasses must be able to call and override it. Which accessor keyword should you use for the method?

Domain: Develop and test code (20–25%) Type: Single choice

A is correct.

Explanation: The evidence states that methods declared as protected can only be called from methods in the same class or methods in a subclass of that class, and they can still be overridden in a subclass.

B is incorrect: Methods declared as private can only be called from methods within the same class and cannot be overridden in a subclass.

C is incorrect: Methods declared as internal can only be called from methods in classes that are defined in the same model, which does not restrict access to only subclasses.

D is incorrect: Methods declared as public can be called from anywhere that the class is accessible, which does not prevent calls from unrelated classes.

Learn more in Microsoft Learn

Q05 - Question

Your code calculates a lookup result for each combination of customer account, item group, and company. The result is static and is requested often by many users. You want the system to calculate the result once and reuse it across all user sessions on the server. Which caching approach should you use?

Domain: Develop and test code (20–25%) Type: Single choice

C is correct.

Explanation: The evidence states that SysGlobalObjectCache is server-shared caching across all user sessions on a specific server, used to store static values so the system does not need to reread or calculate them for each session.

A is incorrect: SysGlobalCache refers to a single client session cache that is not accessible in other system threads.

B is incorrect: A singleton class creates an instance for the user session, meaning it is not shared across all user sessions on the server.

D is incorrect: A disposable context class is used to transfer parameters without changing a method signature, not to share cached values across sessions.

Learn more in Microsoft Learn

Q06 - Question

An implementation team plans to use Data task automation to run import and export tasks that use integration APIs. The team wants to follow the recommended approach. How should the team use these tasks?

Domain: Develop and test code (20–25%) Type: Single choice

B is correct.

Explanation: Data task automation can run in any cloud environment. However, don't run import or export tasks that use integration APIs in a production environment. Use Data task automation that involves integration APIs only for automated testing.

A is incorrect: Go-live cutover still uses the production environment, where integration API import and export tasks aren't recommended.

C is incorrect: Changing the run time doesn't change the recommendation. Integration API tasks shouldn't run in production at any time.

D is incorrect: Data task automation can run in any cloud environment, but integration API import and export tasks have a production restriction.

Learn more in Microsoft Learn

Q07 - Question

Two testers use the Regression suite automation tool (RSAT) to run separate sets of test cases. The project has one test environment, and the team wants to reduce the total run time without adding environments. What should the team do?

Domain: Develop and test code (20–25%) Type: Single choice

A is correct.

Explanation: RSAT supports parallel execution. Multiple users can run multiple RSAT instances on the same environment. Configure how many concurrent instances the environment can process to optimize use of environment resources.

B is incorrect: Running test cases sequentially increases total run time. Parallel execution lets you run tests at the same time.

C is incorrect: In the trial without Azure DevOps, only the user who uploads the task recordings can run the test automations.

D is incorrect: Parallel execution means you don't need multiple environments to run test scripts, which saves time and money.

Learn more in Microsoft Learn

Q08 - Question

A test class that extends SysTestCase passes when it runs alone but fails when it runs after other tests. The developer finds that data left in the database by earlier tests affects the results. The developer must isolate the tests so that no data is persisted, without writing cleanup code. What should the developer do?

Domain: Develop and test code (20–25%) Type: Single choice

B is correct.

Explanation: A reliable test must pass or fail consistently, regardless of other tests. Decorate the test class with the SysTestTransaction attribute. The AutoRollback mode rolls back all transactions so that no data is persisted.

A is incorrect: this.parmExceptionExpected(true) asserts that a thrown error is the correct behavior. It does not roll back data.

C is incorrect: The SysTestMethod attribute identifies a test method. It does not isolate the test data between tests.

D is incorrect: The Data management workspace imports data into entities. Importing data before each run is a manual step and does not roll back data that each test writes.

Learn more in Microsoft Learn

Q09 - Question

The FleetManagement module contains several models. A developer must run the best practice check from the command prompt for all items in the FleetManagement model only. Items in the other models in the module must not be checked. Which command should the developer use?

Domain: Develop and test code (20–25%) Type: Single choice

D is correct.

Explanation: Add the -model parameter with -all to run the best practice check on all items in one model in the module. This command limits the check to the FleetManagement model.

A is incorrect: Without the -model parameter, -all runs the check on all items in all models in the module. This includes the models that must not be checked.

B is incorrect: form:* checks only the forms in the module. Classes and other element types in the model are not checked.

C is incorrect: This command checks only the specified class and form. It does not check all items in the model.

Learn more in Microsoft Learn

Q10 - Question

Your team maintains a large extension model for finance and operations apps. Builds take a long time, and dependency management is difficult. You need to improve compile times and keep customizations maintainable. Which two actions should you take? Each correct answer presents part of the solution.

Domain: Develop and test code (20–25%) Type: Multi-select

B and D are correct.

Explanation: The evidence supports B and D because referencing only the models that your extension needs reduces compile times and dependency management overhead. Keeping customizations modular and reusable by breaking large extensions into smaller, independent modules is also a recommended best practice.

A is incorrect: Referencing models that you do not need adds to compile times and dependency management overhead.

C is incorrect: Models that are in the same package as the base objects are associated with overlayering, which causes longer compile cycles and larger package distributions.

Learn more in Microsoft Learn

Take the MB-500 practice test · Read the MB-500 study guide