作业要求来自:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/957

要求1:

准备工作:利用老师提供的git 命令,批量pull所有同学的代码。截图如下:

文件夹目录截图:

环境:windows10 cmd命令行

(一)被测试程序的作者:陈建宇

标题:命令行实现各个功能出错(按照老师说得颗粒度的问题是不是不用考虑?)

内容:

  • 重现步骤:
  1. 命令行打开到含有wf.exe的文件夹下面,按照SPEC的命令执行命令进行测试
  • 结果:出错。如下佐证材料中截图。
  • 预期结果(SPEC要求):
  • 运行结果与期待结果间的差异:差一个正确的输出

佐证材料:

(我对这个测试情况感到奇怪,不知道是不是自己环境的问题还是什么?我是按照文件夹名称排序来进行测试的……功能我就测试这些了....)

2017年9月24日10:24补充:杨老师帮我指出了bug所在,但是我还没有开始对此debug。

一开始觉得测试bug是比较容易的,没有想到引发一系列问题。本身每个人对SPEC的理解就不一样,答案也不同。而且样例太有限了,和Ranh学长讨论了一下,如果统计英文单词的话似乎还需要修正算法。我重新测试了我、高同学、Ranh的代码,total的数目在“战争与和平”下都不一样……现在还是很迷惑…

(二)被测试程序的作者:高远博

标题:程序没有出错,但是有细节bug和功能3和功能4的bug(按照老师说得颗粒度的问题是不是不用考虑?)

内容:

  • 重现步骤:
  1. 命令行打开到含有wf.exe的文件夹下面,按照SPEC的命令执行命令进行测试
  2. 功能4-1 输出结果不对。期待输出结果和功能1(见上图)相同 没有重定向,后来学长改正了此bug并且截图给我。但是我又发现了bug6

  3. 没有输出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

                 if(args.Length== && args[]=="-s")
{
//这样会报错,如下图示,debug失败
StreamReader sr = new StreamReader(Console.OpenStandardInput(), Encoding.Default);
String line ;
//if(!string.IsNullOrEmpty(sr))
while((line=sr.ReadLine())!=null)
{
line += line;
}
WordCount wordCount = new WordCount();
wordCount.CountText(line); }
else
{
Console.WriteLine("无效参数,请检查~");
}

          

                 //功能4-1的分支里面加了if语句判断
if(args.Length== && args[]=="-s")
{
Console.WriteLine("4---1");
//还是只能处理一行的重定向文本
string line =Console.ReadLine();
WordCount wordCount = new WordCount();
wordCount.CountText(line);
}
else
{
Console.WriteLine("无效参数,请检查~");
}

以上我改到这里吧。

CJY同学更改了git,我重新pull了,想看他改了哪里,可以对比。首先测试如下功能1、2均可输出在test.txt是一样的。开始debug。

他自己修改了一部分bug,之前是因为没用到命令行参数导致的,所以需要运行程序之后再输入文件名等。

前后对比如下。

他的代码没有注释,然后我C的基础,关于读写文件这块儿又挺差的,就快到时间了,好紧张。我尝试了一阵,发现他的逻辑判断有问题,分支语句是可以debug的点。但是尝试一番,没有编译通过。【纠结,放弃】


2017年9月28日00:24添加:老师赞了王磊学长的作业,我看了他的博客然后惊喜地发现我的程序被测试了,而且提到了新的测试点。他测试的是我第一次debug之后的程序。自己好马虎。可能因为截图总是比较方便的吧。然后我还想为学长简洁表达的能力赞一个。

bug重现:

debug:注释测试信息;判断文件夹和文件重名的情况。

第三周作业3——Bug Report的更多相关文章

  1. JAVA第三周作业(从键盘输入若干数求和)

    JAVA第三周作业(从键盘输入若干数求和) 在新的一周,我学习了JAVA的IO编程.下面的代码实现了从键盘输入若干数求和的目标.import java.util.Scanner; public cla ...

  2. 第三周作业、实时操作系统µC/OS介绍及其它内容

    作业要求 见<实时控制软件设计>第三周作业 1 阅读笔记--µC/OS 1.1 基本介绍 µC/OS是由Micrium公司研发的实时操作系统,以µC/OS-II或µC/OS-III为内核, ...

  3. 2018-2019-1 20189221《Linux内核原理与分析》第三周作业

    2018-2019-1 20189221<Linux内核原理与分析>第三周作业 实验二 完成一个简单的时间片轮转多道程序内核代码 实验过程 在实验楼中编译内核 编写mymain.c函数和m ...

  4. 2017-2018-2 1723《程序设计与数据结构》第三周作业 & 实验一 总结

    作业地址 第三周作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1667 提交情况如图: 实验一:https://edu.c ...

  5. 第三周作业(一)VS安装及单元测试练习

    第三周作业(一) 需求:练习教科书第22~25页单元测试练习,要求自行安装Visual Studio开发平台,版本至少在2010以上,要求把程序安装过程和练习过程写到博客上,越详细越好,要图文并茂,没 ...

  6. 2017-2018-1 JaWorld 第三周作业

    2017-2018-1 JaWorld 第三周作业 团队展示 队员学号 队名 团队项目描述 队员风采 团队的特色 团队合照 团队初步合作 前两周的反思与总结 需要改进的地方 团队选题 *采访老师或有开 ...

  7. 2017-2018-1 JAVA实验站 第三周作业

    2017-2018-1 JAVA实验站 第三周作业 团队展示 队名 JAVA实验站 拟作的团队项目描述 (2048)增加其他模式,使得2048更加丰富多彩 团队的首次合照 团队的特色描述 团队内部很团 ...

  8. 2017-2018-1 20179205《Linux内核原理与设计》第三周作业

    <Linux内核原理与分析>第三周作业 教材学习总结 第三章 进程管理 进程是Unix操作系统抽象概念中最基本的一种,是正在执行的程序代码的实时结果:线程,是在进程中活动的对象.而Linu ...

  9. 第三周作业-课本&&视频学习

    <网络攻防技术与实践>第三周作业 Part I 寻找自己留在互联网上的足迹并消除隐私 1.1 google/baidu搜索自己的qq号 搜索结果如图,搜到的有用信息其实就是图上这么几条,能 ...

随机推荐

  1. FastJson之JsonObject, JsonString, JavaBean,List快速转换

    // 将json字符串转换为json对象 JSONObject jsonObject = JSON.parseObject(jsonStr); // {"retState":&qu ...

  2. js中如何访问对象和数组

    js中如何访问对象和数组 一.总结 一句话总结:js访问对象点和中括号,访问数组的话就是中括号 对象 . [] 数组 [] 1.js访问对象的两种方式? . [] 可以使用下面两种方式访问对象的属性和 ...

  3. 微服务设计 - api版本控制

    要描述了几种API版本控制的方法.用户可以查询原始的API,或者添加定制的头文件来接收特定的版本.如果应用程序收到一个重大修订,将URI修改为V2.在进行迭代改进时,将创建与更改日期相一致的端点,并允 ...

  4. [Java学习] Java Object类

    Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来. 定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类.例如: 1 ...

  5. every day a practice —— morning

    In 25 years, Panda Express has transformed from a single restaurant in a southern California mall to ...

  6. JDK1.5 新特性

    1:自动装箱与拆箱 自动装箱:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中. 自动拆箱:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue ...

  7. CF1082G Petya and Graph

    题意 定义图权 = 图中边权总和 - 图中点权总和(空图的图权=0),求 n 个点 m 条边的无向图最大权子图. 把边看成点,这个点与两个原图中的点连边.直接最小割求最大闭合子图即可.

  8. 悟空CRM框架下载模板

    1.你可以把你要下载的模板放在这个项目的Public/excelmodel目录下,然后你就可以在页面中编写代码 你可以在下载按钮这里编写:onclick="window.location.h ...

  9. page上BeanId与ActionType中的ParameterId

    今天遇到一件有意思的异常. 一个基于EO的VO在页面加载进来之后就CreateRow了一行数据,主键HeaderId也相应的插入了值,但是在保存的时候,老是报HeaderId不能为空的异常. 经查,页 ...

  10. Keil 中文显示乱码解决办法

    在将代码文件转换成UTF-8之前还要把Keil的环境也设置成UTF-8的模式,方法是:“Edit”——〉“Configuration...”——〉“Encoding”,选择“Encode in UTF ...