观察两段代码:

(1) 发现代码中的错误;

(2) 设计测试用例,不执行fault部分;

(3) 设计测试用例,执行fault部分,但不出现error情况;

(4) 设计测试用例, 出现error情况,但不发生failure。

代码一:

public int findLast (int[] x, int y) {
//Effects: If x==null throw
NullPointerException
// else return the index of the last element
// in x that equals y.
// If no such element exists, return -1
for (int i=x.length-1; i > 0; i--)
{
if (x[i] == y)
{
return i;
}
}
return -1;
}
// test: x=[2, 3, 5]; y = 2
// Expected = 0

(1) for循环中循环条件为i>=0;

(2) x=[],y=2;

对于此测试用例,x为空,不执行for循环,直接返回NullPointerException;

理论结果:NullPointerException,

实际结果:NullPointerException;

(3) x=[1,2,3],y=2;

对于此测试用例,最后一个等于y的值不在x[0]处,而在x[1] 出,所以for循环并没有执行到"i>0"的条件出,所以不会出现error状态;

理论结果:1,

实际结果:1;

(4) x=[3,4,5],y=2;

对于此测试用例,虽然执行到了error状况,但由于x中并没有与y相等的值,所以得到结果是正确的,所以没有出现failure;

理论结果:-1,

实际结果:-1;

public static int lastZero (int[] x) {
//Effects: if x==null throw NullPointerException
// else return the index of the LAST 0 in x.
// Return -1 if 0 does not occur in x
for (int i = 0; i < x.length; i++)
{
if (x[i] == 0)
{
return i;
}
} return -1;
}
// test: x=[0, 1, 0]
// Expected = 2

(1)for循环的方向反,应该从i = x.length-1执行到i = 0;

(2)无论如何代码都会执行进入for循环,所以不存在样例不执行fault;

(3)x=[1];这里执行时会进入for循环,即进入了fault,但是由于x中只有一个元素,所以不存在循环执行的正反问题,所以没有error状态;

理论结果:-1,

实际结果:-1;

(4)x=[1,0,2];此用例执行时会发生error状态,但是由于x中只有一个0,所以for循环执行顺序不会对结果产生影响,因此没有发生failure;

理论结果:1,

实际结果:1。

转载于:https://www.cnblogs.com/xzzily-mitao/p/5267528.html

软件测试学习笔记:找代码中的fault,并设计特定的测试用例相关推荐

  1. SpringBoot学习笔记(9)----SpringBoot中使用关系型数据库以及事务处理

    在实际的运用开发中,跟数据库之间的交互是必不可少的,SpringBoot也提供了两种跟数据库交互的方式. 1. 使用JdbcTemplate 在SpringBoot中提供了JdbcTemplate模板 ...

  2. 软件测试学习笔记(九)淘宝测试

    软件测试学习笔记(九)淘宝测试 视频链接:软件测试_中国大学MOOC 1.淘宝性能测试经历哪三个发展阶段?简述其工作内容. (1)业务发展-基础阶段 编写性能测试白皮书和测试文档,整理了常用性能测试的 ...

  3. 软件测试学习笔记与思考(1)---软件测试基础

    这学期开始学习软件测试,课本是软件测试(慕课版)郑炜,刘文兴,杨喜兵,王文鹏,吴潇雪主编的. 本来没有打算写相关博客的,但是在做课后习题时想到做测试必然少不了思考,从不同的角度分析,于是就打算用博客来 ...

  4. (实验38)单片机,STM32F4学习笔记,代码讲解【SD卡实验】【正点原子】【原创】

    文章目录 其它文章链接,独家吐血整理 实验现象 主程序 SD卡驱动程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创] ( ...

  5. (实验37)单片机,STM32F4学习笔记,代码讲解【内存管理实验】【正点原子】【原创】

    文章目录 其它文章链接,独家吐血整理 实验现象 主程序 内存池初始化程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创] ...

  6. 软件测试学习笔记(三)控制数据流测试

    软件测试学习笔记(三)控制&数据流测试 视频链接:软件测试_中国大学MOOC 2.3 结构化覆盖 2.4 控制流测试 2.5 数据流测试 1.什么是顶点覆盖? 对每个测试需求,即可达顶点,都可 ...

  7. 【软件测试】软件测试学习笔记(一)

    文章目录 一.软件测试基础 1.1.软件概述 1.1.1.软件生命周期 1.1.2.软件开发模型 1.1.2.1.瀑布模型 1.1.2.1.1.瀑布模型的特点 1.1.2.1.2.瀑布模型的优缺点 1 ...

  8. (实验50)单片机,STM32F4学习笔记,代码讲解【串口IAP实验】【正点原子】【原创】

    文章目录 ❤2023重新理解记录 其它文章链接,独家吐血整理 实验现象 主程序 IAP初始化程序 代码讲解 文章目录 ❤2023重新理解记录 其它文章链接,独家吐血整理 实验现象 主程序 IAP初始化 ...

  9. SpringBoot学习笔记(4)----SpringBoot中freemarker、thymeleaf的使用

    1. freemarker引擎的使用 如果你使用的是idea或者eclipse中安装了sts插件,那么在新建项目时就可以直接指定试图模板 如图: 勾选freeMarker,此时springboot项目 ...

最新文章

  1. Redis集群两种配置方式
  2. 如何在电脑桌面添加计算机网络等,如何实现在电脑桌面上添加文字提醒
  3. 高影响力期刊iMeta扬帆起航!第一篇文章已上线!
  4. Kali Linux安装中文输入法
  5. OpenStack Liberty 连接vCenter
  6. (转)DevExpress 汉化(简单、实用、快速)
  7. 追一科技热招职位来袭:AI新世界,不做旁观者
  8. 计算机专业实训计划,计算机专业实习计划范文
  9. ajax 返回flase,Django request.is_ajax返回false
  10. Error in nextTick
  11. 依赖注入与对象间关系
  12. python接收最新邮件_Python接收Gmail新邮件并发送到gtalk的方法
  13. 火车图 、jackson图
  14. 2017百度之星资格赛:1001. 度度熊保护村庄(floyd最小环)
  15. C语言测试:想成为嵌入式程序员应知道的0x10个基本问题
  16. FRAGSTATS.4中用移动窗口算法计算景观指标步骤
  17. 教你Word一键自动生成目录步骤
  18. python图片后缀转换---统一转换成.jpg
  19. 云渲染和渲染农场有什么区别?看完你就明白了
  20. R语言实战之基本统计分析

热门文章

  1. Eclipse 用Hibernate Tools 生成 .hbm cfg.xml等文件
  2. Android桌面悬浮窗进阶,QQ手机管家小火箭效果实现
  3. DIV CSS display (block none inline)属性的用法教程
  4. Apache Mina开发手册
  5. java 空指针异常(java.lang.NullPointerException)
  6. /proc/xx/maps命令
  7. 前端二十七:四彩边框
  8. C#中[WebMethod]的用法,aspx、ashx、asmx
  9. 微软发布Azure SignalR Service的预览版本
  10. 公有/私有/保护继承、overload/overwrite/override之间的区别