热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

个人第三次软件工程作业功能测试

第一部分—具体要求:要求包括:(1)bug标题,(2)bug内容,含测试环境和准备工作、测试的步骤、运行结果、期待的结果、运行结果与期待结
第一部分

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

 

被测试作者:高远博同学

git地址:https://coding.net/u/Rainbows/p/wc/git

标题:没有区分大小写

环境:win10,控制台输入命令

重现步骤:

  1.exe程序根目录中shift右键空白处启动控制台

  2.输入   wf -s test.txt  

  3.运行结果:没有统一小写

  截图如下:

   预期结果:

  

标题:输出格式不正确

环境:win10,控制台输入命令,codeblocks

重现步骤:

  1.exe程序根目录中shift右键空白处启动控制台

  2.输入   wf -s war_and_peace.txt  

  3.运行结果:输出格式不对

  截图如下:

 

  预期结果:

 

 

  总结:两次输出格式都不符合要求,不过这个问题是小问题,易于修改,程序的主要功能函数还是符合预期的。

 

第二部分

—具体要求: 记录所有为你的代码找到的bug,合并相同的bug,亲自重现bug现象,发布bug报告。

 

1.被测试作者:自己

标题:输入不符合标准

环境:win10,控制台输入命令

重现步骤:

  1.exe程序根目录中shift右键空白处启动控制台

  2.输入   wf gone_with_the_wand

  3.运行结果:无法正常打开

 

 

 

 

 2.被测试作者:自己

标题:输出不符合标准

环境:win10,控制台输入命令

重现步骤:

  1.exe程序根目录中shift右键空白处启动控制台

  2.输入   wf Gone_with_the_wind

  3.运行结果:输出结果明显单词的个数不正确

  截图如下:

 

 

3.被测试作者:自己

标题:输出不符合标准

环境:win10,控制台输入命令

重现步骤:

  1.exe程序根目录中shift右键空白处启动控制台

  2.输入   wf Gone_with_the_wind

  3.运行结果:输出结果有个别单词划分错误

  截图如下:

 

 

4.被测试作者:自己

标题:输出不符合标准

环境:win10,控制台输入命令

重现步骤:

  1.exe程序根目录中shift右键空白处启动控制台

  2.输入   wf -s

  3.运行结果:输出结果为全部单词而不是要求的前十

  截图如下:

 

5.被测试作者:自己

标题:编译错误

环境:win10,vs2013

重现步骤:

  在vs2013调试代码出现bug

  截图如下

 

 

 

第三部分

—具体要求: 修改bug。根据自己和其他同学提交的bug报告,修改自己代码的bug,或clone其他任意同学的代码,另建git,在此git中修改这位同学的bug。

 

对应第二部分的五个bug:

 

1.按照要求输入无法正常读取

  这个原因是我在这周优化代码时发现到的问题。在我最开始的代码中,为了图方便把读取文件的目录放在了“G://”下。这样设置很容易出现错误,因为考虑到不是每个人的盘符都能到G盘。而且我看到很多同学的程序把路径都设置成程序的根目录下,所以我也把我的程序改成这样。

  改动的部分代码如下:

  

1 char const *a = argv[i];
2 char const *b = ".txt";
3 std::string const& cc = std::string(a) + std::string(b);
4 char const *c = cc.c_str();
5 fin.open(c);

部分代码,合并字符串,不再是g://下

 

2.输出结果单词的个数不正确

  这个bug也是在这周才发现,因为在上周测试的时候,因为单篇文章的单词书很多,所以很难判断是否出错。这周在优化的过程中发现了这个bug。是由于循环写错了,已经进行修改。

  部分代码:

1 while(fin >> strWord)
2 {
3 StringToLower(strWord);
4 erasePunct(strWord);//调用标点判断函数
5 wmap[strWord]++;
6 }

View Code

  修改后截图:

  

 

3.输出结果有个别单词划分错误

  这个问题在第一周进行测试的时候就已经发现,当时没有好的解决方法。在这周进行优化的时候,读了《C++ prime》这本书。知道可以利用string类提供的可向前和向后遍历的迭代器iterator。同时可以利用内置的ispunct()函数直接判断参数是否为标点符号或特殊符号,则返回TRUE,否则返回NULL(0)。这样大大提高了识别率。修改后的部分代码:

1 void erasePunct(string &s)//利用字符串判断和iterator迭代器的特性直接判断标点符号
2 {
3 string::iterator it = s.begin();
4 while(it != s.end())
5 {
6 if(ispunct(*it))//ispunct()可以直接判断参数是否为标点符号或特殊符号。
7 it = s.erase(it);
8 else
9 ++it;
10 }
11 }

View Code

 

  修改后截图:

 

4.输出结果为全部单词而不是要求的前十

  这个问题在我第一周设计程序的时候就没太明白。因为不知道到底哪部分要全输出,哪部分要只输出前十。在我的理解下单文件读取的应该都是全部输出。多个文件读入的时候应该只输出前十的单词。但是这周在优化程序的时候看到大部分同学都是在war_and_peace这个文件中只输出前十,所以我也该为这样。

  修改后截图:

 

5.编译错误

  这个bug很奇怪。因为这周的任务是优化性能,所以我把原本程序中运行速度最慢的部分做了优化。在CodeBlocks中调试并且编译成功。而且在最后测试中也完全符合预期。但我在vs2013中调试就会跳出错误。我bing google了很多网页,怀疑是野指针的问题。便开始修改,修改了好几个版本的确可以正常运行,但是又会出现各种奇奇怪怪的bug。所以这个bug暂时还是没办法修复。

 

转:https://www.cnblogs.com/vrocker/p/7597926.html



推荐阅读
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
author-avatar
落单鸟人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有