2020秋软件工程 (东北师范大学 - 计算机)

  1. 班级首页
  2. 作业列表
  3. 详情

作业要求20200924-2 功能测试 [已截止]


使用附录中的脚本 (不反对手动)pull任意或全部同学git中的wf代码。
以“作业要求 20200917-2 词频统计”[https://edu.cnblogs.com/campus/nenu/2019fall/homework/6583]中截止时间后commit的任意版本为准,对代码做功能测试。

允许并期待你联系代码原作者。

此题对原作者没有伤害。

要求1 bug计分。阅读教材第298页,发布bug报告。 (第1位发布10分,重现1分)

要求包括: (1)bug标题,(2)bug内容,含测试环境和准备工作、测试的步骤、运行结果、期待的结果、运行结果与期待结果间的差异, (3)佐证材料,至少包括运行截图、引用作业要求 (wf spec)中的条款。

鼓励同步在群里发布bug,通知原作者和由其他同学重现验证。

  • bug的颗粒度低于作业要求中的"功能"。作业要求共4个功能,其中某一功能未实现,不视为bug。

  • 以下区分 (1)不同bug, (2)同一bug的不同报告。

相同的bug,第1位发布的同学,计10分。以后每位同学发布相同bug的报告,计1分。同一个bug,复现了别人的结果,重新表述、重新截图作为实验记录,视为相同bug的不同报告,计1分。

不同作者代码中的bug,即使造成这一bug现象的原因相同,也视为不同bug。第1位发布不同bug的报告,计10分。

要求2 记录所有为你的代码找到的bug,合并相同的bug,亲自重现bug现象,发布bug报告。 (10分)

要求 bug报告要求同上。没有找到bug的,此题不得分。如果有同学认为自己的代码如此完美,以至于没有被别人找到bug,那么此题找自己的bug并报告,或者通过尽可能多地找别人代码的bug得分。

要求3 修改bug。根据自己和其他同学提交的bug报告,修改自己代码的bug,或clone其他任意同学的代码,另建git,在此git中修改这位同学的bug。 (10分)

要求 修改任意同学 (含自己)的bug至少5处。修改后要通过测试,证实bug已修正 (注意,此处遗漏了证实未引入新的bug) ,给出测试报告。

如果你有更合理的计分规则,有利于提交bug和修改bug,请在群里 @ 杨贵福 讨论。谢谢。

附录pull脚本

这是上上一届的脚本,本届的学生姓名和地址还未录入,原理相同。

在 git bash中 测试通过

#mkdir  翟宇豪
#cd     翟宇豪
#git init
#git pull https://git.coding.net/Rio56/wf.git master

declare -A map=(["冉华"]="https://git.coding.net/Dawnfox/wf.git"
        ["刘淑霞"]="https://git.coding.net/liusx0303/CountWords.git"
        ["胡佑蓉"]="https://coding.net/u/huyr000/p/countWord/git"
        ["王超"]="https://git.coding.net/SuperCodingChao/wfProject.git"
        ["高远博"]="https://coding.net/u/Rainbows/p/wc/git"
        ["陈建宇"]=" https://coding.net/u/MR__Chen/p/Demo/git" 
        ["代秋彤"]="https://git.coding.net/a284617374/soft.git" 
        ["方铭"]="https://coding.net/u/MingZi-/p/cipingtongji/git"
        ["葛美义"]=" https://git.coding.net/gmyznb/wordcount1.git"
        ["黄泽宇"]="https://coding.net/u/huangzy_95/p/wf/git"
        ["贾男男"]="https://git.coding.net/lynlynyess/Wordcount.git"
        ["贾雅杰"]="https://git.coding.net/jyj5951/wf.git"
        ["姜珊"]="https://coding.net/u/js2017102865/p/StreamReader/git"
        ["阚博文"]="https://git.coding.net/zbwd666/zbwd.git"
        ["李传康"]="https://git.coding.net/lick468/wf.git"
        ["李圆圆"]="https://git.coding.net/lyy181/count.git"
        ["蔺依铭"]="https://git.coding.net/Hitagi123/word-count.git"
        ["刘成志"]=" https://git.coding.net/liuchengzhi0944/word_dirt.git" 
        ["刘耀泽"]="https://coding.net/u/liuyz349/p/word_count/git"
        ["米赫"]="https://git.coding.net/immixiaomi/wf.git"
        ["苗威"]="https://git.coding.net/Vrocker/wf.git"
        ["任思佳"]="https://coding.net/u/rensijia/p/count-words/git"
        ["邵朔"]="https://coding.net/u/ss505072461/p/wf/git"
        ["宋雨"]="https://coding.net/u/songyuu/p/python_wf/git"
        ["田继平"]="https://git.coding.net/tianjiping/11111.git"
        ["王航"]="https://git.coding.net/wangh013/wordNumber.git"
        ["王磊"]="https://git.coding.net/137911934/SE20170914.git"
        ["王伟东"]="https://git.coding.net/wangwd/SecondAssignment.git"
        ["王玉玲"]="https://coding.net/u/tutu123/p/tutu1234/git"
        ["吴雨丹"]="https://git.coding.net/clairewyd/wf.git"
        ["徐劭斌"]="https://git.coding.net/xushaobin/ConsoleApplication3.git"
        ["杨梓瑞"]="https://git.coding.net/Vector121/homework.git"
        ["袁玥"]="https://git.coding.net/yuanyue2017102885/wordcount_1and2.git"
        ["翟宇豪"]="https://git.coding.net/Rio56/wf.git"
        ["张恩聚"]="https://git.coding.net/ZhangEJ/wf.git"
        ["邹双黛"]="https://git.coding.net/szjzsd/123.git"
        )
        
for key in ${!map[@]} ; do
    mkdir $key
    cd  $key
    git init
    git pull ${map[$key]} master
    cd .. 
done  


#echo ${!map[@]}
#
#echo ${map[@]}
#
# for key in ${!map[@]} ; do
#     #    echo ${map[$key]}
#     echo $key;
# done  
# 语法学习自 [https://coding.net/u/ZhangEJ/p/wf/git/tree/master/wf11]

合规脚本 https://e.coding.net/nenutest/wf_check/wf_pull_check.git

假装学生的作业 https://e.coding.net/nenutest/wf_check/wf_check.git

readme.md

#合规检测脚本

 

## 用途

 

用于学生自行检测目录结构、文件命名、命令行参数是否正确。

 

## 原理

 

此脚本将会从两个不来git来源pull代码,然后执行、比较执行结果是否与期待的相同。

 

## 使用方法

 

使用前修改 pull_check.sh,在“declare -A map=”接下来的脚本中增加你或你的同学的姓名和git repository地址。

 

## 不保证条款

 

此脚本只供参考,不提供任何保证,包括不限于以下条款。

 1. 教师会使用此脚本以外的测试用例检测学生作业中的代码,因此能够通过示例测试数据检验并不意味着代码正确。

 2. 如果使用此脚本能够正确pull到代码的话,你的git和文件命名很可能合规。

 3. 如果使用此脚本不能够正确pull到代码或者不能自动执行wf的话,你的git和文件命名极其可能不合规。

 

## 运行示例

 

运行效果大致如下,这是pull了两位同学的代码,并且检测通过。

```

$ ./pull_check.sh

mkdir: cannot create directory ‘老吉’: File exists

Reinitialized existing Git repository in C:/git/xxhb_docs_20200908@zhumao/log/lo                                                    gs工作记录/20200925/构建之法/老吉/.git/

From https://github.com/younggiftgit/wf_check

 * branch            master     -> FETCH_HEAD

Already up-to-date.

mkdir: cannot create directory ‘小扣’: File exists

Reinitialized existing Git repository in C:/git/xxhb_docs_20200908@zhumao/log/logs工作记录/20200925/构建之法/小扣/.git/

From https://e.coding.net/nenutest/wf_check/wf_check

 * branch            master     -> FETCH_HEAD

Already up-to-date.

IN 老吉

diff war and peace,没有消息就是好消息

diff simple,没有消息就是好消息

IN 小扣

diff war and peace,没有消息就是好消息

diff simple,没有消息就是好消息

```

 

## 目录结构要求

 

此脚本需要与同目录下的以下目录和文件一同使用,保持目录结构不变。

```

│  pull_check.sh

├─data_exp

│      simple.exp

│      war_and_peace.exp

└─data_in

       simple.txt

       war_and_peace.txt

```

 

## 运行环境

 

在以下环境运行通过。

 

windows操作系统下,git自带的bash。

 

```

git version 2.6.4.windows.1

```

 

```

GNU bash, version 4.3.42(4)-release (x86_64-pc-msys)

```

 

 

readme.md

#wf_check

 

##用途

 

作业demo,以作弊的方式输出正确答案。

用于向学生提供正确的目录结构、文件命名、命令行参数示例。

假装这是一位同学提交的作业。

 

##执行

 

以下运行效果是在bash下截取的,在windows下也符合作业要求。但是,(1)由命令行参数指定文件名与(2)由控制台输入文件,*不可*混淆。

 

以-s simple.txt作为命令行参数,执行wf得到如下结果。

 

```

$ ./wf -s simple.txt

Total 17

      2 the

      2 face

      1 rose

      1 quick

      1 over

      1 lazy

      1 jumps

      1 fox

      1 dog

      1 desk!

      1 brown

      1 bee

      1 bed

      1 bag

      1 a

```

 

##原理

 

C++代码*并未*对词频计数,而是根据文件名输出答案,答案来自类似以下执行的结果。

 

```

$ ./demo.sh -s simple.txt

Total 17

      2 the

      2 face

      1 rose

      1 quick

      1 over

      1 lazy

      1 jumps

      1 fox

      1 dog

      1 desk!

      1 brown

      1 bee

      1 bed

      1 bag

      1 a

```

 

以下是教师的备忘,不是本作业要求的组成部分

  • bug报告时效

因为以最新代码为准,所以在你发布bug以前,作者成功修改了bug导致你无法重
现bug,你的bug报告无效。

由于规定了截止时间后的任意版本,因此可以找修改bug前的版本,所以不必有此约束。

  • bug修改

作者修改bug加分,或不修改bug扣分。

bug报告是否描述清楚,以教师的阅读理解能力为准。

  • 挑bug分数没有上限

最高分值没有上限。每个bug第一位发布的同学得10分,第二位(以及此后)发布的同学各得1分。历史上有过因此高分的,确实可能超过本次作业满分,比如得到200分。


学号 成员名 提交作业标题 提交日期 分数
提交: 34 人,未提交: 5 人
未提交名单: 板砖组    _Wetry    最美构建    null小组    背个棒