开发者社区> 问答> 正文

在我们睡觉时,程序怎么自动查bug?

程序如何自动的帮我们找bug?(哪怕我们在睡觉)

展开
收起
问问小秘 2019-12-16 11:41:49 4775 0
6 条回答
写回答
取消 提交回答
  • IT码农

    小秘问的这个问题太好了,我也想知道答案。嘿嘿

    2019-12-22 11:11:11
    赞同 展开评论 打赏
  • test

    2019-12-19 12:03:29
    赞同 展开评论 打赏
  • test

    2019-12-19 11:08:33
    赞同 展开评论 打赏
  • 技术架构师 阿里云开发者社区技术专家博主 CSDN签约专栏技术博主 掘金签约技术博主 云安全联盟专家 众多开源代码库Commiter

    分为两类吧,基础语法检测类,目前基本上的代码检测都能搞定语法检测,错误判断,调用下,写个脚本让计算机自动执行即可,生成报告 程序优化隐藏bug类,需要给计算机上人工智能了

    2019-12-18 15:26:56
    赞同 1 展开评论 打赏
  • 如何自动产生测试 case? 由于是基于统计的诊断,我们需要先构建足够多的测试用例,这个过程当然最好也由程序自动完成。事实上,grammar-based 的测试在检验编译器正确性方面有相当长的历史,DBMS 社区也采用类似的方法来验证数据库的功能性。比如:微软的 SQL Server 团队开发的 RAGS 系统对数据库进行持续的自动化测试,还有社区比较出名的 SQLSmith 项目等等。今年 TiDB Hackathon 的另一个获奖项目 sql-spider 也是实现类似的目的。

    这里我们暂时采用 PingCAP 开源的随机测试框架 go-randgen 实现 SQL fuzzing,它需要用户写一些规则文件来帮助生成随机的 SQL 测试用例。规则文件由一些 SQL 语法表达式组成。randgen 每次从 query 开始随机游走一遍 SQL 表达式的语法树,生成一条 SQL,产生一条像下图红线这样的路径。

    image.png

    我们将每个语法表达式生成正确与错误用例的比例作为它的颜色值,绘制出 SQLFuzz 的展示页面。通过该页面,就可以比较容易地看出哪条表达式更容易产生错误的 SQL。

    image.png

    2019-12-16 11:47:52
    赞同 展开评论 打赏
  • 如何做到「睡觉的时候让程序自动定位 bug」?

    1-demo.gif

    2019-12-16 11:44:17
    赞同 展开评论 打赏
滑动查看更多
问答地址:
问答排行榜
最热
最新

相关电子书

更多
微信SQLite数据库损坏恢复实践 立即下载
面向失败设计 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载

相关实验场景

更多