发现了我写的一个bug
作者:网络转载 发布时间:[ 2015/10/15 14:37:08 ] 推荐标签:软件测试管理
private void getFiles(String path, List<File> list) {
File dir = new File(path);
if (dir.isFile()) {
list.add(dir);
} else {// is folder
File[] fileArr = dir.listFiles();
for (File file : fileArr) {
getFiles(file.getAbsolutePath(), list);
}
}
}
对,上面的这段代码是我写出来的bug。先说下该段代码的用意:传过来一个文件/目录路径,遍历下面的所有文件。
这段代码暴露出来的问题是,假如用户输入的是 ~@#/a/a8888% 这样的参数,此时,代码会执行到else里面,结果报了空指针异常。
这里面是犯了过分相信用户输入的错误,也属于程序的健壮性中的一种。
问题的部分先不多说了。由此,我却联想到了另外一个问题,到底该在何处去验证我们的输入。
看示例:
private void function(){
String para = getPara();
fun1(para);
fun2(para);
fun3(para);
……
}
像上面的这个示例一样,如果我们在每个方法里面都去验证数据的合法性,总觉得有些?嗦重复,但是如果不验证,只在getpara方法里面验证,万一哪天需求变更,或者是方法修改,抑或是别的人调用fun1()的时候没有考虑到数据的有效性,又会引发问题。
思来想去还是没有结果。终归结为具体问题具体对待吧
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11