tkobayas commented on issue #6841:
URL: 
https://github.com/apache/incubator-kie-drools/issues/6841#issuecomment-5089374156

   # Slow Test Methods — Job 0 (ubuntu-latest / Java-17 / Maven-3.9.11)
   
   - **Source**: `surefire-reports_ubuntu-latest_java17` artifact
   - **Collected**: 2026-07-27 (Run ID 81943624804)
   - **Total test methods**: 33,241
   - **Methods ≥ 5 s**: 115
   - **Methods 3–5 s**: 93
   
   ---
   
   ## Methods ≥ 5 s by Category
   
   ### 🏗️ Maven-internal Build (`maven-build`)
   Tests that spawn a child Maven process internally (invoker tests, codestart 
tests, kie-maven-plugin ITs).
   
   | Time (s) | Class | Method |
   |----------|-------|--------|
   | 23.526 | `org.kie.kogito.quarkus.dmn.KogitoDMNCodeCodestartIT` | 
`testBuild` |
   | 22.277 | `maven.invoker.it.drools-test-coverage-jars-with-invoker` | 
`drools-test-coverage-jars-with-invoker` |
   | 21.682 | `maven.invoker.it.drools-test-coverage-jars-with-invoker` | 
`drools-test-coverage-jars-with-invoker` |
   | 21.058 | `maven.invoker.it.integration-tests-kogito-plugin-it` | 
`integration-tests-kogito-plugin-it` |
   | 18.590 | `maven.invoker.it.cloudevents-spring-boot-addon-it-invoked` | 
`cloudevents-spring-boot-addon-it-invoked` |
   | 10.615 | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-7-exec-model` 
| `kie-maven-plugin-test-kjar-7-exec-model` |
   | 8.953  | `maven.invoker.it.kie-ci-test-jars` | `kie-ci-test-jars` |
   | 8.620  | 
`org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-7-no-exec-model` | 
`kie-maven-plugin-test-kjar-7-no-exec-model` |
   | 8.404  | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-12` | 
`kie-maven-plugin-test-kjar-12` |
   | 8.250  | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-2` | 
`kie-maven-plugin-test-kjar-2` |
   | 8.082  | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-15-yaml` | 
`kie-maven-plugin-test-kjar-15-yaml` |
   | 7.704  | 
`org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-9-no-exec-model` | 
`kie-maven-plugin-test-kjar-9-no-exec-model` |
   | 7.654  | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-8-exec-model` 
| `kie-maven-plugin-test-kjar-8-exec-model` |
   | 7.543  | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-13` | 
`kie-maven-plugin-test-kjar-13` |
   | 7.532  | 
`org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-8-no-exec-model` | 
`kie-maven-plugin-test-kjar-8-no-exec-model` |
   | 7.177  | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-10-default` | 
`kie-maven-plugin-test-kjar-10-default` |
   | 7.107  | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-9-exec-model` 
| `kie-maven-plugin-test-kjar-9-exec-model` |
   | 6.975  | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-11-default` | 
`kie-maven-plugin-test-kjar-11-default` |
   | 6.950  | 
`org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-10-yes-generate` | 
`kie-maven-plugin-test-kjar-10-yes-generate` |
   | 6.905  | 
`org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-11-yes-generate` | 
`kie-maven-plugin-test-kjar-11-yes-generate` |
   | 6.772  | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-14-ruleunits` 
| `kie-maven-plugin-test-kjar-14-ruleunits` |
   | 5.204  | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-3` | 
`kie-maven-plugin-test-kjar-3` |
   | 5.177  | `org.kie.maven.plugin.it.kie-maven-plugin-test-kjar-setup` | 
`kie-maven-plugin-test-kjar-setup` |
   
   ---
   
   ### ⏲️ Timer Sleeps (`timer`)
   Tests that use real-time waits for BPMN timers, SLA timers, or timer-based 
rules.
   
   | Time (s) | Class | Method |
   |----------|-------|--------|
   | 12.300 | 
`org.kie.kogito.integrationtests.quarkus.MultipleTimerInstancesIT` | 
`boundaryTimerEvent` |
   | 12.247 | 
`org.kie.kogito.integrationtests.quarkus.MultipleTimerInstancesIT` | 
`timerEvent` |
   | 10.507 | `org.jbpm.bpmn2.StartEventTest` | `testTimerStartCycle` |
   | 10.008 | `org.jbpm.bpmn2.IntermediateEventTest` | 
`testTimerBoundaryEventInterruptingOnTask` |
   | 10.008 | `org.jbpm.bpmn2.IntermediateEventTest` | 
`testTimerBoundaryEventDateISO` |
   | 10.007 | `org.jbpm.bpmn2.IntermediateEventTest` | 
`testTimerBoundaryEventDuration` |
   | 10.007 | `org.jbpm.bpmn2.IntermediateEventTest` | 
`testTimerBoundaryEventCycle1` |
   | 10.007 | `org.jbpm.bpmn2.IntermediateEventTest` | 
`testIntermediateCatchEventTimerCycle1` |
   | 10.006 | `org.jbpm.bpmn2.IntermediateEventTest` | 
`testIntermediateCatchEventTimerDurationISO` |
   | 10.006 | `org.jbpm.bpmn2.IntermediateEventTest` | 
`testIntermediateCatchEventTimerDateISO` |
   | 10.005 | `org.jbpm.bpmn2.IntermediateEventTest` | 
`testTimerBoundaryEventInterrupting` |
   | 10.005 | `org.jbpm.bpmn2.IntermediateEventTest` | 
`testTimerBoundaryEventDurationISO` |
   | 7.371  | `org.kie.kogito.codegen.tests.TimerEventIT` | 
`testStartTimerEventTimeCycle` |
   | 6.006  | `org.jbpm.bpmn2.StartEventTest` | `testTimerStartCycleISO` |
   | 5.089  | 
`org.drools.persistence.timer.integrationtests.TimerAndCalendarTest` | 
`testTimerWithRemovingRule` |
   | 5.071  | 
`org.drools.persistence.timer.integrationtests.TimerAndCalendarTest` | 
`testTimerWithRemovingRule` |
   | 5.031  | `org.jbpm.bpmn2.SLAComplianceTest` | 
`testSLAonUserTaskViolatedExternalTracking` |
   | 5.030  | `org.jbpm.bpmn2.SLAComplianceTest` | 
`testSLAonProcessViolatedExternalTracking` |
   | 5.025  | `org.jbpm.bpmn2.SLAComplianceTest` | 
`testSLAonProcessViolatedNoTracking` |
   | 5.007  | `org.jbpm.bpmn2.IntermediateEventTest` | 
`testIntermediateCatchEventTimerCycleISO` |
   | 5.007  | `org.jbpm.bpmn2.IntermediateEventTest` | 
`testIntermediateCatchEventTimerCycleCron` |
   | 5.006  | `org.jbpm.bpmn2.StartEventTest` | `testTimerCycle` |
   | 5.006  | `org.jbpm.bpmn2.IntermediateEventTest` | 
`testIntermediateCatchEventTimerCycle3` |
   
   ---
   
   ### 🔥 Hot Reload (`hotreload`)
   Tests that trigger Quarkus/Spring dev-mode hot reload (compile + reload 
cycle).
   
   | Time (s) | Class | Method |
   |----------|-------|--------|
   | 19.736 | `org.kie.kogito.quarkus.rules.hotreload.ChangePojoIT` | 
`test2Changes` |
   | 18.651 | `io.quarkus.it.kogito.process.HotReloadTest` | 
`testProcessJsonSchema` |
   | 16.737 | `org.kie.kogito.quarkus.decisions.hotreload.NewFileHotReloadIT` | 
`newFileTest` |
   | 12.748 | `org.drools.quarkus.test.hotreload.HotReloadIT` | 
`testServletChange` |
   | 11.868 | `io.quarkus.it.kogito.process.HotReloadTest` | 
`testRenameProcess` |
   | 10.527 | `io.quarkus.it.kogito.process.HotReloadTest` | 
`testJavaFileChange` |
   | 10.289 | `org.kie.kogito.quarkus.rules.hotreload.ChangePojoIT` | 
`test1Change` |
   | 9.859  | 
`org.kie.kogito.quarkus.decisions.hotreload.SimpleModifyHotReloadIT` | 
`simpleHotReloadTest` |
   | 9.691  | `org.kie.kogito.quarkus.decisions.hotreload.SimpleHotReloadIT` | 
`simpleHotReloadTest` |
   | 9.230  | `io.quarkus.it.kogito.process.HotReloadTest` | 
`testUserTaskJsonSchema` |
   | 8.096  | `org.kie.kogito.quarkus.rules.hotreload.HotReloadIT` | 
`testServletChange` |
   | 7.404  | `org.kie.kogito.quarkus.rules.hotreload.newunit.NewUnitIT` | 
`testServletChange` |
   | 5.172  | `org.optaplanner.quarkus.rest.OptaPlannerProcessorHotReloadTest` 
| `solverConfigHotReload` |
   
   ---
   
   ### 🎯 OptaPlanner Solver / Benchmark (`optaplanner`)
   Tests that run a real OptaPlanner solver or benchmark.
   
   | Time (s) | Class | Method |
   |----------|-------|--------|
   | 10.389 | 
`org.optaplanner.examples.conferencescheduling.app.ConferenceSchedulingSmokeTest`
 | `runConstraintStreamsMutualCorrectnessTest` |
   | 10.228 | 
`org.optaplanner.examples.meetingscheduling.app.MeetingSchedulingSmokeTest` | 
`runConstraintStreamsMutualCorrectnessTest` |
   | 10.180 | 
`org.optaplanner.examples.flightcrewscheduling.app.FlightCrewSchedulingSmokeTest`
 | `runConstraintStreamsMutualCorrectnessTest` |
   | 10.034 | `org.optaplanner.examples.examination.app.ExaminationSmokeTest` | 
`runConstraintStreamsMutualCorrectnessTest` |
   | 10.023 | 
`org.optaplanner.examples.machinereassignment.app.MachineReassignmentSmokeTest` 
| `runConstraintStreamsMutualCorrectnessTest` |
   | 10.019 | 
`org.optaplanner.examples.projectjobscheduling.app.ProjectJobSchedulingSmokeTest`
 | `runConstraintStreamsMutualCorrectnessTest` |
   | 10.013 | 
`org.optaplanner.examples.pas.app.PatientAdmissionScheduleSmokeTest` | 
`runConstraintStreamsMutualCorrectnessTest` |
   | 10.013 | 
`org.optaplanner.examples.nurserostering.app.NurseRosteringSmokeTest` | 
`runConstraintStreamsMutualCorrectnessTest` |
   | 10.009 | 
`org.optaplanner.examples.vehiclerouting.app.VehicleRoutingSmokeTest` | 
`runConstraintStreamsMutualCorrectnessTest` |
   | 10.006 | 
`org.optaplanner.examples.curriculumcourse.app.CurriculumCourseSmokeTest` | 
`runConstraintStreamsMutualCorrectnessTest` |
   | 10.005 | 
`org.optaplanner.examples.taskassigning.app.TaskAssigningSmokeTest` | 
`runConstraintStreamsMutualCorrectnessTest` |
   | 10.004 | `org.optaplanner.examples.tsp.app.TspSmokeTest` | 
`runConstraintStreamsMutualCorrectnessTest` |
   | 10.003 | 
`org.optaplanner.examples.travelingtournament.app.TravelingTournamentSmokeTest` 
| `runConstraintStreamsMutualCorrectnessTest` |
   | 10.003 | `org.optaplanner.examples.nqueens.app.NQueensSmokeTest` | 
`runConstraintStreamsMutualCorrectnessTest` |
   | 10.003 | 
`org.optaplanner.examples.cloudbalancing.app.CloudBalancingSmokeTest` | 
`runConstraintStreamsMutualCorrectnessTest` |
   | 10.002 | `org.optaplanner.examples.tennis.app.TennisSmokeTest` | 
`runConstraintStreamsMutualCorrectnessTest` |
   | 10.001 | 
`org.optaplanner.examples.vehiclerouting.app.VehicleRoutingSmokeTest` | 
`runConstraintStreamsMutualCorrectnessTest` |
   | 9.760  | `org.optaplanner.quarkus.it.devui.OptaPlannerDevUITest` | 
`testModelPage` |
   | 9.547  | `org.optaplanner.examples.app.GeneralBenchmarkConfigTest` | 
`testBenchmarkApp` |
   | 9.299  | 
`org.optaplanner.examples.meetingscheduling.persistence.MeetingSchedulingOpenDataFilesTest`
 | `readAndWriteSolution` |
   | 8.502  | 
`org.optaplanner.examples.nqueens.optional.benchmark.NQueensBenchmarkTest` | 
`benchmark64queens` |
   | 8.205  | 
`org.optaplanner.examples.nqueens.optional.benchmark.NQueensBenchmarkTest` | 
`benchmark64queensSingleThread` |
   | 8.096  | 
`org.optaplanner.benchmark.quarkus.OptaPlannerBenchmarkProcessorBenchmarkConfigTest`
 | `benchmark` |
   | 7.272  | 
`org.optaplanner.examples.conferencescheduling.app.ConferenceSchedulingSmokeTest`
 | `runSpeedTest` |
   | 7.213  | `org.optaplanner.quarkus.it.devui.OptaPlannerDevUITest` | 
`testConstraintsPage` |
   | 7.111  | 
`org.optaplanner.examples.curriculumcourse.app.CurriculumCourseSmokeTest` | 
`runSpeedTest` |
   | 7.106  | `org.optaplanner.quarkus.it.devui.OptaPlannerDevUITest` | 
`testSolverConfigPage` |
   | 5.654  | 
`org.optaplanner.examples.curriculumcourse.app.CurriculumCourseSmokeTest` | 
`runSpeedTest` |
   | 5.581  | 
`org.optaplanner.examples.conferencescheduling.app.ConferenceSchedulingSmokeTest`
 | `runSpeedTest` |
   | 5.495  | 
`org.optaplanner.quarkus.benchmark.it.OptaPlannerBenchmarkTestResourceTest` | 
`benchmark` |
   | 5.235  | `org.optaplanner.examples.tsp.app.TspSmokeTest` | `runSpeedTest` |
   
   ---
   
   ### 🐳 Testcontainers / External Services (`testcontainers`)
   Tests that start Docker containers (Infinispan, MongoDB, Kafka, PostgreSQL).
   
   | Time (s) | Class | Method |
   |----------|-------|--------|
   | 14.706 | `org.drools.reliability.test.smoke.remote.RemoteSmokeTest` | 
`insertFailoverInsertFire_shouldRecoverFromFailover(PersistenceStrategy, 
SafepointStrategy)[1]` |
   | 11.384 | `org.kie.kogito.persistence.kafka.KafkaProcessInstancesIT` | 
`testBasicFlow` |
   | 10.786 | `org.kie.kogito.testcontainers.KogitoMongoDBContainerTest` | 
`shouldGetDockerImageName` |
   | 5.163  | `org.drools.reliability.test.smoke.remote.RemoteSmokeTest` | 
`insertFailoverInsertFire_shouldRecoverFromFailover(PersistenceStrategy, 
SafepointStrategy)[2]` |
   
   ---
   
   ### 🔷 Alpha Network Compilation (`alpha-network`)
   Monolithic tests that compile large alpha networks or decision tables in one 
go.
   
   | Time (s) | Class | Method |
   |----------|-------|--------|
   | 16.972 | 
`org.kie.dmn.core.alphanetwork.AlphaNetworkSupportInLargeDecisionTableTest` | 
`evaluateDecisionTable(boolean)[1]` |
   | 6.986  | `org.drools.ancompiler.LargeAlphaNetworkTest` | 
`testLargeCompiledAlphaNetwork(RUN_TYPE)[4]` |
   | 5.087  | `org.drools.ancompiler.LargeAlphaNetworkTest` | 
`testLargeCompiledAlphaNetwork(RUN_TYPE)[3]` |
   
   ---
   
   ### 👤 User Task / Human Task (`usertask`)
   Tests for jBPM user task lifecycle and deadline handling.
   
   | Time (s) | Class | Method |
   |----------|-------|--------|
   | 5.290 | `org.jbpm.usertask.jpa.it.WsHumanTaskLifeCycleIT` | 
`testSuspendUntilOverridingProcessDefinitionValue` |
   | 5.209 | `org.kie.kogito.codegen.tests.UserTaskIT` | 
`testUserTaskNotStartedDeadlineWithExpressionReplacementStopTimer` |
   | 5.208 | `org.kie.kogito.codegen.tests.UserTaskIT` | 
`testUserTaskNotCompletedDeadlineWithReplacementStopTimer` |
   | 5.111 | `org.jbpm.usertask.jpa.it.WsHumanTaskLifeCycleIT` | 
`testPotentialUserCannotResumeSuspendedToInProgressTask` |
   
   ---
   
   ### 🔁 Transaction Rollback (`transaction`)
   
   | Time (s) | Class | Method |
   |----------|-------|--------|
   | 7.859 | 
`org.kie.kogito.integrationtests.springboot.TransactionRollbackMessageTest` | 
`testNoMessageSentWhenTransactionRollsBack` |
   | 6.386 | 
`org.kie.kogito.integrationtests.quarkus.TransactionRollbackMessageIT` | 
`testNoMessageSentWhenTransactionRollsBack` |
   
   ---
   
   ### 🔄 Reliability / Failover (`reliability`)
   
   | Time (s) | Class | Method |
   |----------|-------|--------|
   | 7.183 | `org.drools.reliability.test.smoke.proto.ProtoSmokeTest` | 
`insertFailoverInsertFire_shouldRecoverFromFailover(PersistenceStrategy, 
SafepointStrategy)[1]` |
   | 5.430 | `org.drools.reliability.test.smoke.proto.ProtoSmokeTest` | 
`insertFailoverInsertFire_shouldRecoverFromFailover(PersistenceStrategy, 
SafepointStrategy)[2]` |
   
   ---
   
   ### 🗂️ Other (`other`)
   
   | Time (s) | Class | Method |
   |----------|-------|--------|
   | 11.291 | `org.drools.core.util.BinaryHeapQueueTest` | `testShuffled` |
   | 10.051 | `org.drools.mvel.integrationtests.concurrency.MultithreadTest` | 
`testSlidingTimeWindows(KieBaseTestConfiguration)[2]` |
   | 10.025 | `org.drools.mvel.integrationtests.concurrency.MultithreadTest` | 
`testSlidingTimeWindows(KieBaseTestConfiguration)[1]` |
   | 8.311  | `org.kie.kogito.infinispan.CacheProcessInstancesIT` | 
`testSignalStorage` |
   | 7.404  | `org.kie.kogito.quarkus.rules.hotreload.newunit.NewUnitIT` | 
`testServletChange` |
   | 7.361  | `org.drools.impact.analysis.example.ExampleUsageTest` | 
`testExampleUsage` |
   | 6.466  | `org.kie.dmn.feel.documentation.ADocFEELExamplesTest` | `test` |
   | 6.416  | `org.kie.kogito.infinispan.CacheProcessInstancesWithLockIT` | 
`testBasic` |
   | 5.667  | `NoPMMLTrustyImportTest` | `myRule` |
   | 5.187  | `org.kie.kogito.infinispan.CacheProcessInstancesIT` | 
`testFindByIdReadMode` |
   | 5.070  | `org.kie.kogito.infinispan.CacheProcessInstancesIT` | 
`testValuesReadMode` |
   
   ---
   
   ## Key Patterns
   
   | Category | # Methods ≥ 5 s | Root cause |
   |----------|-----------------|------------|
   | **maven-build** | 23 | Child Maven processes launched inside test methods 
(invoker, codestart) |
   | **timer** | 23 | Real-time sleep waiting for BPMN / SLA / Drools timers 
(most are hard-coded 5–10 s waits) |
   | **optaplanner** | 31 | Solver execution time; 
`runConstraintStreamsMutualCorrectnessTest` uniformly ~10 s each |
   | **hotreload** | 13 | Quarkus dev-mode compile + class reload cycle |
   | **testcontainers** | 4 | Docker container startup (Infinispan, Kafka, 
MongoDB) |
   | **alpha-network** | 3 | Single monolithic large alpha-network compilation |
   | **usertask** | 4 | Deadline timer waits inside user task tests |
   | **transaction** | 2 | Spring / Quarkus app startup + REST call |
   | **reliability** | 2 | Infinispan failover container restart |
   | **other** | 11 | Concurrency sleeps (`testSlidingTimeWindows`), large data 
load, etc. |
   
   ### Highest-impact reduction opportunities
   
   1. **`IntermediateEventTest` timer methods (×11, ~10 s each)** — Replace 
`Thread.sleep` / real timer waits with a mocked clock or shorter cycle duration 
in tests.
   2. **`OptaPlanner runConstraintStreamsMutualCorrectnessTest` (×17, ~10 s 
each)** — These all hit the same 10 s solver termination cap; reducing the 
termination limit in the test configuration would cut each by ~9 s.
   3. **`kie-maven-plugin` invoker tests (×20, 5–11 s each)** — Each spawns a 
child Maven build; consider reusing the built artifact across tests or 
parallelising the invoker runs.
   4. **Hot reload tests (×13, 8–20 s each)** — Quarkus dev-mode startup 
dominates; hard to shorten without changing Quarkus internals, but 
parallelising test classes could hide the cost.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to