Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Security Solution] Test plan for prebuilt rule customization #204888

Merged
merged 7 commits into from
Jan 16, 2025

Conversation

dplumlee
Copy link
Contributor

@dplumlee dplumlee commented Dec 19, 2024

Summary

Addresses #202068

Adds test plan for rule customization features related to the milestone 3 prebuilt rule customization epic

@dplumlee dplumlee added test-plan v9.0.0 Team:Detections and Resp Security Detection Response Team Team: SecuritySolution Security Solutions Team working on SIEM, Endpoint, Timeline, Resolver, etc. Team:Detection Rule Management Security Detection Rule Management Team Feature:Prebuilt Detection Rules Security Solution Prebuilt Detection Rules area backport:version Backport to applied version labels v8.18.0 labels Dec 19, 2024
@dplumlee dplumlee self-assigned this Dec 19, 2024
@dplumlee dplumlee requested a review from a team as a code owner December 19, 2024 06:17
@dplumlee dplumlee requested a review from maximpn December 19, 2024 06:17
@elasticmachine
Copy link
Contributor

Pinging @elastic/security-detections-response (Team:Detections and Resp)

@elasticmachine
Copy link
Contributor

Pinging @elastic/security-solution (Team: SecuritySolution)

@elasticmachine
Copy link
Contributor

Pinging @elastic/security-detection-rule-management (Team:Detection Rule Management)

@dplumlee dplumlee added the release_note:skip Skip the PR/issue when compiling release notes label Dec 19, 2024
@banderror banderror requested a review from pborgonovi December 23, 2024 19:09
@banderror
Copy link
Contributor

@pborgonovi Please review this one

Copy link
Contributor

@maximpn maximpn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dplumlee Thanks for adding Prebuilt Rules Customization test plan 🙏

I reviewed the test plan and left suggestions to make the test plan more robust and improve readability.

It looks like this test plan should include the following scenarios as well

  • A test scenario (with examples) for each field affecting isCustomized
  • Custom rules shouldn't have "Modified" badge on rule details page
  • Custom rules shouldn't have "Modified" badge on rule management table
  • Scenarios covering ruleSource
  • Users can navigate to rule edit page from prebuilt rule details

Feel free to reach me to discuss it over Zoom in case of questions.


### Terminology

- **Base version**: The version of the rule we ship with the rule package, can be thought of as the "original" version of the rule.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Base version**: The version of the rule we ship with the rule package, can be thought of as the "original" version of the rule.
- **Base version**: Prebuilt rule asset we ship in the rule package corresponding to the currently installed prebuilt rules. It represents "original" version of the rule. During prebuilt rules installation prebuilt rule assets data is copied over and becomes an installed prebuilt rule.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we say that it's a prebuilt rule asset whose "version" field matches the "version" of an installed rule? WDYT?

@nikitaindik nikitaindik self-requested a review January 6, 2025 13:28
Copy link
Contributor

@nikitaindik nikitaindik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR, @dplumlee! Overall, the test coverage looks solid. I’ve left a couple of comments for you to consider.

One potential improvement: should we add a scenario to ensure that the “Edit” buttons in the rule details page and rule management table are clickable when the feature flag is enabled?

Additionally, do we want to include a test to verify that non-modifiable fields, such as version and id are uneditable?”

Looking forward to your thoughts!

@dplumlee
Copy link
Contributor Author

@maximpn @nikitaindik I believe I addressed most of your comments or left questions, take a look when you can.

Scenarios covering ruleSource

@maximpn I think all the additional test cases you mentioned have now been covered but not sure what you meant by this one. I've left a few responses in regard to the ruleSource stuff related to your comments but the whole test plan is kind of related to rule source itself.

Copy link
Contributor

@nikitaindik nikitaindik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for addressing my feedback, @dplumlee! The test plan looks good to me now.

Copy link
Contributor

@pborgonovi pborgonovi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @dplumlee
I've left some comments

Copy link
Contributor

@maximpn maximpn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dplumlee Thanks for addressing my comments 👍

I believe ruleSource and is_customized assertions should be removed from test scenarios. Instead of focusing on ruleSource and is_customized test scenarios should focus on Modified badge.

And the rule is unmodified
When a user edits the rule from the rule edit page to something different than the original version
Then the rule is successfully updated
And the ruleSource should be "external"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You may add such ab assumption but it looks like an overkill since the test plan concerns prebuilt rules.

My comment is rather related to unnecessary test scenario explicitness. Users won't see ruleSource in UI. They rather see Modified badge when the rule is modified. The scenario says User can edit a non-customized prebuilt rule from the rule edit page. It literally means user may open rule editing form for a prebuilt rule, change some fields values and save the rule. After that they should see changed values on the rule details page and Modified badge. Checking ruleSource on the way is test implementation details and looks optional.

And the action is successfully applied to selected rules
Then rules that have been changed from their base version should have a ruleSource of "external"
And isCustomized should be true
And the "Modified" badge should appear on the respective row in the rule management table
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Modified badge is the only visual output here. I think it should stay.

My point is that the test may double check bulk actions affect rule details page as well. Though I gave it a second thought and it looks rather optional.

Then the rule is successfully updated
And the ruleSource should be "external"
And isCustomized should be true
And the "Modified" badge should appear on the rule's detail page
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we have a separate test scenario to assert Modified badge appears on Rules Update table?

@dplumlee dplumlee merged commit ded92cf into elastic:main Jan 16, 2025
8 checks passed
@kibanamachine
Copy link
Contributor

Starting backport for target branches: 8.x

https://github.com/elastic/kibana/actions/runs/12812695257

kibanamachine pushed a commit to kibanamachine/kibana that referenced this pull request Jan 16, 2025
…c#204888)

## Summary

Addresses elastic#202068

Adds test plan for rule customization features related to the milestone
3 prebuilt rule customization epic

(cherry picked from commit ded92cf)
@kibanamachine
Copy link
Contributor

💚 All backports created successfully

Status Branch Result
8.x

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

kibanamachine added a commit that referenced this pull request Jan 16, 2025
…204888) (#206970)

# Backport

This will backport the following commits from `main` to `8.x`:
- [[Security Solution] Test plan for prebuilt rule customization
(#204888)](#204888)

<!--- Backport version: 9.4.3 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Davis
Plumlee","email":"[email protected]"},"sourceCommit":{"committedDate":"2025-01-16T15:57:17Z","message":"[Security
Solution] Test plan for prebuilt rule customization (#204888)\n\n##
Summary\r\n\r\nAddresses
https://github.com/elastic/kibana/issues/202068\r\n\r\nAdds test plan
for rule customization features related to the milestone\r\n3 prebuilt
rule customization
epic","sha":"ded92cf9953742e569d6f84850f20de861cb5844","branchLabelMapping":{"^v9.0.0$":"main","^v8.18.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","test-plan","v9.0.0","Team:Detections
and Resp","Team: SecuritySolution","Team:Detection Rule
Management","Feature:Prebuilt Detection
Rules","backport:version","v8.18.0"],"title":"[Security Solution] Test
plan for prebuilt rule
customization","number":204888,"url":"https://github.com/elastic/kibana/pull/204888","mergeCommit":{"message":"[Security
Solution] Test plan for prebuilt rule customization (#204888)\n\n##
Summary\r\n\r\nAddresses
https://github.com/elastic/kibana/issues/202068\r\n\r\nAdds test plan
for rule customization features related to the milestone\r\n3 prebuilt
rule customization
epic","sha":"ded92cf9953742e569d6f84850f20de861cb5844"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/204888","number":204888,"mergeCommit":{"message":"[Security
Solution] Test plan for prebuilt rule customization (#204888)\n\n##
Summary\r\n\r\nAddresses
https://github.com/elastic/kibana/issues/202068\r\n\r\nAdds test plan
for rule customization features related to the milestone\r\n3 prebuilt
rule customization
epic","sha":"ded92cf9953742e569d6f84850f20de861cb5844"}},{"branch":"8.x","label":"v8.18.0","branchLabelMappingKey":"^v8.18.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->

Co-authored-by: Davis Plumlee <[email protected]>
@dplumlee dplumlee deleted the rule-customization-test-plan branch January 16, 2025 16:36
viduni94 pushed a commit to viduni94/kibana that referenced this pull request Jan 23, 2025
…c#204888)

## Summary

Addresses elastic#202068

Adds test plan for rule customization features related to the milestone
3 prebuilt rule customization epic
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:version Backport to applied version labels Feature:Prebuilt Detection Rules Security Solution Prebuilt Detection Rules area release_note:skip Skip the PR/issue when compiling release notes Team:Detection Rule Management Security Detection Rule Management Team Team:Detections and Resp Security Detection Response Team Team: SecuritySolution Security Solutions Team working on SIEM, Endpoint, Timeline, Resolver, etc. test-plan v8.18.0 v9.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants