13

你能解释一下路径和分支测试之间的区别吗?

我读过很多文章,但我仍然对这两者感到困惑。

我在堆栈溢出中进行了搜索,但没有找到任何合适的答案如果我重复这个问题,请通过提供链接帮助我。

谢谢,

4

2 回答 2

11

快速总结

总结自https://www.cs.drexel.edu/~jhk39/teaching/cs576su06/L4.pdf

路径测试:

  • 100% 路径覆盖。
  • 通过程序执行所有可能的控制流路径。

语句测试:

  • 100% 的报表覆盖率。
  • 在某个测试下至少执行一次程序中的所有语句。

分支测试:

  • 100% 的分支机构覆盖率。
  • 执行足够的测试以确保每个分支备选方案在某个测试下至少执行一次。

一般来说,路径测试 >= 分支测试 >= 语句测试,就它们可以提供多少信心来确定您的系统的正确性而言。

讨论

路径覆盖率计算通过程序执行的从输入到输出的完整路径数,而分支覆盖率计算在任何时间点测试的分支数。在这个定义中,完整的路径覆盖将导致完整的分支覆盖。

可能有多个路径会命中单个条件语句,并且完整的路径覆盖率可能会测试不同的变体(因为在 if 语句中可能会调用外部资源,而分支覆盖率无法识别)。分支覆盖更像是测试分支是否在某个时刻被命中,并且参数正确地传递给模拟外部资源(不一定是之后发生的事情)。

如此处所示:https ://www.cs.drexel.edu/~jhk39/teaching/cs576su06/L4.pdf ,我们有时可以通过流程图表示所有路径的集合,目标是验证每条路径从开始to end 在路径测试中按预期工作。

分支测试附加说明

从这里开始:分支测试

Testing in which all branches in the program source code are tested at least once

路径测试附加说明

从这里:http ://www.qualitytesting.info/forum/topics/what-is-difference-between-2和http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/网页/测试/PathTest.html

A path is a sequence of executable statements. Testers are concerned with
"entry-exit paths", which begin at the entry point into a given process and
proceed to its exit point. 

The objective of path testing is to ensure that each independent path through
the program is executed at least once. An independent program path is one that
traverses at least one new edge in the flow graph. In program terms, this means
exercising one or more new conditions. Both the true and false branches of all
conditions must be executed.
于 2013-04-09T09:32:21.857 回答
1

基本路径测试,一种结构化测试或白盒测试技术,用于设计测试用例,旨在检查所有可能的执行路径至少一次。为所有可能的路径创建和执行测试会导致 100% 的语句覆盖率和 100% 的分支覆盖率。

分支覆盖是一种测试方法,旨在确保每个决策点的每个可能分支至少执行一次,从而确保执行所有可达代码。

也就是说,每个分支都采取不同的方式,真假。它有助于验证代码中的所有分支,确保没有分支导致应用程序的异常行为。

于 2014-06-30T10:17:20.017 回答