• 1
  • 1
分享

基本路径测试案例分析

Q:请使用基本路径测试对该程序进行测试:

二分查找

public int binSearch(int arr[], int objectValue) {
    int left = 0;
    int right = arr.length - 1;
    int mid;
    while (left < right) {
        mid = (right - left) / 2 + left;
        if (arr[mid] == objectValue) {
            return mid;
        } else if (objectValue < arr[mid]) {
            right = mid - 1;
        } else {
            left = mid + 1;
        }
    }
    return -1;
}

基本路径测试法的定义

基本路径测试是一种白盒测试方法,它在程序控制图的基础上,通过分析控制构造的环行复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每一个可执行语句至少执行一次。

1. 画出程序的流程图:

1.png

2. 将程序流程图转换为控制流图

2.png

3、确定环形复杂性度量V(G):

1)V(G)= 4 (个区域)

2)V(G)=E–N+2=11–9+2=4

其中E为流图中的边数,N为结点数;

3)V(G)=P+1=3+1=4

其中P为谓词结点(分支结点)的个数。在流图中,结点2、4、5是谓词结点。

步骤3:确定基本路径集合(即独立路径集合)。于是可确定4条独立的路径:

路径1:1-2-9

路径2:1-2-3-4-9

路径3:1-2-3-4-5-6-8-2…

路径4:1-2-3-4-5-7-8-2…

4、为每一条独立路径各设计一组测试用例,以便强迫程序沿着该路径至少执行一次。

1、路径1(1-2-9)的测试用:

输入:arr={1} objectValue=1

期望结果:传入数组和目标值,不能使用该方法查到该目标值,返回:-1

Junit单元测试:

3.png

2、路径2(1-2-3-4-9)的测试用例:

输入:arr={1,3,5} objectValue=3

期望的结果:传入数组和目标值,能使用该方法在数组中查到该目标值,返回位置:1

Junit单元测试:

4.png

3、路径3(1-2-3-4-5-6-8-2…)的测试用例:

输入:arr={1,3,5} objectValue=4

期望结果:传入数组和目标值,不能在数组中查到该目标值,返回:-1

Junit单元测试:

5.png

4、路径4(1-2-3-4-5-7-8-2…)的测试用例:

输入:arr={1,3,5} objectValue=2

期望结果:传入数组和目标值,不能在数组中查到该目标值,返回:-1

Junit单元测试:

6.png

5、总结

基本路径测试法是在 程序控制流图 的基础上,通过分析控制构造的环路复杂性,导出 基本可执行路径 集合,从而 设计测试用例 的方法,设计出的测试用例要保证在测试中程序的语句覆盖100%,条件覆盖100%。路径覆盖可以对程序进行彻底的测试,比语句覆盖、判定覆盖、条件覆盖、判定条件覆盖以及条件组合覆盖的覆盖面都要广。


作者:Reset:

原文链接:https://blog.csdn.net/qq_46083525/article/details/124480769

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 读者提问:工作中大家用的比较多的测试用例管理工具有哪些呢 ?阿常回答:1、Excel 2、WPS3、Xmind4、GitMind5、MindMaster6、iMindMap7、MindNode8、MindLine9、zhimap10、Mindjet Maps11、思维简图12、3A 思维导图13、ProcessOn14、用例管理工具:PingCode、TestLink阿常碎碎念:阿常在平时工作中 1、13、14 使用得更多一些。1 用于本地写测试用例;13 用于在线写测试大纲;14 用于做测试用例管理。看完今天的分享对你是不是有所启发呢,有任何想法都欢迎大家后台私信阿常,一...
            0 0 1257
            分享
          •   免费开源Http、Https抓包工具,支持Windows、Mac、Android、IOS, 全平台系统, 使用Flutter框架开发。  支持手机扫码连接,不用手动配置Wifi代理,包括配置同步。所有终端都可以互相扫码连接转发流量。  默认Https不是开启的,需要点击加锁图标安装根证书后开启,因为不安转证书,https会访问失败。  mac会提示已损坏,需要到系统偏好设置-安全性与隐私-允许任何来源  接下来会持续完善功能和体验,请求重写功能增强、模拟慢请求、请求debug, UI优化。  支持安卓微信小程序抓包,安卓分为系统证书和用户证书,下载的自签名根证书安装都是用户证书,微信不信任...
            0 0 2808
            分享
          • 新浪科技讯北京时间10月31日早间消息,据报道,美国科技巨头上周纷纷公布财报,但除了苹果之外其它科技巨头表现都不好。Alphabet、亚马逊、Meta、微软的市值合计蒸发超过3500亿美元,因为巨头们对三季度的评价并不好,对今年余下时间也没多少信心。在过去10年里,这些科技巨头顺风顺水,现在不一样了,它们面临营收增长放缓、控制成本等挑战。美国高通胀、加息、经济衰退阴云密布。在此等大背景下,苹果的营收和利润倒是高于预期,正因如此,上周五苹果股价大涨。Meta成了反面典型,2022年它的股价大跌。上周Meta股价表现很糟,算是2012年上市以来最糟,5天下跌24%。该公司三季度业绩未达预期,每用户...
            0 0 1264
            分享
          • 读者提问:对于测试架构师日常工作中做哪些事情我还挺好奇的,这个岗位似乎还挺稀缺的,我所经历的公司没有这个岗位。我对测试架构师的理解就是技术架构师,主要是做技术选型,以及带领整个团队做技术提升的。不知道软件测试架构师在实际工作中,都做哪些事情呢?阿常回答:一家业务体系庞大、复杂的公司的测试架构师的职责主要有五个。1、测试团队的技术带头人测试架构师会关注整个团队的技术提升,包括技术难题的攻关,团队遇到的技术难题,你能够做到 90%的解决率。2、深入参与关键业务的评审关注软件的可测试性,作为测试 leader、项目负责人或者测试架构师需要深入参与技术架构的选型,包括前期的概要设计,给出建议。3、测试...
            0 0 1280
            分享
          •   摄影师戴建峰发文称其使用自己的作品被视觉中国告知侵权,该事件曝光后引发关注,视觉中国多次冲上了微博热搜榜,图片版权问题迅速成为公众讨论的焦点。  多家知名公司官微此前也曾纷纷表态,自己家的LOGO图变成了视觉中国的版权图片。  受此影响,截至8月16日15时收盘,视觉中国总市值较前一日蒸发超5亿元,跌至115.10亿。  专家认为,视觉中国4年前宣称“全面整改”,到底整改了什么?最近这些年,人们对于版权越来越重视,这是好事。但把维权当生意,最终会让“版权”“污名化”。希望人人尊重版权,但请尊重法律,莫要“碰瓷”。  资料显示,视觉中国成立于1994年5月,于1997年1月在A股上市,风险信...
            0 0 1049
            分享
      • 51testing软件测试圈微信