System Integration Test Overview

Test Status by Functional Area

Results Trend (Last 7 Days)

Plan Completion

Recent Activity

Test Plans

Test Cases

IDTitlePlanFunctional Area PriorityStatusAssigned ToActions

Test Execution & Equipment Emulation

Equipment Emulation Model

Simulated material handling devices used during on-site commissioning testing.


Run Test Suite

Progress 0%
[ SIT Engine ] Ready. Select a plan and press Run Tests.

Test Specification Code Samples

Reference C# and Java snippets used during functional testing to meet acceptance criteria for material handling systems.

C# — Conveyor Functional Test

// Conveyor belt speed acceptance test
using NUnit.Framework;

[TestFixture]
public class ConveyorTests
{
    private ConveyorEmulator _emu;

    [SetUp]
    public void Init()
        => _emu = new ConveyorEmulator("COM3");

    [Test]
    public void SpeedReachesSetpoint_Within3Seconds()
    {
        _emu.SetSpeed(120); // fpm
        Thread.Sleep(3000);
        Assert.That(_emu.ActualSpeed,
            Is.InRange(117, 123));
    }

    [Test]
    public void E_StopDeceleration_UnderHalfSecond()
    {
        _emu.SetSpeed(120);
        Thread.Sleep(1000);
        var t0 = DateTime.UtcNow;
        _emu.TriggerEStop();
        while (_emu.ActualSpeed > 0) { }
        Assert.Less(
            (DateTime.UtcNow - t0).TotalSeconds,
            0.5);
    }
}

Java — Sortation System Test

// Sortation divert accuracy test
import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.*;

class SortationTest {
    SortController ctrl;

    @BeforeEach
    void setup() {
        ctrl = new SortController(
            EmulatorFactory.create("SORT-01"));
    }

    @Test
    void divertAccuracy_Above99Point5Pct() {
        int total = 1000, passed = 0;
        for (int i = 0; i < total; i++) {
            Package pkg = Package.random();
            ctrl.induct(pkg);
            if (ctrl.verify(pkg)) passed++;
        }
        double acc = (double) passed / total * 100;
        assertTrue(acc >= 99.5,
            "Accuracy " + acc + "% < 99.5%");
    }

    @Test
    void throughput_500PackagesPerHour() {
        long start = System.currentTimeMillis();
        ctrl.runBatch(500);
        long elapsed = System.currentTimeMillis() - start;
        assertTrue(elapsed <= 3_600_000L);
    }
}

C# — WMS Interface Integration Test

// WMS message roundtrip acceptance test
[TestClass]
public class WmsInterfaceTests
{
    private WmsEmulator _wms;
    private MhsAdapter  _mhs;

    [TestInitialize]
    public void Setup()
    {
        _wms = new WmsEmulator("tcp://localhost:5100");
        _mhs = new MhsAdapter(_wms);
    }

    [TestMethod]
    public async Task ShipConfirm_RoundTripUnder200ms()
    {
        var msg = new ShipConfirmMsg {
            OrderId = "ORD-00042",
            LpnId   = "LPN-9999"
        };
        var sw = Stopwatch.StartNew();
        var ack = await _mhs.SendAsync(msg);
        sw.Stop();

        Assert.IsTrue(ack.Success);
        Assert.IsTrue(sw.ElapsedMilliseconds < 200);
    }
}

Java — PLC Heartbeat & Regression Test

// PLC heartbeat regression test suite
class PlcRegressionTest {
    PlcEmulator plc;

    @BeforeEach
    void connect() {
        plc = new PlcEmulator(
            "192.168.1.100", 44818);
        plc.connect();
    }

    @AfterEach
    void disconnect() { plc.close(); }

    @RepeatedTest(10)
    void heartbeat_RespondsWith200ms() {
        long t = plc.ping();
        assertTrue(t < 200,
          "Heartbeat " + t + "ms > 200ms");
    }

    @Test
    void tagWrite_ReadbackMatches() {
        plc.write("ConveyorSpeed", 120);
        Thread.sleep(50);
        assertEquals(120,
          plc.read("ConveyorSpeed"));
    }

    @Test
    void safetyRelay_TripsOnFault() {
        plc.injectFault("JAM_DETECT");
        Thread.sleep(100);
        assertTrue(plc.safetyRelayOpen());
    }
}

Test Status Reports