Domain 4 β€” Module 6 of 6 100%
16 of 28 overall
Domain 4: Develop and Test Code Free ⏱ ~13 min read

Testing: SysTest & Task Recorder

Create unit tests with SysTest, run them in Test Explorer, and record business processes with Task Recorder.

Testing: SysTest & Task Recorder

Simple explanation

SysTest is your safety net, Task Recorder is your video camera. SysTest writes self-running checklists (β€œcreate customer β€” did it save?”). Task Recorder captures UI clicks into documentation or automated test cases via RSAT.

SysTest Framework

[SysTestTargetAttribute(classStr(CustomerValidator), MethodStr(CustomerValidator, validate))]
public class CustomerValidatorTest extends SysTestCase
{
    public void setUp() { super(); }
    public void tearDown() { super(); }

    [SysTestMethodAttribute]
    public void testValidExistingCustomer()
    {
        CustomerValidator v = CustomerValidator::construct("1001");
        this.assertTrue(v.validate(), "Should pass for existing customer");
    }

    [SysTestMethodAttribute]
    public void testInvalidCustomer()
    {
        CustomerValidator v = CustomerValidator::construct("FAKE999");
        this.assertFalse(v.validate(), "Should fail for non-existent");
    }
}

Assert methods

MethodPurpose
assertTrueValue should be true
assertFalseValue should be false
assertEqualsTwo values equal
assertNotNullNot null/empty

Transaction modes

Default: test runs in a transaction that auto-rolls back β€” test data disappears. Use SysTestTransaction::NotInTransaction for integration tests that need persistent data.

πŸŽ“ Sophie: β€œCarl made me write tests first. When my CoC broke form validation, the unit test caught it instantly.”

Exam tip: SysTestTransaction

Default mode rolls back. NotInTransaction persists data. The exam asks which mode for which scenario.

Running in Test Explorer

  1. Build project β†’ tests auto-discovered
  2. Test menu β†’ Test Explorer
  3. Run All or select specific tests
  4. Green = pass, red = fail with details

πŸ—οΈ Vik: β€œWe run SysTest in our Azure DevOps pipeline. Every check-in triggers build + test. Failed tests block the check-in.”

Task Recorder

Records user actions to generate documentation and test artifacts.

OutputPurpose
Step-by-step Word docTraining documentation
BPM recordingUpload to LCS Business Process Modeler
XML recordingRSAT automation
Task guideIn-app help

RSAT (Regression Suite Automation Tool)

Converts Task Recorder XML into automated end-to-end tests. Business analysts record, RSAT replays against test environments.

SysTest vs Task Recorder/RSAT
SysTestTask Recorder/RSAT
LevelUnit β€” methods and classesEnd-to-end β€” business processes
AuthorDevelopers in X++Business analysts in UI
SpeedSecondsMinutes (simulates clicks)
Data cleanupAuto-rollbackRequires test data management
Best forCode validationBusiness process regression
Question

SysTest base class?

Click or press Enter to reveal answer

Answer

SysTestCase β€” provides assert methods, setUp/tearDown, Test Explorer integration.

Click to flip back

Question

[SysTestMethodAttribute] does what?

Click or press Enter to reveal answer

Answer

Marks a method as a test case discoverable by Test Explorer.

Click to flip back

Question

Default SysTest transaction behaviour?

Click or press Enter to reveal answer

Answer

Auto-rollback. Test data cleaned up automatically after each test.

Click to flip back

Question

RSAT purpose?

Click or press Enter to reveal answer

Answer

Converts Task Recorder XML into automated end-to-end tests replayed against test environments.

Click to flip back

Knowledge Check

Vik needs to test his CoC extension on validateField. Approach?

Knowledge Check

Tests should clean up automatically. Which mode?

Knowledge Check

Business team wants regression tests after upgrade. Not developers. Tool?


Next up: Domain 5 β€” Reporting in F&O β€” SSRS, Power BI, Excel, and Electronic Reporting.