基本路径测试案例分析

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. 画出程序的流程图:

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

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单元测试:
  1. 路径2(1-2-3-4-9)的测试用例:
    输入:arr={1,3,5} objectValue=3
    期望的结果:传入数组和目标值,能使用该方法在数组中查到该目标值,返回位置:1
    Junit单元测试:

  2. 路径3(1-2-3-4-5-6-8-2…)的测试用例:
    输入:arr={1,3,5} objectValue=4
    期望结果:传入数组和目标值,不能在数组中查到该目标值,返回:-1
    Junit单元测试:

  3. 路径4(1-2-3-4-5-7-8-2…)的测试用例:
    输入:arr={1,3,5} objectValue=2
    期望结果:传入数组和目标值,不能在数组中查到该目标值,返回:-1
    Junit单元测试:

5、总结

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

参考文章

基本路径测试案例分析相关推荐

  1. EMC设计与测试案例分析郑军奇第二版 296页电磁兼容EMC超强书籍

    EMC设计与测试案例分析郑军奇第二版 296页 20.0M 高清书签版.pdf 电磁兼容(EMC)标准解析与产品整改实用手册 WSQ 电磁兼容(EMC)设计与测试之汽车电子产品 [陈立辉 主编] 20 ...

  2. 软件测试的完整案例分析,清华大学出版社-图书详情-《软件测试基础与测试案例分析》...

    随着计算机系统规模和复杂性的急剧增加,计算机软硬件出现故障和系统失效的可能性也在增加.为保证计算机软件的质量,软件测试正日益受到IT业的重视.软件测试一般是指在规定的条件下,对计算机软件进行测试,发现 ...

  3. “不一样”的真实渗透测试案例分析

    前言 本文是由一次真实的授权渗透案例引申而出的技术分析和总结文章.在文章中我们会首先简单介绍这次案例的整体渗透流程并进行部分演绎,但不会进行详细的截图和描述,一是怕"有心人"发现端 ...

  4. 《移动App测试的22条军规》—App测试综合案例分析23.7节测试微信App对于操作系统特性的支持程度...

    本节书摘来自异步社区<移动App测试的22条军规>一书中的App测试综合案例分析,第23.7节测试微信App对于操作系统特性的支持程度,作者黄勇,更多章节内容可以访问云栖社区"异 ...

  5. 《移动App测试的22条军规》—App测试综合案例分析23.13节测试微信App的流量和电量消耗...

    本节书摘来自异步社区<移动App测试的22条军规>一书中的App测试综合案例分析,第23.13节测试微信App的流量和电量消耗,作者黄勇,更多章节内容可以访问云栖社区"异步社区& ...

  6. 《移动App测试的22条军规》—App测试综合案例分析23.4节测试微信App的手势操作...

    本节书摘来自异步社区<移动App测试的22条军规>一书中的App测试综合案例分析,第23.4节测试微信App的手势操作,作者黄勇,更多章节内容可以访问云栖社区"异步社区" ...

  7. 《移动App测试的22条军规》—App测试综合案例分析23.11节测试微信App对多语言和地区的支持...

    本节书摘来自异步社区<移动App测试的22条军规>一书中的App测试综合案例分析,第23.11节测试微信App对多语言和地区的支持,作者黄勇,更多章节内容可以访问云栖社区"异步社 ...

  8. 第三方支付系统如何测试?案例分析

    一.背景 近年来,随着互联网应用服务的发展.尤其是电子商务的勃兴,我国的第三方支付产业进入了爆炸式增长时期.目前,第三方支付企业的年交易总额已突破万亿元,在人民银行备案的第三方支付企业数量已达260多 ...

  9. 白盒测试案例分析(在十个球中找一个假球),并在Junit下进行测试

    题目 使用白盒测试用例设计方法为下面的程序设计测试用例(基本路径测试)并Junit下测试:程序要求:10个铅球中有一个假球(比其他铅球的重量要轻),用天平三次称出假球.程序设计思路:第一次使用天平分别 ...

最新文章

  1. Codeforces Round #698 (Div. 2)(A ~ F)6题全,超高质量题解)【每日亿题】2021/2/4
  2. 容器处于restarting状态_Docker容器操作-基础命令
  3. [转:作者: 出处:javaresearch ]选择JSF不选Struts的十大理由
  4. Microsoft二任CEO业绩对比,说明什么?
  5. 武科大计算机网络课程设计,【川大】计算机网络课程设计9013,奥鹏2017
  6. 1812:网格_指导设计:网格的历史
  7. java apk安装路径_android apk安装过程源码解析
  8. ANTLR VS FLEXBISON
  9. jumpserver v0.4.0 基于 CenOS7 的安装详解
  10. jQuery学习之二---jq核心
  11. 转:CentOS系统yum源配置修改、yum安装软件包源码包出错解决办法!
  12. IMDB情感分析数据集
  13. python基于协程的网络库gevent、eventlet
  14. Linux/Unix 中 wheel 组的来源
  15. 帆软报表开发之基础操作
  16. Eclipse错误: 找不到或无法加载主类或项目无法编译10种解决大法!
  17. 如何基于vue开发ui组件库(heaven-ui)
  18. switchport trunk native 的原理与作用
  19. 持续测试:企业的4项策略
  20. [转]linux shell 正则表达式(BREs,EREs,PREs)差异比较

热门文章

  1. 台式计算机哪款好,2019台式电脑质量排行_台式电脑哪款好 2019十款热门台式电脑排行榜...
  2. Win11的两个实用技巧系列之u盘怎么设置密码?
  3. 03-Java解决应用程序被安全阻止
  4. 怎样在Mysql中直接储存图片(转)
  5. 夜莺监控( Nightingale ),看这一篇就够了。(介绍、部署、配置、优化、自定义)
  6. 塑料注塑模具质量等级分类,质量不过剩很重量!
  7. OpenGL ES 3. 光照-散射光
  8. 关于十进制转换二进制C语言代码
  9. photoshop 错误:暂存盘已满打不开的解决方法
  10. error C4996 ‘pugixml_documentload‘ 被声明为已否决的解决方法