代码检查器

代码检查器 (★★)

#debugging #analysis-tools #best-practices

用途

方面 详情
事务 SCI
目标 检查程序的性能、安全性、语义错误
范围 静态分析(无需执行)

架构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
+------------------+     +-----------------+     +--------------+
| 检查变体 | | 对象集 | | 检查任务 |
| (检查什么) | | (检查哪些对象) | | (命名运行) |
+--------+---------+ +--------+--------+ +------+-------+
| | |
+-----------+------------+ |
| |
+------v------+) |
| SCI 引擎 |<--------------------------+
+------+-------+
|
+------v------+
| 结果 |
+-------------+
组件 用途 创建位置
检查变体 定义执行哪些检查 SCI
对象集 定义检查哪些对象 SCI
检查任务 变体 + 对象集的命名组合 SCI

检查类别

类别 检查内容
通用 通用编程问题
性能 低效代码模式
安全 安全漏洞
语法 语法错误和警告
编程规范 命名规范、格式
搜索 查找特定代码模式

按类别的示例检查

类别 示例检查
性能 SELECT * 使用、嵌套 SELECT
性能 循环中的类型转换
安全 缺少授权检查
安全 硬编码密码或值
语法 不可达代码
规范 命名前缀违规

使用代码检查器

从 ABAP 编辑器(快速检查)

1
ABAP 编辑器 → 程序 → 检查 → 代码检查器 (Ctrl+F2)
💡ABAP 编辑器的快速检查使用默认变体。自定义检查请在 SCI 中创建自己的变体。

###从事务 SCI(完整)

  1. 创建检查变体:定义要包含的检查
  2. 创建对象集:指定程序、类、包
  3. 创建检查任务:组合变体 + 对象集
  4. 运行检查任务:执行并查看结果

检查变体创建

1
2
3
4
5
6
7
8
9
SCI → 检查变体 → 创建
+-- 性能
| [x] SELECT * 使用
| [x] 嵌套 SELECT
| [x] 类型转换
+-- 安全
| [x] 授权检查
+-- 规范
[x] 命名前缀

结果

结果类型 图标 含义
错误 红色 必须修复
警告 黄色 应该修复
信息 蓝色 需要注意
📌首先关注错误,然后处理警告。信息项仅供参考。

标准检查 vs 自定义检查任务

特性 标准(编辑器) 自定义(SCI)
触发方式 ABAP 编辑器 (Ctrl+F2) 事务 SCI
检查变体 默认系统变体 用户定义
对象范围 仅当前程序 任意对象集
持久性 不保存 保存且可复用
调度 仅手动 可调度

考试/测试模式

关键词 / 短语 答案
“代码检查器事务” SCI
“三个 SCI 组件” 检查变体、对象集、检查任务
“检查类别” 通用、性能、安全、语法、规范、搜索
“从编辑器快速检查” 程序 → 检查 → 代码检查器 (Ctrl+F2)
“检查变体用途” 定义执行哪些检查
“对象集用途” 定义检查哪些对象
“检查任务组合了” 检查变体 + 对象集

相关笔记