简单的Java代码测试样例设计
简单的Java代码测试样例设计
函数一
public static int findLast(int[] x, int y) {for (int i = x.length - 1; i > 0; i--) {if (x[i] == y) {return i;}}return -1;
}
指出错误
没有检测数组在下标为0处的元素,导致当最后一个匹配元素在下标为0处时函数失效,错误返回-1。
不触发fault
答案:
x: null
y: int(0)
很简单,把数组x设置为null空指针即可。这样函数直接会抛出空指针异常而不会继续执行,也就无从谈起触发后面的fault了。
触发fault,但不导致error
答案:
x: [int(0), int(1), int(2)]
y: int(1)
由于函数本身含有fault,所以当x为非空指针且为正确int数组时,含有fault函数得以运行,但是由于在i等于1的时候,函数就得出了结果并且返回下标值1,函数并没有执行与下标为0的逻辑有关的代码,所以函数在这个测试样例里的状态是全程正确的,即没有触发error。
导致error,但不导致failure
答案:
x: [int(0), int(1), int(2)]
y: int(3)
在这个测试样例里,函数执行了与下标为0的逻辑有关的代码,并且最终返回-1。从表面结果上来看,函数并没有失效,所以这不是一个failure,但是在函数执行的过程中发生了设计意图以外的偏差,即没有检测数组在下标为0处的元素,这是一个error。
函数二
public static int lastZero(int[] x) {for (int i = 0; i < x.length; i++) {if (x[i] == 0) {return i;}}return -1;
}
指出错误
此函数返回的是第一个值为0的元素的下标,而非最后一个。
不触发fault
答案:
x: null
和第一问一样的道理,当把数组x设置为null时,函数直接会抛出空指针异常而不会继续执行,也就无从谈起触发后面的fault了。
触发fault,但不导致error
答案:
x: [int(0)]
由于函数本身含有fault,所以当x为非空指针且为正确int数组时,含有fault函数得以运行,但是由于在i等于0的时候,函数就得出了结果并且返回下标值0,恰巧这个下标值0正好是正确结果,最重要的是在这个测试样例里第一个元素就是最后一个元素。所以虽然含有fault的函数被执行了,但是并没有发生什么逻辑上的状态错误。所以可以说这个测试样例触发fault,但不导致error。
导致error,但不导致failure
答案:
x: [int(1), int(2), int(3)]
首先由于x是有效的int数组,所以含有fault的函数被执行了。同时由于这个数组含有的元素多余一个,所以不会出现像上面那样由于第一个元素就是最后一个元素而恰巧避开error的情况,在这个例子里,函数的中间状态完全错误(搜索方向反了),所以导致了error。但是由于在x里并没有0,所以函数返回了-1,其表面结果是正确的,故说此测试样例不导致failure。
(完)
转载于:https://www.cnblogs.com/hyzeta/p/8563338.html
简单的Java代码测试样例设计相关推荐
- Python Web框架Tornado的异步处理代码演示样例
1. What is Tornado Tornado是一个轻量级但高性能的Python web框架,与还有一个流行的Python web框架Django相比.tornado不提供操作数据库的ORM接口 ...
- 个人作业项目报告(三)输出结果及测试样例的结果(附代码)
代码调用图 代码调用图的图例:(感谢刘泽@kfk的vs2015企业版的强大功能) 输出结果 因为助教给的程序是在WIndows平台上运行代码得到的结果,所以主要放出的是Windows平台下的结果,Li ...
- 详细讲解如何使用Java连接Kafka构建生产者和消费者(带测试样例)
1 缘起 学习消息队列的过程中,先补习了RabbitMQ相关知识, 接着又重温了Kafka相关的知识, 发现,我并没有积累Java原生操作Kafka的文章, 只使用SpringBoot集成过Kafka ...
- 【ZooKeeper Notes 3】ZooKeeper Java API 使用样例
查看PDF版本 转载请注明:@ni掌柜 nileader@gmail.com ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务框架,包含一组简单的原语集合.通过这些原语言的组合使用, ...
- java设计模式演示样例
创建模式 1.工厂方法模式(Factory Method) 将程序中创建对象的操作,单独出来处理,创建一个产品的工厂接口,把实际的工作转移到详细的子类.大大提高了系统扩展的柔性,接口的抽象化处理给相 ...
- 想说说关于在刷题网站(牛客 、C语言网、力扣)上测试样例过了但是OJ判错这档子事
目录 1.话题引入 2.在刷题过程中一些自己想说的 3.刷题时的一些小建议 4.个人感悟 1.话题引入 首先介绍一下我自己,本人是一名专科大一的学生:非计算机本专业:因为想拓宽自己的知识面和技术:于是 ...
- 100转换成二进制 java,一段简单的java代码,十进制转二进制
一段简单的java代码,十进制转二进制 mip版 关注:188 答案:5 悬赏:40 解决时间 2021-01-23 23:14 已解决 2021-01-23 05:43 代码如下,希望可以帮我 ...
- libsvm java 实例_LibSvm流程及java代码测试
使用libSvm实现文本分类的基本过程,此文参考 使用libsvm实现文本分类 对前期数据准备及后续的分类测试进行了验证,同时对文中作者的分词组件修改成hanLP分词,对数字进行过滤,仅保留长度大于1 ...
- YOLOv4 资源环境配置和测试样例效果
YOLOv4 资源环境配置和测试样例效果 基本环境:cuda=10.0,cudnn>=7.0, opencv>=2.4 一.下载yolov4 git clone https://githu ...
最新文章
- 基于GTID模式MySQL主从复制
- 二十六、数据挖掘电力窃漏电用户自动识别
- selenium实现登录百度(自动识别简单验证码)
- telnet用法 测试端口号是否可以使用
- 1以下数字Oracle打印缺少0,Oracle SQL中缺少關鍵字
- 【收藏】超全整理知识图谱相关学习资料,提供系统化的知识图谱学习路径
- 七夕动态表白代码,基于python
- 关于中国电信面试问到的问题
- 数据库索引选择的探索(二)之直方图
- matlab运行.m文件的命令,怎样在matlab的命令窗口运行.m文件
- QCon校友会之柴锋:10次QCon之旅
- stm32关于can线的双机通信实验
- CHM 格式打开不显示网页
- Pollard Rho 质因数分解
- mycobot 使用教程
- 《python爬虫实战》:爬取贴吧上的帖子
- 大学JAVA实验六 学生选课管理系统
- 【源码分享】ASP.NET企业办公综合管理系统源码(OA+CRM+进销存+财务)
- mysql没有my.ini但是有 my-default.ini原因以及解决办法
- 基于netty实现的socks5代理协议