Free CAD sample questions with answers
Try these 10 free CAD practice questions covering scoped applications, server and client scripting, security and integrations. Choose your answer, then check it to see an explanation for every option.
These questions are original and written from the official exam blueprint. They are not real exam questions. The full course has 237 questions in 4 timed exams.
New to this exam? Read the ServiceNow CAD Study Guide: How to Pass the Certified Application Developer Exam first.
- Question 1 of 10Designing and Creating an ApplicationSingle answer
Show answer & explanations
Correct answer: A
- A. Their names are prefixed with the application's scope namespace (x_ followed by the vendor prefix and app identifier)Correct. The namespace keeps application artifacts unique and isolated.
- B. They are automatically accessible for write from all other scopesWrite access from other scopes depends on the Application Access settings.
- C. They are always created in the Global scopeArtifacts created in a scoped app belong to that scope.
- D. They cannot extend existing tables such as TaskScoped tables can extend Task and other extensible tables.
Explanation: Application scope protects an app's artifacts from unintended changes and name collisions. The namespace is applied to tables, script includes and other artifacts.
- Question 2 of 10Application AutomationSingle answer
Show answer & explanations
Correct answer: D
- A. update()update() saves a record; it does not run a query.
- B. get()get() retrieves a single record by sys_id or field value; it is not used before next().
- C. execute()Not a GlideRecord method.
- D. query()Correct. query() runs the database query built with addQuery/addEncodedQuery.
Explanation: Typical pattern: var gr = new GlideRecord('incident'); gr.addActiveQuery(); gr.query(); while (gr.next()) { ... }.
- Question 3 of 10Application AutomationSingle answer
Show answer & explanations
Correct answer: B
- A. afterAfter rules run once the record is saved; changing current would require another update.
- B. beforeCorrect. Changes to current in a before rule are saved automatically with the record.
- C. asyncAsync rules run later in the background and are meant for work that does not affect the current transaction.
- D. displayDisplay rules run when a form loads, not on save.
Explanation: Avoid calling current.update() in before or after rules on the same record; it causes recursion and extra database writes.
- Question 4 of 10Application User InterfaceSingle answer
Show answer & explanations
Correct answer: C
- A. Use a synchronous GlideRecord query in an onLoad client scriptClient-side GlideRecord is inefficient and not recommended.
- B. Use an async Business RuleAsync rules run after the transaction and cannot pass data to the form.
- C. Populate g_scratchpad in a display Business RuleCorrect. Display rules run before the form is sent to the browser and can pass data through g_scratchpad.
- D. Store the value in a hidden field on every recordThis adds unnecessary data to the table.
Explanation: g_scratchpad avoids extra round trips to the server and keeps the form fast.
- Question 5 of 10Application User InterfaceSingle answer
Show answer & explanations
Correct answer: A
- A. onChangeCorrect. onChange scripts run when the configured field's value changes.
- B. onSubmitRuns when the form is submitted.
- C. onLoadRuns when the form loads.
- D. onCellEditRuns when a value is changed in a list, not on a form.
Explanation: onChange scripts also run on form load (with isLoading = true), so scripts usually return early when isLoading is true.
- Question 6 of 10Application AutomationSingle answer
Show answer & explanations
Correct answer: B
- A. A UI policy with a scriptUI policy scripts run in the browser.
- B. GlideAjax with a client-callable Script IncludeCorrect. GlideAjax sends an asynchronous request to a Script Include that extends AbstractAjaxProcessor.
- C. g_form.getReference() for all server logicgetReference retrieves a referenced record only; it does not run custom server logic.
- D. A before Business RuleBusiness rules cannot be called from the client.
Explanation: GlideAjax keeps the UI responsive and lets you reuse server logic. Always use the asynchronous getXMLAnswer or callback pattern.
- Question 7 of 10Security and Restricting AccessSingle answer
Show answer & explanations
Correct answer: C
- A. The application's update setUpdate sets move configuration; they do not set runtime access.
- B. System Properties in the Global scopeCross-scope table access is configured per table.
- C. Application Access settings on the tableCorrect. Settings such as 'Accessible from', 'Can read' and 'Can create/update/delete' control cross-scope access.
- D. A UI policy on the table's formUI policies control form behaviour, not scope permissions.
Explanation: Application Access settings complement ACLs: ACLs control which users can access data, while Application Access controls which applications can.
- Question 8 of 10Managing ApplicationsSingle answer
Show answer & explanations
Correct answer: C
- A. Recreate the application manually on each instanceInefficient and inconsistent.
- B. Clone the development instance over productionClones overwrite data and are not an application deployment method.
- C. Publish it to the application repositoryCorrect. Publishing creates a version that can be installed on other company instances.
- D. Export each record as XML and import it manuallyError-prone and loses versioning.
Explanation: Application repository publishing supports versioning and upgrades. Source control integration (Git) is recommended for team development.
- Question 9 of 10Working with External DataSingle answer
Show answer & explanations
Correct answer: A
- A. sn_ws.RESTMessageV2Correct. RESTMessageV2 sends REST requests, optionally based on a REST Message record.
- B. g_formg_form is a client-side form API.
- C. GlideAjaxGlideAjax calls the ServiceNow server from the client.
- D. GlideRecordGlideRecord works with the database, not external HTTP calls.
Explanation: Define endpoints and authentication in a REST Message record and call it from scripts or use IntegrationHub spokes and the REST step in Flow Designer.
- Question 10 of 10Application AutomationSingle answer
Show answer & explanations
Correct answer: C
- A. current.setAbortAction()Stops a database action in a Business Rule.
- B. gs.log()Writes to the system log.
- C. gs.eventQueue()Correct. gs.eventQueue(name, record, parm1, parm2) adds an event to the event queue.
- D. gs.addInfoMessage()Shows a message to the user; it does not create an event.
Explanation: Events decouple the code that detects something from the code that reacts to it. Register the event in the Event Registry before using it.
Your result
0 / 10