Question 40
An accounts-payable assistant sees a screenshot of an invoice in a chat. The image includes a supplier logo, a printed total and a handwritten adjustment. The user asks whether the visible total reflects that adjustment. The assistant must consider spatial context, not only printed characters. What capability should it use?
- Run printed-text OCR over the invoice screenshot and send the flat recognized text to a text-only model without preserving coordinates, handwritten notes, or visual grouping.
- Use a supported image-and-text understanding model, supply the invoice image, and ask for evidence-grounded interpretation of the total and adjustment.
- Retrieve the supplier’s usual invoice template from a lexical index and assume that its known field positions are sufficient to infer the current handwritten adjustment without passing the uploaded screenshot to a vision-capable analysis step.
- Extract the printed total with OCR and perform arithmetic on that value alone, treating any handwritten annotation outside the printed total field as optional commentary rather than evidence that changes the amount.
Explanation
Correct Answer
B:A vision-capable model can inspect the actual screenshot, read printed and handwritten fields where supported, and consider whether the adjustment is spatially tied to the total or another invoice line. Supply the image in the documented format, request explicit extraction of amounts and the claimed relationship, then independently validate arithmetic and flag illegible handwriting for human review. This is a more direct match than using only OCR text, because layout and handwritten placement matter. The model's judgment is evidence to review, not an authority to approve a financial payment.
Incorrect Answers
A:Printed-text OCR may recover the invoice number and printed total, making this a tempting low-cost preprocessing approach. The scenario also contains a handwritten adjustment whose relationship to the total must be inferred from the image. A flat text stream can omit handwriting, spatial placement, or marks that indicate which amount was changed. The supported multimodal image-and-text workflow has access to that visual context and can ground the interpretation in the actual screenshot.
C:Known vendor templates can improve invoice parsing and help locate printed totals, so this is a plausible assistive method. A handwritten adjustment may appear in a different location or modify the printed amount in a way a template cannot predict. The user asks about this specific visible image, not a historical vendor layout. The model needs the actual screenshot and its handwritten content with spatial relationships preserved before it can explain whether the total reflects the change.
D:Numerical validation of a recognized invoice total is useful, but a correct calculation over incomplete inputs can still return the wrong payable amount. The source image contains a handwritten adjustment, which may override or modify the printed figure. A text-only field extraction that ignores the annotation and its spatial connection to the total cannot answer the user’s question. The application must interpret both visual and textual evidence before reconciling the amount.
Question 41
An online banking support agent generates accurate text answers, but customers with visual impairments need to hear those responses spoken aloud. Voice input is not required. Which service capability directly adds the missing output modality?
- Convert the agent's response text to synthesized speech using an approved text-to-speech voice.
- Activate real-time speech recognition on the user’s microphone and send its transcribed text to the agent, leaving the agent’s outgoing answers as text only.
- Enable the browser’s accessibility live-region announcements for the generated text but provide no synthesis or audio-output path within the banking agent itself.
- Produce phonetic pronunciation hints and SSML markup for the reply, but return the markup as plain text without calling a speech-synthesis engine.
Explanation
Correct Answer
A:Azure Speech text-to-speech can synthesize the agent's approved text into an audio representation that the customer can hear, using a suitable supported voice and output format. The team should check speech accessibility, pronunciation of bank terms, supported language and latency, and avoid leaking sensitive details in shared listening environments. No microphone or recognition step is necessary because the system begins with text. This service adds the requested output modality while leaving the text-generation and factual-review path unchanged.
Incorrect Answers
B:Speech recognition is useful when customers speak commands, and it can be an important input-side component of a voice assistant. This application already produces correct written answers, and the accessibility requirement is for spoken output to customers with visual impairments. Recognizing additional microphone speech does not create an audio rendition of the agent’s text. The missing capability is approved text-to-speech synthesis of the outgoing answer, not new speech-to-text input.
C:An accessible live region may allow some assistive technologies, such as a user-installed screen reader, to announce updates, so this is a credible interface enhancement. It does not add the service-side spoken-audio modality requested for the support agent itself, especially for customers without configured screen-reading software. The required solution must generate approved audio from text through text-to-speech, while ordinary accessible markup can remain a complementary user-interface practice.
D:Pronunciation hints and SSML can refine how a speech service reads sensitive names, amounts, or abbreviations, making them meaningful tools in a spoken-response workflow. They are not audio samples by themselves. Sending markup to a browser as literal text would leave visually impaired customers with the same output-modality problem. The bank needs a supported synthesis service or voice capability to turn the approved answer into speech.
Question 42
A finance team ingests invoice PDFs. Some are photographed scans with complex columns, and downstream software needs typed dueDate and totalAmount fields associated with their original page. Which TWO pipeline capabilities must work together? (Select TWO.)
- Use an invoice-language model trained on earlier vendor invoices to predict the expected total and due date, then populate those values even if the currently scanned page is incomplete or unreadable.
- Run OCR and a typed document analyzer that returns dueDate and totalAmount, but store only normalized field values and discard the source PDF, page identifier and extracted field coordinates.
- Extract characters and document layout from scanned pages using supported OCR and layout processing.
- Run OCR on the scan and preserve the recognized text, but map each amount and date by reading order alone without retaining their original table cell or source-page associations.
- Use a document analyzer/schema to extract and validate dueDate and totalAmount with page/field provenance.
Explanation
Correct Answers
C:Image-only invoices need OCR or equivalent document parsing to recover printed words and numbers; complex columns also require respecting layout so an amount is attached to the correct row and label. Capture page and region information because the same document may contain subtotals, taxes and final balances on different locations. This stage is necessary to make the scanned material usable by later extraction. OCR alone does not guarantee that dueDate and totalAmount are correctly classified, so it must be coupled with a structured field analyzer and validation.
E:A document understanding or structured extraction analyzer can map recognized content and layout to the required dueDate and totalAmount fields, convert them to appropriate date/number types and provide source-page evidence where supported. Validate amount parsing, currency notation and uncertain handwriting before posting values to accounting software. This complements OCR/layout: the former makes characters available, while this step interprets which characters are the relevant business fields. Retaining field provenance allows auditors to check the selected values against the original PDF.
Incorrect Answers
A:Historical vendor patterns can be valuable for anomaly detection and reconciling a document after extraction. They cannot replace the invoice's actual total or due date when the downstream finance system needs source-grounded fields. A model can confidently predict a common billing amount that differs from a special charge on the current invoice. The pipeline must read scanned pixels and layout, extract values into typed fields and retain page provenance. Previous invoices should serve as a validation reference, not as evidence for an unobserved current charge.
B:OCR and typed extraction can produce accurate values from photographed invoices and are useful parts of the correct solution. The scenario explicitly requires linking each field to its original page. If the source identifiers and geometry are discarded, a reviewer cannot verify whether an extracted total came from the correct invoice, whether it was confused with a subtotal, or where a due date appeared. The pipeline must preserve traceable page and field evidence alongside validated structured output; values alone satisfy only part of the requirement.
D:OCR is a necessary part of extracting printed characters from image-only invoices, so adding it is a realistic improvement. Reading order alone can confuse invoice subtotal and total values or associate a date with the wrong field in multicolumn forms. The finance system needs typed dueDate and totalAmount with reliable page provenance. A supported layout and document analyzer plus schema validation must preserve both field meaning and originating locations.
Question 43
A Foundry-backed web application is deployed on Azure compute. Security policy forbids API keys in code, environment variables or container images, and the app needs permission to call an authorized model endpoint. Which authentication design best meets that requirement?
- Replace the embedded API key with a secret fetched from a Key Vault at startup, but retain the same broadly privileged permanent credential even though managed identity is supported.
- Authenticate model calls with an API key stored in an encrypted configuration vault and inject it into the application at runtime, despite the policy specifically forbidding API-key authentication for this workload.
- Disable authentication on the model endpoint because the app's network address appears to be private.
- Use a managed identity for the workload with the least-required role grants and obtain Microsoft Entra tokens through the supported credential flow.
Explanation
Correct Answer
D:Assign an appropriate managed identity to the Azure-hosted application and grant only the model or project permissions it actually needs. Acquire Entra access tokens through the current supported credential/client mechanism, protecting the token's audience and lifetime. This removes long-lived static model keys from code and images while preserving authenticated calls. Test least-privilege authorization and any private-network configuration separately; a successful network route does not imply API permission. This aligns with the security policy and provides a manageable credential lifecycle for production replicas.
Incorrect Answers
A:Key Vault can securely deliver secrets to applications and is valuable when a downstream service has no alternative to key authentication. This Foundry resource supports the workload’s managed identity, and security policy explicitly prohibits long-lived API keys in code or runtime configuration. Moving an unrestricted key to a vault improves its handling but does not eliminate the unnecessary secret. Use scoped Microsoft Entra credentials and workload identity for supported calls, with permission grants appropriate to the model operation.
B:A managed vault is far safer than committing a credential to source code, and secure secret injection is a common Azure deployment pattern. It still does not meet this organization’s explicit ban on using API keys in application configuration or images for the Foundry service. The requirement is an identity-based call path with an appropriately scoped service principal or managed identity and current Entra authorization. Better storage for a prohibited credential does not replace the approved authentication design.
C:Private networking reduces exposure of an endpoint but does not establish who is allowed to call an API. Removing authentication would turn a network routing control into the only security boundary, leaving unauthorized identities with possible access from permitted networks. The organization requires secure model invocation without stored keys, not unauthenticated invocation. Managed identity with role-based access addresses the identity requirement while network policy remains a complementary defense.
Question 44
An agent uses a reflection step to critique and revise its own draft answer. A bad input causes the agent to repeat the same critique indefinitely, consuming tokens without improving the result. What change creates a safe stopping rule?
- Terminate reflection when two consecutive drafts are nearly identical, then mark the answer successful without checking whether the policy evaluator or cited evidence improved.
- Increase the allowed reflection recursion depth without any quality condition or stopping limit.
- Bound reflection attempts by a configured iteration/token or latency budget and require measurable improvement before continuing.
- Limit reflection to a fixed large number of iterations but allow it to keep rewriting the same answer even when evaluation scores and cited evidence never improve.
Explanation
Correct Answer
C:Set a maximum number of reflection cycles and enforce token/time budgets around the drafting and critique stages. Compare revisions against a relevant quality or groundedness criterion, and stop when a step produces no meaningful improvement, returning the best validated answer or an explicit uncertainty state. Record loop counts and reasons for termination to analyze recurring failures. This keeps self-critique useful where it genuinely corrects an error while preventing endless repeated text and unexpected cost or latency in the service.
Incorrect Answers
A:Comparing successive drafts can be a useful signal that reflection is stuck; an unchanged draft should usually stop consuming more tokens. But a stopping condition is not the same as evidence of quality. The scenario requires a safe loop bound and measurable progress, not a blanket pass whenever the model repeats itself. A factual or safety failure may remain unchanged across two iterations. The application should stop and surface the unresolved failure or escalate, rather than incorrectly report that an unproductive reflection produced a valid answer.
B:A larger recursion depth without a stop condition merely allows the failure to continue longer. The original problem is not that the loop lacks enough attempts; it is that each iteration repeats the same critique without making progress. More iterations would waste additional tokens and could delay the user-facing response. A quality-gated maximum is necessary to distinguish productive revision from stagnation. The application should not assume repeated reflection eventually converges by itself.
D:A hard iteration cap is better than an unlimited loop because it establishes an upper bound on total compute. It can still waste many calls without improving quality if the agent repeats the same critique until the maximum is reached. The question requires a safe stopping rule tied to progress and cost. Add a reasonable turn/token or latency budget and detect repeated or non-improving states so the workflow exits early with an explicit disposition.
Question 45
A travel-planning agent has normal model inference time but end-to-end p95 response latency rose after connecting to an external hotel API. The team already has distributed tracing enabled. What trace analysis should it perform before upgrading the model deployment?
- Compare only the total request duration with the model's generation duration, without recording or correlating the hotel API tool span.
- Compare end-to-end slow-request traces and inspect the duration, errors and retry spans of the hotel API against the model's inference span.
- Lower the hotel's API timeout globally until p95 improves, without correlating slow trace spans or assessing whether valid bookings are being cancelled early.
- Assume every long response is caused by model token generation, regardless of the tool spans available in traces.
Explanation
Correct Answer
B:Use the correlation ID to open slow end-to-end traces, then compare the hotel API tool-call span with model inference and other pipeline stages. Inspect retry counts, HTTP status codes, network wait and timeouts for the external dependency. If inference remains stable while hotel calls account for the additional duration, address tool timeouts, caching, concurrency or circuit breaking rather than purchasing more model capacity. This analysis uses the evidence already present to locate the latency regression at the correct component boundary.
Incorrect Answers
A:A comparison of total and model latency is a useful high-level clue that a dependency might be slow. However, it cannot identify which external call caused the p95 regression, whether retries occurred, or where the request waited. The scenario says the hotel API was added recently, and the traces can be instrumented directly. Correlated tool-call spans and timeout details are required for reliable attribution.
C:A lower timeout can reduce how long a request blocks, so it is a plausible latency mitigation. It may also cause otherwise successful reservation lookups to fail and cannot show whether the hotel tool is actually the slow stage. Diagnose correlated invocation spans, retry counts and response status first. Then choose a timeout and fallback based on measured dependency behavior and the service's business requirements.
D:The measured model inference time is unchanged, so treating the model as the guaranteed bottleneck ignores a direct counterexample in the telemetry. The travel agent now includes a hotel API that may block or retry even when generation is fast. Upgrading a model deployment could increase cost without shortening third-party network waits. The trace should distinguish these stage durations before selecting a remedy. An unsupported assumption about token generation is weaker than the actual per-span timing data.
Question 46
A healthcare question-answering app uses a Foundry model to respond to sensitive patient queries. A new safety review requires stronger controls against disallowed medical advice and prompt-injection attempts, but the team must still audit both blocked and allowed responses. What is the best control?
- Configure model-appropriate safety filters and prompt-injection defenses, and monitor their decisions with protected audit metadata and representative evaluation cases.
- Strengthen the output safety filter but discard its decision categories and intervention outcomes from telemetry, leaving reviewers unable to audit allowed and blocked clinical responses.
- Add a static blocklist of risky medical keywords to the application, without evaluating clinical advice that is dangerous despite containing none of the listed terms.
- Ask a second text-generation call to summarize the first response’s medical safety, but let the original answer reach the patient before any policy check or logged decision.
Explanation
Correct Answer
A:Select supported content-safety filters, abuse detection and prompt-shield measures consistent with the application's medical risk policy and the deployed model's available controls. Evaluate real patient-like prompts, malicious instructions and borderline cases, and record relevant filtered outcomes without retaining unnecessary sensitive patient data. Provide safe escalation or refusal behavior when the model cannot offer reliable advice. Monitoring both allowed and blocked cases helps tune false positives and false negatives while preserving accountability. This is a layered policy boundary rather than a promise that the model will always self-police.
Incorrect Answers
B:A stricter output filter can reduce the risk of disallowed medical advice and is a legitimate part of a safety design. The scenario independently requires evidence about what was blocked or allowed, including prompt-injection attempts. Discarding policy decisions hides false positives and misses and prevents regression evaluation. Configure monitoring with appropriately redacted, access-controlled decision metadata, and test representative unsafe queries alongside model-appropriate filters and tool restrictions.
C:A keyword blocklist can reject some explicit requests and may be a useful defense-in-depth signal. Many unsafe suggestions use ordinary language, indirect prompts, or document-borne instructions that bypass a fixed word list. The healthcare assistant needs risk-appropriate model content controls, indirect prompt-injection defenses, and source- or policy-aware tests. A lexical rule alone cannot measure whether disallowed medical guidance was generated or whether the model followed malicious content.
D:A separate model-based reviewer can provide additional signals about content safety and can sometimes identify omissions the primary model misses. If that review occurs after publication, it cannot prevent unsafe advice from reaching patients. A model-only review also needs calibrated tests and auditable outcomes rather than unquestioned trust. Enforce appropriate generation and output safety checks before release and preserve protected policy-decision telemetry so reviewers can investigate failures.
Question 47
A utility customer portal receives a request to convert a stored electricity meter reading from kWh to Wh. The exact numeric conversion is defined in code, and no ambiguous language interpretation remains after the requested unit is parsed. Which execution design is most reliable and economical?
- Use the agent’s code-interpreter tool to evaluate each unit conversion with a general Python expression, without defining the permitted units or validating numeric input before execution.
- Use an agent's built-in code-execution tool for the kWh-to-Wh calculation on every request instead of calling the existing verified unit-conversion function.
- Use a calculator-enabled agent but parse the meter reading as an untyped string and allow locale separators or unit suffixes to be silently discarded.
- Route the validated conversion into a deterministic rules/calculation function, and use the language model only for explanation if needed.
Explanation
Correct Answer
D:Once the input is normalized and units are validated, a small deterministic function can multiply the kWh value by 1,000 to obtain Wh, with explicit handling of precision and input boundaries. This makes the result reproducible, easy to test and cheaper than repeated generative inference. A model may translate a user's wording or explain the conversion, but the arithmetic source of truth remains the verified function. Routing fixed calculations away from open-ended generation meets the reliability and efficiency requirements.
Incorrect Answers
A:A code interpreter can calculate numerical conversions, so this is superficially credible. However, the meter-reading application needs a deterministic kWh-to-Wh rule, not a flexible execution environment for a single multiplication. Unvalidated units, locale separators or free-form expressions can introduce wrong results and unnecessary tool exposure. A narrowly typed calculator or conversion function with explicit units is simpler, auditable and less likely to misinterpret the input.
B:A code-execution tool can perform arithmetic and might even produce a correct conversion, making this more realistic than an unrelated vision model. But this application already has a deterministic conversion function with explicit units, tested input types and known behavior. Generating or executing code per request introduces unnecessary complexity and failure opportunities for a fixed formula. Invoke the existing validated function and report the result.
C:Delegating multiplication to a calculator can be mathematically sound once the quantity is correctly parsed. Here the risk is interpreting the input: a value like '1,250 kWh' may be treated as 1.250 or 1250 depending on locale. Dropping suffixes can also confuse units. The operation should validate numeric input and units, apply the fixed conversion and preserve provenance rather than rely on permissive parsing.
Question 48
A catalog team uses an image-understanding model to produce one-sentence product captions for an accessible shopping site. Reviews show that the model often adds unsupported claims such as 'machine washable' when the image only shows color and shape. What should the captioning pipeline change?
- Replace every caption with a generic 'product image' label, even when a useful visible description is available.
- Increase the image-caption model’s maximum response length and prompt it for a more polished description, but omit evidence checks for materials, features and brand claims not visible in the photo.
- Use a constrained caption instruction and output schema limited to visible attributes, verify uncertain claims, and keep the description concise.
- Crop the product image to the central object before captioning and assume any label or peripheral feature outside the crop is irrelevant.
Explanation
Correct Answer
C:Specify a short caption format that names only attributes observable from the supplied image, such as garment color, approximate cut or visible objects, with conditional language for uncertain details. Test descriptions against the actual photographs and reject claims about fabric composition, care instructions or guarantees unless authoritative catalog metadata separately supports them. The one-sentence constraint supports usability and accessibility, while evidence checks prevent marketing embellishment. A model can generate useful captions without pretending that every unseen property is visually verifiable.
Incorrect Answers
A:A generic label supplies almost no distinguishing information for users who cannot see the photograph and does not satisfy the catalog's need for useful one-sentence product descriptions. It avoids some unsupported claims only by eliminating the valuable detail the model can safely describe. Accessibility benefits from concise but meaningful descriptions of visible contents or image function. The correct remedy is evidence-grounded specificity, not uniform text that conceals product differences.
B:Longer, more polished captions can sound commercially useful but can also invent product features absent from an image. The catalog needs concise, accessible, evidence-based descriptions, especially where the photograph alone cannot establish hidden materials or compatibility. A larger token budget does not validate claims or guarantee useful alt text. Constrain the generation to visible attributes and the actual purpose of the image, then review uncertain statements rather than rewarding verbosity.
D:Cropping to an object can be a reasonable captioning technique when clutter is harmful. However, it can hide text, safety warnings or visual features that identify the product, producing an unsupported or incomplete accessible description. The current problem is that captions omit relevant visible facts. The team should retain necessary image context, distinguish observation from speculation and test caption specificity rather than assume a center crop preserves all evidence.
Question 49
A warehouse voice assistant receives spoken worker requests such as 'show pallet 814' through a microphone. Its inventory tool accepts structured text commands, not audio bytes. The app currently forwards microphone packets directly to the tool and gets invalid-input errors. What processing stage is missing?
- Translate the worker’s spoken utterance into a standardized target language, but forward the translated audio waveform to the inventory tool rather than recognized text and validated fields.
- Convert spoken audio into recognized text using supported speech-to-text, then parse and validate the pallet identifier before calling inventory tools.
- Use streaming speech recognition to generate a transcript, then submit its entire free-form text to the inventory API as orderId rather than parsing the required typed pallet identifier.
- Use speech translation to normalize the worker’s language, but pass the translated utterance to the inventory API without mapping the recognized pallet number into its required command schema.
Explanation
Correct Answer
B:Use a supported speech-to-text service or SDK to transcribe the worker's utterance, accounting for warehouse noise, accents and numeric identifiers. Parse the resulting text into a constrained intent and pallet ID, reject low-confidence or ambiguous recognition, and confirm consequential actions before sending structured arguments to inventory tools. This converts the user's spoken request into the input contract the system actually accepts. Audio transcription and business command validation remain distinct steps: one produces words, the other decides which inventory operation is allowed.
Incorrect Answers
A:Speech translation can help a multilingual warehouse team when users speak different languages. The current failure is a data-contract mismatch: the inventory tool requires structured text arguments, not an audio waveform in any language. Translating speech into another acoustic stream would not extract the numeric pallet identifier or validate it. A recognition stage that emits text, followed by deterministic parsing and authorization, is the necessary step before tool invocation.
C:Streaming recognition is a legitimate way to turn the warehouse microphone signal into text, so this choice addresses the first missing modality boundary. Yet the inventory tool accepts a structured command, not an arbitrary sentence. Submitting 'show pallet 814' as the literal orderId or a raw JSON field violates its input contract and may select no record. The application must extract, validate and authorize the numeric pallet identifier before invoking the tool.
D:Speech translation can support workers speaking different languages, and its text output may be understandable to employees. It is not by itself a typed interface adapter for an inventory tool. A translated sentence still includes verbs, context and potentially ambiguous item numbers, whereas the API needs a validated pallet identifier and operation. The necessary workflow is speech recognition followed by command parsing, type checks and an authorized inventory lookup, with translation used only where appropriate.
Question 50
A contract-review agent must summarize a 40-page scanned agreement and answer questions about clauses while retaining section and page provenance. The company wants to reuse a supported Azure Content Understanding analyzer to turn the document into readable structured evidence for the agent. What design fits?
- Configure an appropriate Content Understanding document analyzer to extract text/layout and structured or Markdown evidence with locations, then pass validated relevant passages to the agent.
- Produce one detailed narrative summary using flat OCR text from the scanned agreement, but discard the extracted page and section metadata after summarization.
- Use a generic OCR service to recover readable contract text, then pass it directly to a summarizer without preserving table relationships, headings or page locations.
- Extract plain OCR text from the scanned contract and send it to a summarizer without retaining the originating page and section of each passage.
Explanation
Correct Answer
A:Create or select a supported Content Understanding analyzer for document modality and suitable output schema, extracting readable text, document layout, Markdown or structured fields together with page and section provenance. Preserve source identifiers and review low-confidence or inconsistent extraction before the agent uses passages for grounded answers. Use a production-supported API version for production work and do not assume preview-only features have a production SLA. This yields a retrievable evidence representation that can support both contract summaries and cited clause questions without treating the model's reconstruction as the original legal text.
Incorrect Answers
B:A comprehensive prose summary can make a long contract accessible and may cover its major business terms. It cannot provide exact verifiable citations when page and section provenance were removed before the agent receives the evidence. The user must answer clause-level questions against the original agreement, not just read a general synopsis. Retain layout and source positions from the document analyzer and pass the relevant, validated passages to the agent rather than rely on unsupported summary recollection.
C:Generic OCR is a legitimate starting point for a scanned document and can recover many printed words. A 40-page agreement may contain nested clauses, tables, and footnotes whose legal meaning depends on layout and cross-references. Flattening that structure makes it hard to answer precisely or cite the controlling page. Use the supported document analyzer to retain structural evidence and validate which extracted passage supports each claim, instead of assuming OCR text alone satisfies the provenance requirement.
D:OCR is necessary for scans and can provide enough words to create a general contract synopsis. This workflow nevertheless discards the page and section metadata expressly required by the question. A generated citation from a flat text stream may point to the wrong clause, especially across forty pages with similar headings. A document analyzer that retains layout and source locations supports both extraction and verification of each summarized claim, which plain OCR without provenance cannot guarantee.
Developing AI Apps and Agents on Azure (AI-103) Practice Tests