test : add unit tests for _contextual_severity_score helper in risk_scoring

未关闭
#2,334 3 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

@aaniya22 已经在做这个了。

开始于 2026年8月2日。

  • #2339 来自 @tmdeveloper007 —— 已关闭,未合并

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
35/100
Issue 类型
功能
描述清晰度
描述清楚
活跃度
停滞
技术栈
python
领域
security, testing

调研方向

Read backend/secuscan/risk_scoring.py to inspect _contextual_severity_score and the related factor helpers, then review nearby tests under testing/backend/unit/. Add testing/backend/unit/test_risk_scoring_contextual_severity.py to cover overrides, multiplier combinations, defaults, clamping, and float results. The linked pull request #2339 is closed and unmerged; check the issue thread for current ownership before starting.

由索引模型根据 Issue 内容生成。

描述

Summary of What Needs to be Done:
Add unit tests for the _contextual_severity_score function in backend/secuscan/risk_scoring.py. This function calculates a context-aware severity score by applying system exposure and business criticality multipliers to a base severity. It is a pure function with no external I/O and is directly importable without triggering heavy dependencies.

Changes that Need to be Made:

  • Add a new file testing/backend/unit/test_risk_scoring_contextual_severity.py
  • Import _contextual_severity_score from backend.secuscan.risk_scoring
  • Test that custom_override bypasses all other calculations (returns clamped value)
  • Test that base_severity * exposure_mult * criticality_mult is correctly clamped to [0, 10]
  • Test _system_exposure_factor interaction: public/internet_facing/internal/private multipliers
  • Test _business_criticality_factor interaction: critical/high/medium/low multipliers
  • Test that None for exposure_context or business_criticality falls back to default multipliers (1.0)
  • Test that extreme products (very large base_severity, extreme multipliers) are clamped
  • Test that result is always a float in [0, 10]

Impact that it would Provide:

  • Increases test coverage for the risk_scoring module's context-aware severity path
  • Ensures the exposure/criticality multipliers are correctly combined and clamped
  • Guards against regression when multipliers or clamp bounds are changed

Note: This task is being handled by tmdeveloper007 — please assign to that account when picking it up.

主要语言
Python
星标
36
派生
234
PR 合并指标
30 天内没有已合并 PR

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

utksh1/SecuScan 的其他 Issue

查看 utksh1/SecuScan 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。