源代码转换成图-控制流图、数据流图

本文探讨了将代码转换为控制流图(CFG)和数据流图的概念,强调了节点覆盖、边覆盖和循环在测试中的重要性。数据流覆盖关注defs(变量赋值)和uses(变量使用),特别是DU-pairs在循环中的角色。这些图形表示在软件测试和理解程序行为方面起着关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码转换成图

graph:通常是控制流图(CFG)

  • 节点覆盖:执行每个语句
  • 边覆盖:执行每个分支
  • 循环:循环结构,如for循环、while循环等。

数据流覆盖:增加CFG

  • defs是为变量赋值的语句
  • uses是使用变量的语句

控制流图

if Statement
if

if-else
if-return
Loops
while
do-while

for
while-break-continue
switch
switch
try-catch
try-catch

数据流图

  • def:一个值存储在内存中
  1. x出现在赋值的左侧(x=44;)

  2. x是调用中的实际参数,该方法更改其值

  3. x是方法的形式参数(方法启动时的隐式定义)

  4. x是程序的输入

  • use:访问变量的值
  1. x出现在赋值的右侧

  2. x出现在条件测试中

  3. x是方法的实际参数

  4. x是程序的输出

  5. x是return语句中方法的输出

如果def和use出现在同一个节点上,def发生在use之后并且该节点处于Loop中,那么def和use是DU-pair

Example

code
CFG
CFG for Stats

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值