Bug 569215 - Automatically maximalizing information about failing tests in CI systems
Summary: Automatically maximalizing information about failing tests in CI systems
Status: NEW
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: titan.core (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 10
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-11-26 08:41 EST by Kristof Szabados CLA
Modified: 2021-04-23 10:42 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kristof Szabados CLA 2020-11-26 08:41:53 EST
Sometimes tests running in CI systems, do find problems ... that is why we have them, sometimes they fail because of circumstantial reasons unrealated to their purpose.
However after the failure, when investigating the issue ... it does matter how much information is available to the user/developer/person doing the debugging work.

Titan is in a unique position, where it is possible to maximize the information available automatically for the user.
What could be possible:
1)
Using XCoverage to drive the CI processes, when it notices a test failing ... it could re-execute the same test 2-3 more times.

This way next morning, when checking the log, it would be immediately known, if the test was failing consistently for the same reason (and so is most probably reproducible) or inconsistently ( most probably related to some environmental factor)

2)
Having control of the configuration file, it would be possible to run the test once with all logging options enabled ... to have more information in the logs.

3)
Using the version handling system it might be possible to identify which exact commit caused the test to fail.
And as Titan already supports an automatic refactoring feature, which is able to insert extra log statements into the code (logging all visible variables)...
It would be possible to create a version of the code, where before each changed line, the values of all visible variables would be logged ... do a compilation and execution.

---

This would also mean, that by default the tests could run with few log statements in the code, reducing logging settings in the configuration file ... optimized for runtime performance.
And the CI system could automatically enhance all of these settings to extract as much information as possible about the issue ... reducing the time needed to debug it.
Comment 1 Kristof Szabados CLA 2020-11-26 09:12:53 EST
+1)
In case the re-running of the same test several times indicates flaky-ness it might be also a good idea to re-run it a few more times, with some artificial load in the background.
The artifical load could be generated by the environment encompassing XCoverage and the running tests.

This would give the extra information (for debugging), that the test is sensitive to available processing power/network bandwith/etc.. 
Providing great extra information when trying to understand what is causing the issue.
This way reducing fixing time and maintenance costs.
Comment 2 Denis Roy CLA 2021-04-23 10:42:44 EDT
This bug was migrated to GitLab: https://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues