Skip to content

Colleygf/PostgreSQL-commit-analyis

Repository files navigation

PostgreSQL Bug 修复行为分析与形式化验证项目

项目简介

本项目针对 PostgreSQL 数据库管理系统master 分支(2022–2025 年间的提交历史),开展系统的 Bug 修复行为分析与形式化验证研究。通过结合静态分析、动态跟踪与形式化建模方法,深入挖掘 PostgreSQL 开发过程中的 Bug 修复规律、代码结构演化特征及其背后的逻辑约束。


研究目标

  1. 提交行为分析:定量统计 PostgreSQL 主分支的历史提交行为与演化趋势。
  2. Bug 修复识别:识别并分析 Bug 修复提交的时间、模块、作者及模式特征。
  3. Bug 与修复关联分析:探究 Bug 报告(commit message / issue 引用)与代码修改之间的关联规律。
  4. 代码结构分析:使用 AST / libcst 对典型 Bug 修复进行静态结构分析。
  5. 形式化验证:尝试使用 z3-solver 对部分 Bug 模式进行形式化建模与一致性验证。

技术路线

Git 提交历史
   ├── 提交元数据分析(时间 / 作者 / 模块 / 频率)
   ├── Bug 修复提交识别(关键词 / issue / patch 特征)
   ├── 静态代码分析(AST / pycparser)
   ├── 动态分析(pysnooper)
   └── 形式化建模(z3-solver)

工具使用方案

工具 用途 适用场景
AST / libcst 静态结构演化分析 分析修复前后的控制流、条件表达式、指针检查等
pysnooper 动态执行轨迹分析 跟踪 Python 工具脚本中的变量变化,对比修复前后行为
z3-solver 形式化建模与验证 对边界条件、状态一致性等 Bug 进行逻辑约束建模

统计分析维度

1. 提交行为统计

  • 提交频率(年/月/周)
  • 作者贡献度(Top N 贡献者)
  • 模块活跃度(backend / optimizer / storage 等)

2. Bug 修复规律分析

  • Bug 修复比例
  • Bug 集中模块
  • 提交信息关键词分布
  • 修复复杂度(修改文件数 / LOC)

3. 代码层面特征

  • 条件语句数量变化
  • 防御式编程增强
  • 错误处理路径增加

五人小组分工

成员一(张雨新):数据采集与总体统计

  • 职责:克隆仓库、提取提交数据、基础统计与可视化
  • 工具:Git、Python(pandas / matplotlib)、shell 脚本

成员二(唐明迪):Bug 修复提交识别与规律分析

  • 职责:定义识别规则、标注 Bug 提交、分析修复规律
  • 工具:Python(正则 / NLP)、pandas

成员三(屈向明):静态分析(AST / libcst)负责人

  • 职责:选取典型 Bug 修复、进行 AST / libcst 结构分析
  • 工具pycparser、自定义 AST visitor

成员四(李霄冲):动态分析(pysnooper)与案例复现

  • 职责:选择 Python 工具脚本 Bug、跟踪执行路径、对比修复前后行为
  • 工具:pysnooper、Python 调试技术

成员五(王虹景):形式化分析与报告整合(z3-solver)

  • 职责:抽象 Bug 为逻辑模型、使用 Z3 验证修复有效性、撰写报告
  • 工具:z3-solver、LaTeX

项目产出预期

  • 完整的 PostgreSQL Bug 修复行为分析报告
  • 结构化的提交与 Bug 数据集
  • 静态与动态分析案例集
  • 形式化验证模型与结果
  • 可复现的实验脚本与工具链

备注

  • 所有脚本、数据与报告均需统一归档至项目仓库。
  • 建议使用 Python 3.8+ 环境,并安装相关依赖:
    pip install pandas matplotlib pycparser pysnooper z3-solver

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors