第三周作业3——Bug Report
作业要求来自:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/957
要求1:
准备工作:利用老师提供的git 命令,批量pull所有同学的代码。截图如下:
文件夹目录截图:
环境:windows10 cmd命令行
(一)被测试程序的作者:陈建宇
标题:命令行实现各个功能出错(按照老师说得颗粒度的问题是不是不用考虑?)
内容:
- 重现步骤:
- 命令行打开到含有wf.exe的文件夹下面,按照SPEC的命令执行命令进行测试
- 结果:出错。如下佐证材料中截图。
- 预期结果(SPEC要求):
- 运行结果与期待结果间的差异:差一个正确的输出
佐证材料:
(我对这个测试情况感到奇怪,不知道是不是自己环境的问题还是什么?我是按照文件夹名称排序来进行测试的……功能我就测试这些了....)
2017年9月24日10:24补充:杨老师帮我指出了bug所在,但是我还没有开始对此debug。
一开始觉得测试bug是比较容易的,没有想到引发一系列问题。本身每个人对SPEC的理解就不一样,答案也不同。而且样例太有限了,和Ranh学长讨论了一下,如果统计英文单词的话似乎还需要修正算法。我重新测试了我、高同学、Ranh的代码,total的数目在“战争与和平”下都不一样……现在还是很迷惑…
(二)被测试程序的作者:高远博
标题:程序没有出错,但是有细节bug和功能3和功能4的bug(按照老师说得颗粒度的问题是不是不用考虑?)
内容:
- 重现步骤:
- 命令行打开到含有wf.exe的文件夹下面,按照SPEC的命令执行命令进行测试
-
-
功能4-1 输出结果不对。期待输出结果和功能1(见上图)相同 没有重定向,后来学长改正了此bug并且截图给我。但是我又发现了bug6
-
没有输出top10 word and count.截图
- 结果:如上图所示。
- 期待的结果:
(三)被测试程序的作者:冉华
标题:输出结果有差异,结果对错未知
重现步骤:用我的或者高同学的程序统计the_dead_return.txt 和冉华学长的对比。
内容:
1.
这个命令是用来打开防火墙设置的。where java 类似的语句可以知道环境变量路径。
2.我太马虎了,用gcc的时候因为编译器提示了gcc fail.cpp 不能编译,所以我就百度了正确的命令。而csc Promgram.cs没有提示,我就没注意到生成的文件名。重新测试如下:
这里我好奇the_dead+return的单词数目是否正确。我又用高同学的代码测试了一下,结果惊呆了,一开始我用的战争与和平的文档,然后我的小黑窗口就不断刷屏,刷屏……让我又发现了一个bug。也发现自己测试的时候,测试样例不全面的缺漏。更新两位学长的bug。统计数字不一样。高同学没有输出统计top 10 单词数目。这是什么顺序呢?然后,我把该文件复制、覆盖我项目的测试文件,测试如下:
我和高同学都是106,这样能够说明我们的结果是对的吗?未知。。。。
功能1-4都是实现了的,但是统计结果有差异。
(四)被测试程序作者:代秋彤
准备工作:
内容:
结果:如上图示……
(五)被测试程序作者:王超
PS:或许未完待续。我先测试这些吧,如果有同学希望被我测试或者还找到了我作业作业中的bug,请与我联系,非常感谢~
2017年9月24日10:28 继续追加:
要求2:
我已经找了自己的一些bug,如上。并且和学长们讨论之后,还发现了自己的bug。词数目和word统计不一样。但是单词量到底是多少真的不知道该如何确定正确答案......
要求3 修改bug。修改任意同学 (含自己)的bug至少5处。修改后要通过测试,证实bug已修正 (注意,此处遗漏了证实未引入新的bug) ,给出测试报告。在老师的提醒下,我想修改ChenJY同学的bug。然后去了他的博客,想看看他的思路。发现了这篇博客,并做出了评论,链接→http://www.cnblogs.com/chjy/p/7594930.html
我重现了自己的bug
先修改我自己的吧。git地址:https://git.coding.net/SuperCodingChao/wfProject.git
1 if(args.Length==1 && args[0]=="-s") 2 { 3 //这样会报错,如下图示,debug失败 4 StreamReader sr = new StreamReader(Console.OpenStandardInput(), Encoding.Default); 5 String line ; 6 //if(!string.IsNullOrEmpty(sr)) 7 while((line=sr.ReadLine())!=null) 8 { 9 line += line; 10 } 11 WordCount wordCount = new WordCount(); 12 wordCount.CountText(line); 13 14 } 15 else 16 { 17 Console.WriteLine("无效参数,请检查~"); 18 }
1 //功能4-1的分支里面加了if语句判断 2 if(args.Length==1 && args[0]=="-s") 3 { 4 Console.WriteLine("4---1"); 5 //还是只能处理一行的重定向文本 6 string line =Console.ReadLine(); 7 WordCount wordCount = new WordCount(); 8 wordCount.CountText(line); 9 } 10 else 11 { 12 Console.WriteLine("无效参数,请检查~"); 13 }
以上我改到这里吧。
CJY同学更改了git,我重新pull了,想看他改了哪里,可以对比。首先测试如下功能1、2均可输出在test.txt是一样的。开始debug。
他自己修改了一部分bug,之前是因为没用到命令行参数导致的,所以需要运行程序之后再输入文件名等。
前后对比如下。
他的代码没有注释,然后我C的基础,关于读写文件这块儿又挺差的,就快到时间了,好紧张。我尝试了一阵,发现他的逻辑判断有问题,分支语句是可以debug的点。但是尝试一番,没有编译通过。【纠结,放弃】
2017年9月28日00:24添加:老师赞了王磊学长的作业,我看了他的博客然后惊喜地发现我的程序被测试了,而且提到了新的测试点。他测试的是我第一次debug之后的程序。自己好马虎。可能因为截图总是比较方便的吧。然后我还想为学长简洁表达的能力赞一个。
bug重现:
debug:注释测试信息;判断文件夹和文件重名的情况。