- Home
- Guidewire
- Guidewire Certified Associate
- InsuranceSuite-Developer
- InsuranceSuite-Developer - Associate Certification - InsuranceSuite Developer - Mammoth Proctored Exam
Guidewire InsuranceSuite-Developer Associate Certification - InsuranceSuite Developer - Mammoth Proctored Exam Exam Practice Test
Total 77 questions
Associate Certification - InsuranceSuite Developer - Mammoth Proctored Exam Questions and Answers
Given the following code sample:
Code snippet
var newBundle = gw.transaction.Transaction.newBundle()
var targetCo = gw.api.database.Query.make(ABCompany)
targetCo.compare(ABCompany#Name, Equals, "Acme Brick Co.")
var company = targetCo.select().AtMostOneRow
company.Notes = "TBD"
Following best practices, what two items should be changed to create a bundle and commit this data change to the database? (Select two)
Options:
End with newBundle.commit()
Add Notes to the bundle
Add targetCo to the bundle
Add company to the bundle
Add runWithNewBundle(\newBundle -> { to the first line
Answer:
A, DExplanation:
In Guidewire InsuranceSuite,Bundle Managementis the core mechanism for managing database transactions. When you retrieve an entity via a query, as seen in the code sample, that entity is inread-onlymode. To modify it and persist those changes, the entity must be associated with aBundle.
1. Adding the Entity to the Bundle (Option D)
The code sample retrieves a company object, but it is currently "read-only" because it was fetched outside of the newBundle context. To make the entity editable, you must explicitly add it to the bundle using the add() method:
Code snippet
company = newBundle.add(company)
company.Notes = "TBD"
By adding the entity to the bundle, Gosu creates a "writable" clone of the object. Any changes made to the properties of this specific instance are tracked by the bundle. Without this step, setting company.Notes = "TBD" would result in a runtime exception stating that the entity is read-only.
2. Committing the Changes (Option A)
A bundle acts as a temporary "staging area" for changes. Simply modifying an object within a bundle does not automatically update the database. To persist the data, the developer must explicitly call thecommitmethod:
Code snippet
newBundle.commit()
This triggers the database transaction, executing the necessary SQL UPDATE statements and clearing the bundle's state upon success.
Why other options are incorrect:*Option Edescribes the syntax for a runWithNewBundle block. While using runWithNewBundle is considered a best practice because it handles the commit and exception logic automatically, the question specifically asks what needs to be changed in theprovidedprocedural code.
Option B and Care incorrect because you do not add "Notes" (a property) or a "Query" object to a bundle; you only addEntitiesthat you intend to modify or create.
There is a requirement to add fields specific to Auto Rental Agencies. The additional fields required are; Auto Renta License, Offers Roadside Assistance, and Offers Insurance. Other fields will come from the existing ABCompanyVendor entity.
For reference, the diagram below shows the ABCompany subtype of the ABContact entity:

How should this requirement be configured following best practices?
Options:
Create ABAutoRentalAgency.Ext as a subtype of A B Company Vendor and add the three fields to the subtype
Create ABAutoRentalAgency.Ext as a subtype of ABCompany and add the three fields to the subtype
Create a custom entity ABAutoRentalAgency_Ext and add the three fields to this entity
Create three new fields to extend the existing ABCompany Vendor subtype
Answer:
AExplanation:
In the Guidewire Data Model, managing entity relationships through Subtyping is a core principle for maintaining a clean, performant, and logically structured database. According to the InsuranceSuite Developer Fundamentals course, subtyping should be used when a specific group of entities shares a common base but requires additional, unique attributes.
1. Leveraging the Existing Hierarchy
The prompt specifies that "other fields will come from the existing ABCompanyVendor entity." In the Guidewire ContactManager (AB) data model, the hierarchy typically flows from ABContact → ABCompany → ABCompanyVendor. By creating ABAutoRentalAgency_Ext as a subtype of ABCompanyVendor (Option A), the new entity automatically inherits all properties from the vendor level (such as Tax ID or Vendor Number) and the company level (such as Name or Address). This maximizes code and metadata reuse.
2. Why Subtyping is Better than Extension
If a developer were to follow Option D and add these three fields directly to ABCompanyVendor, every vendor in the system—including Law Firms, Doctors, and Repair Shops—would have fields for "Auto Rental License." This is known as "data model pollution." It makes the database tables wider than necessary and complicates the UI, as you would need complex "visible" expressions to hide these irrelevant fields for other vendor types.
By creating a specific subtype, Guidewire's Table-per-Subtype or Table-per-Hierarchy (depending on version and configuration) storage strategy ensures that these three specific fields are only relevant to Auto Rental Agency records. This keeps the data model logically distinct and allows for the use of Modal PCFs, where the UI automatically switches to display the correct fields based on the subtype of the contact being viewed.
Best Practice Summary: Use the _Ext suffix for the new subtype to follow Cloud Delivery Standards and place it as deep in the existing hierarchy as possible to inherit the most relevant specialized fields.
An insurance carrier needs the ability to capture information for different kinds of watercraft, such as power boats, personal water craft, sailboats, etc. The development team has created a Watercraft_Ext entity with subtype entities to store the distinct properties of each type of watercraft. Which represents the best approach to provide the ability to edit the data for watercraft in the User Interface?
Options:
Create a Modal Detail View for each type of watercraft, duplicating common fields across each Detail View
Create a single page for all watercraft types with the visibility of fields distinct to the type of watercraft controlled at the widget level
Create a set of Modal Pages for each type of watercraft
Create a Detail View for the common properties of all watercraft and a set of Modal InputSets for the distinct property of each watercraft
Answer:
DExplanation:
Guidewire configuration follows the principle ofModular UI Design, especially when dealing with entity inheritance (subtypes). In this scenario, the carrier has a base Watercraft_Ext entity with multiple subtypes (e.g., PowerBoat, Sailboat). These subtypes share common attributes (like Make, Model, and Year) but have unique attributes (like MastHeight for sailboats or EngineType for powerboats).
The best practice for designing an interface for subtypes is to useModal InputSets(Option D). This approach involves creating a "master" Detail View (DV) that contains the common fields shared by all watercraft. Below the common fields, a ModalInputSet is added. Guidewire's PCF engine then uses a "mode" (typically the subtype name) to determine which specific InputSet to render at runtime.
This method is superior to others for several reasons:
Maintenance:Common fields are defined in only one place. If you need to add a "Color" field to all watercraft, you change one DV, not five separate pages (avoiding the redundancy of Option A).
Performance and Cleanliness:It avoids a massive, cluttered page with hundreds of "visible" expressions (Option B), which is difficult to maintain and can slow down page rendering.
User Experience:It provides a seamless experience where the UI dynamically adjusts to the specific boat type without the jarring transition of moving between entirely different pages (Option C).
By using InputSet widgets with the mode property, developers can create a highly scalable and organized UI that mirrors the object-oriented structure of the underlying Data Model.
What type of Assessment Check ensures that applications have monitoring and logging frameworks in place?
Options:
Performance
Upgrades
Security
Operations
Answer:
DExplanation:
In theGuidewire Cloud Platform (GWCP)ecosystem, all customer implementations must pass through a series ofCloud Assurance Assessment Checks. These checks are designed to ensure that the configuration is not only functional but also maintainable and stable within a shared cloud infrastructure.
TheOperations Assessment Check(Option D) is specifically focused on the "health and observability" of the production application. According to theDeveloping with Guidewire Cloudtraining, this check verifies that the developer has implemented proper monitoring hooks and logging frameworks. This includes ensuring that logs are structured (to be easily parsed by tools like Datadog or Splunk), that appropriate log levels are used (avoiding "noisy" production logs), and that critical system events are captured to allow the Guidewire Cloud Operations team to proactively manage the environment.
WhilePerformancechecks (Option A) focus on latency andSecuritychecks (Option C) focus on PII protection, theOperationscheck ensures that when a failure occurs, the system provides enough telemetry for "Day 2" support. Without these frameworks in place, an application is considered "un-managed," which poses a significant risk to the insurer's service level agreements (SLAs).
What are two types of Guidewire Profiler? (Select two)
Options:
Exit-point
Entry-point
Database Performance
Worksheet
Answer:
B, DExplanation:
TheGuidewire Profileris a powerful diagnostic tool used to analyze the performance of Gosu code, database queries, and rule execution within the application. It helps developers identify bottlenecks by providing a detailed breakdown of where time is being spent during a specific operation.
According to the "System Health & Quality" training, the Profiler is categorized based on how the profiling data is captured and viewed. The two primary types areEntry-pointandWorksheet.
Entry-point Profiler (Option B):This is used to profile a specific "entry point" into the application, such as a Web Service call, a Batch Process, or a specific PCF Page load. When a developer enables an entry-point profiler, the system records every operation (Gosu execution, SQL query, etc.) that occurs from the moment the entry point is triggered until it completes. This is essential for diagnosing high-latency API calls or slow-running background tasks.
Worksheet Profiler (Option D):This type is accessible directly within the application UI via the "Worksheet" (the slide-up panel at the bottom). It allows a developer or tester to profile their own current session. By clicking "Enable Profiler" in the worksheet, the developer can perform a specific action (like clicking a button or saving a claim) and immediately view the performance trace once the action finishes.
Options A (Exit-point) and C (Database Performance) are not standard names for the Profiler types in Guidewire. While the Profilermeasuresdatabase performance, it is not a "type" of Profiler itself. Understanding the difference between these types allows developers to choose the right diagnostic tool depending on whether they are troubleshooting a user-interface issue (Worksheet) or a systemic back-end performance problem (Entry-point).
Business analysts have provided a requirement to store contacts' usernames in the Click-Clack social media website in a single field on the Contact entity. Which solution follows best practices and fulfills the requirement?
Options:
Extend the Contact entity with a field named ClickClack_Ext of type addressline
Extend the Contact entity with a field named ClickClack of type blob
Extend the Contact entity with a field named ClickClack of type shorttext
Extend the Contact entity with a field named ClickClack_Ext of type shorttext
Answer:
DExplanation:
InGuidewire InsuranceSuite, extending the data model to accommodate custom business requirements must follow strict architectural standards to ensure the application remains upgradeable and compliant withCloud Delivery Standards.
1. The Importance of the Naming Suffix (The _Ext rule)
The primary rule in Guidewire configuration is that any customer-added element (entities, fields, or typelists)mustbe suffixed with_Ext. As specified in theInsuranceSuite Developer Fundamentalscourse, this suffix serves as a "namespace" that prevents naming collisions with future base-product updates provided by Guidewire. If you were to name a field simply ClickClack (as in Options B and C), and a future Guidewire update introduced a field with the exact same name, the application server would fail to start due to metadata conflict. Therefore, the field must be named ClickClack_Ext.
2. Selecting the Correct Data Type
For a social media username, the developer must choose the most efficient and semantically appropriate data type.
shorttext (Option D):This is the standard type for strings up to 60 characters. It is the most appropriate for a username, as it is indexed efficiently by the database and provides enough space for almost any social media handle.
addressline (Option A):While this is also a string type (typically 60 characters), it is semantically intended for physical street addresses. Using it for social media handles is poor practice as it makes the metadata confusing for other developers.
blob (Option B):This is used for "Binary Large Objects," such as images or documents. Using a blob for a simple text username would cause massive performance issues during searches and consume unnecessary database storage.
By choosingOption D, the developer ensures that the field is clearly identified as a custom extension and uses the most performant data type for the specific information being stored. This follows the "KISS" (Keep It Simple, Stupid) principle and Guidewire's automated quality gates for Cloud deployments.
A business analyst provided a requirement to create a list of Payment Types accepted by vendors. The list will include the values Cash, Credit Card, Debit Card, Check, and EFT. It will be linked to Company Vendors. Following best practices for creating a new typelist, how can this requirement be configured in the data model?
Options:
PaymentType_Ext.ttx in the Extensions -> Typelist folder and add typecodes with the _Ext suffix to the typelist for the five payment types
PaymentType.tix in the Metadata -> Typelist folder and add typecodes with the _Ext suffix to the typelist for the five payment types
PaymentType_Ext.tti in the Extensions -> Typelist folder and add typecodes for the five payment types to the typelist
PaymentType.tti in the Metadata -> Typelist folder and add typecodes to the typelist for the five payment types
Answer:
CExplanation:
When a developer needs to introduce an entirely new set of values that does not exist in the base InsuranceSuite product, they must create anew Typelist. According to the Guidewire Data Model architecture, the proper way to define a new, customer-specific typelist is by creating a.tti (Typelist Interface)file within theExtensionsfolder of the configuration.
Following the naming conventions established for Guidewire Cloud and InsuranceSuite extensions, any new metadata object created by a customer should include the_Extsuffix. Therefore, the typelist should be named PaymentType_Ext.tti (Option C). This suffix clearly distinguishes the insurer's custom metadata from any current or future "Out of the Box" (OOTB) typelists provided by Guidewire. By placing it in the Extensions -> Typelist folder, the developer ensures that the new list is recognized by the metadata compiler and correctly integrated into the application.
It is important to understand why the other options are incorrect:
Option A:Uses a .ttx file. .ttx files are used only toextend existingbase typelists (adding new codes to a list Guidewire already provides). They cannot be used to define a brand-new list.
Option B:Uses a .tix extension, which is not a valid Guidewire metadata extension, and places it in the Metadata folder, which is reserved for base product files.
Option D:Places a .tti in the Metadata folder without the required _Ext suffix, which violates the upgrade-safety principle and risks a name collision with future base product updates.
Which statement accurately defines automated Guidewire inspections?
Options:
Developers need to toggle on all of the inspections they want to execute against their code.
Inspections cannot be modified by developers but will be used as delivered in Studio.
Inspections enable static analysis to enforce standards and detect Gosu anti-patterns.
All Guidewire inspections are incorporated into a plugin that can be installed in Guidewire Studio.
Answer:
CExplanation:
Guidewire Inspectionsare a cornerstone of theStatic Analysisframework built directly into Guidewire Studio. Unlike dynamic testing (like GUnits) which requires code to run, inspections analyze the source code "as written" to find potential issues early in the development lifecycle.
The primary purpose of these inspections (Option C) is to enforceCloud Delivery Standardsand identifyGosu anti-patterns. Common anti-patterns include:
Using query.select().toList().where(...) (filtering in memory instead of the database).
Hardcoding strings instead of using DisplayKeys.
Missing the _Ext suffix on custom metadata.
By detecting these issues in real-time within the IDE, developers can fix architectural flaws before they are ever committed to Git. Option A is incorrect because many core inspections are enabled by default to ensure baseline quality. Option B is incorrect because Guidewire provides the ability to configure the severity of certain inspections (Warning vs. Error). Option D is incorrect because inspections are a native feature of the Guidewire plugin for IntelliJ/Studio, not a separate secondary plugin.
Which statements describe best practices when using bundles in Gosu to save new entities/edit existing entities? (Select Two)
Options:
Commit changes individually for each entity.
Create a new bundle using gw.transaction.Transaction.runWithNewBundle().
Explicitly call the commit() method on the bundle outside of a managed block.
Add all entities to the bundle, not just those which will be edited.
Obtain a bundle using gw.transaction.Transaction.getCurrent().
Never call commit() within a runWithNewBundle() statement.
Answer:
B, FExplanation:
Managing transactions in Guidewire requires a deep understanding ofBundles. The modern and safest way to handle a transaction is using the runWithNewBundle(\ bundle -> { ... }) block (Option B).
When using runWithNewBundle, the Guidewire platform automatically handles the "Plumbing" of the transaction. It opens the bundle, provides a safe execution context, andautomatically commitsthe changes when the block reaches the end. Therefore, a critical best practice is tonever call commit() manuallyinside that block (Option F). Doing so can interfere with the platform's error-handling and post-commit logic. Option E is used for UI-bound bundles (like those in a PCF), but for background logic or integration, a fresh, managed bundle via runWithNewBundle is the gold standard for avoiding data leakage or accidental modifications.
The Panel Ref in the screenshot below displays a List View with a toolbar. Add and Remove buttons have been added to the toolbar, but they appear in red, indicating an error. The Row Iterator has toAdd and toRemove buttons correctly defined.

What needs to be configured to fix the error?
Options:
Set the toCrealeAndAdd property of the row iterator
Sel the addVisible and removeVisible properties of the Add and Remove buttons
Set the iterator property of the Add and Remove buttons
Set the Visible property of the row iterator
Answer:
CExplanation:
In the GuidewirePage Configuration Framework (PCF), there is a strict functional relationship between toolbar buttons and the data they manipulate. When dealing withList Views (LVs), the "Add" and "Remove" buttons are specialized widgets known asIterator Buttons.
According to theInsuranceSuite Developer Fundamentalscurriculum, placing an Iterator Button in a toolbar is only the first step. For the button to be valid, it must be linked to a specificRow Iteratorlocated within the List View. This is accomplished by setting theiteratorproperty on the Add or Remove button to theIDof the target Row Iterator.
The red error in Guidewire Studio signifies a metadata validation failure. Even if the Row Iterator has the correct toAdd and toRemove logic defined (the "how" of the operation), the buttons themselves do not yet know "where" that logic resides. By setting the iterator property, you create a direct reference that tells the button which array of objects it is responsible for managing.
Why other options are incorrect:
Option A:toCreateAndAdd is an optional property of the Row Iterator used for overriding the default object creation logic; it does not resolve the connection error between the button and the iterator.
Option B:addVisible and removeVisible are boolean expressions used to hide buttons based on user permissions or object state; they do not fix structural metadata errors.
Option D:The Visible property on an iterator affects whether the list is rendered, not whether the toolbar buttons are correctly linked.
Linking the button to the iterator ID is a fundamental best practice that ensures the UI remains synchronized with the underlying data bundle.
A developer has designed a detail view with an email address input. What is the best practice for ensuring that only a properly formatted email address can be entered?
Options:
Create an email address class with a validation method
Use database validation for the email address
Usefield-level validationfor the email address
Create a validation rule for email addresses
Answer:
CExplanation:
For standard formatting requirements like phone numbers, ZIP codes, or email addresses, Guidewire recommendsField-Level Validation(Option C). This is implemented using the validationExpression property on the PCF widget or, more ideally, by associating aValidatorin the Data Model (.eti/.etx).
Field-level validation provides the best user experience because it triggers immediately when the user navigates away from the field (client-side or AJAX refresh), providing instant feedback. Using aValidation Rule(D) is a "heavier" server-side operation that only triggers when the user tries to save the entire page. By using a Regex-based validator at the field level, the application maintains data integrity with minimal performance overhead.
A developer is creating an entity for home inspections that contains a field for the inspection date. Which configuration of the file name and the field name fulfills the requirement and follows best practices?
Options:
HomeInspection.etx, InspectionDate.Ext
HomeInspection_Ext.eti, InspectionDate.Ext
HomeInspection_Ext.etx, InspectionDate
HomeInspection.eti, InspectionDate.Ext
HomeInspection.Ext.eti, InspectionDate
Answer:
BExplanation:
Guidewire'sMetadata Naming Conventionsare strictly enforced to ensure that customer code remains distinct from Guidewire's base product code, which is essential for seamless platform upgrades.
When creating abrand-new entity, the developer must use the.eti (Entity Interface)extension. Following Cloud Delivery Standards, the entity name itself must include the_Extsuffix. Therefore, HomeInspection_Ext.eti is the correct file structure. Regarding the fieldswithinthat custom entity, Guidewire best practices recommend applying the_Extsuffix to custom columns as well (Option B), even if the entity itself is custom. This provides a consistent visual indicator in Gosu code that the developer is interacting with an extension rather than a base product element.
Option A and C use the .etx extension, which is reserved forextending existing base entities(e.g., adding a field to Claim). Option D is incorrect because it lacks the mandatory suffix on the entity name. Option E uses an invalid file naming format. Following the convention in Option B ensures the data model is compliant with Guidewire's automated quality gates.
Succeed Insurance needs to add a new getter property to the Java class generated from the Contact entity. According to best practices, what steps below would allow this to get implemented? (Select Two)
Options:
Add the enhancement definition to the Contact.eti file.
Add the enhancement definition to a new Contact.etx file.
Create a new Gosu enhancement for the Contact entity in the gw.entity.enhancements package.
Add a newget propertyto the enhancement.
Create a new Gosu enhancement for the Contact entity in thesi.cc.entity.enhancementspackage.
Add a new get function to the enhancement.
Answer:
D, EExplanation:
In Guidewire development, you cannot directly modify the underlying Java classes generated from entities. To add custom logic, properties, or methods to an existing entity like Contact, developers must useGosu Enhancements. This allows the extra functionality to be available on every instance of that entity throughout the application (Rules, PCFs, and other Gosu classes) without altering the base product files.
1. Package Naming Standards (Option E)
According to theInsuranceSuite Developer FundamentalsandCloud Delivery Standards, custom code must always be placed in a unique, customer-specific package. The gw package (Option C) is strictly reserved for Guidewire's internal code. Placing custom enhancements in a package like si.cc.entity.enhancements (where si stands for Succeed Insurance) ensures that the code is "upgrade-safe." During a platform upgrade, Guidewire replaces the gw packages but leaves the customer's custom packages untouched.
2. Properties vs. Functions (Option D)
The requirement specifically asks for a "getter property." In Gosu, this is implemented using theproperty getkeyword. While you could technically write a function (e.g., getSomeValue()), a property allows for a cleaner syntax in other parts of the application. For example, if you define a property FullName_Ext, you can access it as myContact.FullName_Ext rather than myContact.getFullName_Ext(). This follows the Guidewire best practice of making the entity model feel like a cohesive, POJO-like structure.
Why other options are incorrect:
Options A and B:.eti (Entity Interface) and .etx (Entity Extension) files are metadata files used to define thedatabase schema(columns, foreign keys, etc.). They are not used to write Gosu logic or enhancement definitions.
Option F:While a "get function" is valid Gosu, the question specifically asks for a "getter property," which has a distinct syntax (property get) in the Guidewire framework.
By creating an enhancement in a customer-specific package and using the property syntax, the developer ensures the code is performant, readable, and follows the strict architectural guidelines required for Guidewire Cloud.
According to the training, which application in Guidewire Home is used to configure custom quality gates for pre-merge or pre-promotion stages within the GWCP pipeline? (Select Two)
Options:
Storage Access
Repository Settings
CI/CD Manager
Quality Gates
Build Promotion
Automated Builds
Answer:
C, DExplanation:
In theGuidewire Cloud Platform (GWCP), the management of the delivery pipeline is handled throughGuidewire Home. To ensure that only code meeting the insurer's standards reaches higher environments, developers use two specific integrated applications.
TheCI/CD Manager(Option C) is the primary hub for managing the automation pipelines. It allows developers to define the flow of code from the repository to various environments (Dev, QA, UAT). Within this application, you configure the "stages" of the build.
To enforce specific standards at these stages, theQuality Gatesapplication (Option D) is used. Quality gates act as "toll booths" in the pipeline. They can be configured to check for specific criteria, such as a minimum percentage of GUnit test coverage, a lack of critical static analysis violations, or successful execution of performance smoke tests. If a build fails to meet the threshold set in the Quality Gates configuration, the CI/CD Manager will automatically halt the promotion, preventing "bad code" from merging into the integration branch or moving to production.
An insurer has extended the ABContact entity in ContactManager with an array of Notes. A developer has been asked to write a function to process all the notes for a given contact. Which code satisfies the requirement and follows best practices?
Options:
Code snippet
for ( note in anABContact.Notes ) {
//do something
}
Code snippet
for ( i = 1..anABContact.Notes.length ) {
//do something
}
Code snippet
var aNote = anABContact.Notes.firstWhere(\ note -> note.Author != null)
//do something
Code snippet
while ( exists ( note in anABContact.Notes ) ) {
//do something
}
Answer:
AExplanation:
Gosu is designed to simplify the interaction between code and the Guidewire Data Model. When dealing withArrays(such as the Notes array on a Contact), the language provides several ways to iterate through elements, but only one is considered the standard for readability and performance.
1. The "For-In" Loop (Option A)
Option A uses thefor-inloop syntax. This is theGosu best practicefor iterating over collections or arrays. It is highly readable, automatically handles null safety for the iterator, and abstracts away the complexities of index management. This "enhanced for loop" is the most efficient way to process every element in a collection without the risk of an "Index Out of Bounds" error.
2. Why Other Options are Discouraged
Option B (Index-based loop):This is a "Java-style" approach. It is more verbose and error-prone. In Gosu, 1..length creates a range object in memory, which is less efficient than a direct iteration. Additionally, it requires the developer to manually access the element via anABContact.Notes[i], increasing the risk of code clutter.
Option C (firstWhere):This does not satisfy the requirement. The prompt asks to "processallthe notes," whereas firstWhere stops execution as soon as it finds thefirstmatch.
Option D (exists):The exists keyword in Gosu is a predicate modifier used to return a Boolean value (true/false). It is used for checking if a condition is met within a collection, not for iterating or "doing something" to every member of the array.
By choosingOption A, the developer ensures the code is "clean," upgrade-safe, and follows the functional programming style encouraged in all Guidewire InsuranceSuite Developer training modules.
Which rule is written in the correct form for a rule which sets the claim segment and leaves the ruleset?
A)

B)

C)

D)

Options:
Option A
Option B
Option C
Option D
Answer:
AExplanation:
In the GuidewireGosu Rules engine, managing the logic flow within a ruleset is a fundamental skill for any developer. A ruleset is essentially a collection of "If-Then" statements that the application evaluates sequentially. When a business requirement dictates that an action should be taken—such as categorizing a claim by setting its Segment property—and then no further rules in that specific set should be processed, the developer must use theactionsutility object.
The correct method to terminate the current ruleset execution is actions.exit(). As shown inOption A, the logic must be ordered procedurally: first, the state of the entity is modified (claim.Segment = TC_AUTO_LOW), and then the exit() command is called to stop the engine from evaluating subsequent rules. Using the typecode constant (TC_AUTO_LOW) is the best practice for assignment, as it provides compile-time checking, whereas using a hardcoded string (Option B) is error-prone and discouraged in Guidewire development.
Furthermore, the placement of the exit command is critical. InOption C, the actions.exit() is placed before the assignment; this results in the rule terminating immediately, and the claim segment is never actually updated.Option Dis incorrect because actions.stop() is not the standard method for exiting a ruleset in the Gosu rule architecture. By following the pattern in Option A, developers ensure that once a "mutually exclusive" business condition is met and handled, the system efficiently moves to the next ruleset or stage in the claim lifecycle, preventing redundant processing or accidental overwrites of the segment value by lower-priority rules.
Which scenarios should database consistency checks be run in? (Select two)
Options:
A customer created their own SQL script to populate empty columns in their production database.
A customer created a subtype of an entity that has a required column and imported data through the user interface.
A customer created a new LocationRef, a folder that contains a new PCF file, Detail View, and List View.
A customer created a new typelist and added several new typecodes to an existing typelist.
A customer extended an entity with a column that is not required and imported data for the column through the user interface.
Answer:
A, BExplanation:
Database Consistency Checks (DCCs) are designed to verify that the data in the physical database tables aligns perfectly with the metadata definitions in the Guidewire application.
The first critical scenario is whenexternal SQL scriptsare used (Option A). Guidewire’s application layer usually handles all data validation and referential integrity. When a developer or DBA runs a SQL script directly against the database, they bypass these application-level checks. Running DCCs after such an operation is mandatory to ensure that the script didn't accidentally introduce null values into non-nullable columns or break foreign key constraints.
The second scenario involvesdata imports and subtype creation(Option B). When a new subtype is created with a "required" column, and data is imported—even through the UI or staging tables—there is a risk that existing records or improperly mapped import files might result in missing data for that required field. DCCs will identify these "logical" inconsistencies where the database contains a null value for a field that the application metadata now defines as mandatory.
Options C and D involve metadata changes (UI and Typelists) that do not typically risk corrupting existing table data in a way that DCCs are designed to catch. Option E is less critical because the column is "not required," so a null value is considered consistent with the data model.
A developer performed Guidewire Profiler analysis on a web service. The results showed a large Own Time (unaccounted-for time) value, but it is difficult to correlate the data with the exact section of code executed. Which approach can help to identify what is causing the large processing time?
Options:
Create more profiler tags to block out sections of code
Add more logging statements at the INFO level
Use print statements to calculate the time spent in the code
Apply extra frames in the profiler output
Answer:
AExplanation:
When using theGuidewire Profiler, "Own Time" refers to time spent within a specific block of code that isn't attributed to sub-calls (like database queries or other profiled methods). A high Own Time in a web service indicates that significant processing is happening in a "blind spot" of the current profile.
To gain visibility into these blind spots, Guidewire recommendscreating custom Profiler Tags. By wrapping specific segments of your Gosu code with Profiler.push("TagName") and Profiler.pop(), you manually tell the Profiler to track that specific block as its own entry in the results tree. This breaks down the generic "Own Time" into specific, labeled sections, allowing you to pinpoint exactly which loop or calculation is causing the bottleneck.
Option D is a common distractor; while "stack frames" provide context, they don't help categorize logic that isn't currently being caught by the instrumented hooks. Options B and C are manual troubleshooting methods that are significantly less efficient than using the built-in diagnostic capabilities of the Profiler and can even skew performance results due to the overhead of I/O operations.
Given the image:

Which container type must be added between Card and Input Column?
Options:
Detail View PCF File
Detail View
List View
Input Set
Answer:
BExplanation:
TheGuidewire Page Configuration Framework (PCF)follows a strict nesting hierarchy to ensure that the layout engine can correctly render widgets on the screen. According to theInsuranceSuite Developer Fundamentalscurriculum, specifically the lesson on "Container Widget Usage," developers must understand the parent-child relationships required for different layout styles.
ACardwidget is a component of aCardViewPanel, used to create tabbed interfaces within a page. However, a Card itself cannot directly host anInput Column. Instead, a Card serves as a container for other panels. To display data fields in the standard column-based layout favored by InsuranceSuite, aDetailViewPanel(commonly referred to simply as aDetail Viewin the Studio palette) must be placed inside the Card.
TheDetail Viewacts as the intermediate container that establishes the data context (the row or entity being edited) and provides the grid system necessary for theInput Column. The Input Column, in turn, allows developers to align fields vertically. Without the Detail View container, the PCF would be syntactically invalid because the layout engine requires the Detail View to manage the labels and input alignment for any child columns.
Option A is incorrect because a "PCF File" is the entire document, not a widget added to a tree. Option C (List View) is used for tabular data, not column-based input layouts. Option D (Input Set) is a grouping mechanism that sitsinsideoralongsidean Input Column but cannot serve as the parent to one. Therefore, adding aDetail View(B) is the correct and necessary step to bridge the hierarchy between the Card and its Input Columns.
What is a benefit of archiving?
Options:
Reorganizes and compresses the contents of the database to conserve space
Improves application performance by reducing the size of the database
Reindexes the contents of the database to increase data retrieval speed
Reduces database size by permanently removing data marked for purge
Answer:
BExplanation:
Archiving is a vital data management strategy within the Guidewire InsuranceSuite, particularly for long-running production environments where the volume of historical data can grow exponentially. The primary objective of archiving is to move "closed" or "inactive" business objects—such as claims that have been settled for several years or expired policies—out of the active, operational database and into a separate, secondary storage area.
According to the Guidewire documentation, the most significant benefit of this process is theimprovement of application performance(Option B). As the operational database grows, the time required for the database engine to perform index scans, joins, and general queries increases. By periodically moving inactive data to the archive, the size of the "live" database tables remains manageable. This leads to faster search results, quicker page load times, and more efficient database maintenance tasks like backups and consistency checks.
It is important to distinguish archiving from other database operations.Purging(Option D) involves the permanent deletion of data, whereas archiving preserves the data for future retrieval or regulatory compliance.Reindexing(Option C) andcompression(Option A) are physical database maintenance tasks that optimize how data is stored on disk but do not address the fundamental issue of data volume in the same way that moving entire business graphs to an archive does. Archiving ensures that the core application remains lean and responsive for day-to-day transactions while still fulfilling the legal and business requirements for data retention.
Which of the following represents logging best practices? Select Two
Options:
Mask personally identifiable information (PII) before including it in a log message.
Set the logging level to "info" in the production environment.
Set the logging level to "debug" in the production environment when diagnosing a production issue.
Log all information that is necessary to diagnose the transaction.
Log every transaction to ensure a complete audit trail.
Answer:
A, DExplanation:
Effective logging in Guidewire InsuranceSuite is a balance between providing enough information for troubleshooting and maintaining system security and performance. Two of the most critical best practices involveData PrivacyandDiagnostic Context.
First,Masking PII(Option A) is a non-negotiable requirement for modern insurance applications, especially those running on the Guidewire Cloud Platform. Personally Identifiable Information, such as social security numbers, credit card details, or even specific personal names and addresses, must never appear as clear text in the application logs. Logs are often aggregated into secondary systems (like Datadog or CloudWatch) and viewed by a wide range of support personnel. If PII is not masked or removed before logging, the company risks failing compliance audits (GDPR, HIPAA, etc.) and exposing sensitive data.
Second, developers should strive tolog all information necessary to diagnose the transaction(Option D). This means providing context, such as a PublicID, a specific TransactionID, or the state of an object at the time of an error. Without this context, log entries like "Error processing claim" are useless for troubleshooting. The goal is to provide enough detail so that a developer can understand the failure path without needing to step through the code in a debugger.
Other options are incorrect because they represent poor operational or performance choices. Setting the level to "debug" in production (Option C) can lead to severe performance degradation due to high I/O. While "info" (Option B) is a common default, it is not a "best practice" in the same functional sense as security and diagnosis. Finally, "logging every transaction" (Option E) is not the purpose of application logs; audit trails should be handled via the system's built-inHistoryorEvent Messagingtables, not the text-based log files, to avoid overwhelming the storage and performance of the application.
Given the image of GroupParentView:

What configuration is needed to add Group.GroupType to a list view using GroupParentView following best practices?
Options:
Create a new viewEntity that includes GroupType
Add a viewEntityType for GroupType to Group Pa rentView.eti
Add a viewEntityTypefor GroupType to Group Pa rentView.etx
Set the value on the input widget to GroupParentVlew.Group.GroupType
Answer:
CExplanation:
In Guidewire InsuranceSuite,ViewEntitiesare specialized entities used to optimize the performance of List Views (LVs). Instead of loading full, heavy entity objects into memory (which can cause significant overhead and "N+1 query" issues), a ViewEntity allows the developer to define a "flat" structure that only contains the specific columns needed for display.
1. Extending ViewEntities via .etx (Option C)
When you need to add a field to an existing base ViewEntity, such as GroupParentView, you must follow the standard extension architecture. Since GroupParentView is a base application object, you cannot modify its original definition file (.eti). Instead, you must create or modify an extension file, which has the.etxextension.
Because GroupType is aTypekey(a field linked to a Typelist), the correct metadata tag to use within the ViewEntity definition is<viewEntityType>. This tag maps the typekey from the underlying Group entity to a field on the GroupParentView object. By adding this to the .etx file, you ensure the change is upgrade-safe and follows Guidewire's architectural standards.
2. Performance and Best Practices
Why is Option D considered an anti-pattern? In a PCF List View, if you use the syntax GroupParentView.Group.GroupType, you are "dot-walking" from the ViewEntity back to the full Group entity. This forces the Guidewire application server to load the entire Group object for every single row in the list. If a list has 100 rows, this could result in 100 unnecessary database loads.
By properly mapping the field in theViewEntity metadata(Option C), the field is included in the initial flattened SQL query generated by the system. This allows the application to retrieve all necessary data for the list in a single, efficient database round-trip. This "Database-First" approach is a core pillar of Guidewire performance tuning and is the primary reason ViewEntities are used in the product.
Which statement is correct and recommended for writing GUnit tests?
Options:
Use the init() method to set up objects shared by all tests in a test class
Handle any exceptions thrown by test methods in the finally() method
Clear all instance variables of completed test in the tearDown() method
Use fluent assertions over conventional assert statements
Answer:
AExplanation:
GUnitis the Guidewire-specific testing framework based on JUnit, used to verify that Gosu classes and business rules function correctly. Efficient test writing requires a clear understanding of the test lifecycle, specifically how to manage resources and test data.
According to the Guidewire "System Health & Quality" training, theinit()method (or equivalent @BeforeClass setup logic in newer versions) is the recommended location for initializing resources that are expensive to create or are shared across all test methods within a specific class (Option A). By setting up shared objects—such as mock configuration data or static helper instances—in the init() phase, the developer ensures that the test suite runs faster and avoids redundant processing for every individual test case.
While Option C (clearing variables in tearDown()) is a valid memory management practice in some long-running Java environments, the primary focus of Guidewire GUnit training regarding the test lifecycle emphasizes thesetupphase to ensure a consistent "known state" before tests execute. Option B is incorrect because GUnit is designed to catch and report exceptions as test failures; wrapping them in a manual finally block would obscure the failure and bypass the framework's reporting capabilities. Option D mentions fluent assertions; while modern and readable, conventional assertTrue, assertEquals, and assertNotNull remain the standard recommended assertion types in the core Guidewire Developer training curriculum.
Total 77 questions
Unlock InsuranceSuite-Developer Features
- InsuranceSuite-Developer All Real Exam Questions
- InsuranceSuite-Developer Exam easy to use and print PDF format
- Download Free InsuranceSuite-Developer Demo (Try before Buy)
- Free Frequent Updates
- 100% Passing Guarantee by Activedumpsnet
Questions & Answers PDF Demo
- InsuranceSuite-Developer All Real Exam Questions
- InsuranceSuite-Developer Exam easy to use and print PDF format
- Download Free InsuranceSuite-Developer Demo (Try before Buy)
- Free Frequent Updates
- 100% Passing Guarantee by Activedumpsnet