WordCount 扩展功能

合作者 :201631062222 ,201631062232

代码地址::https://gitee.com/biubiubiuLYQ/ceshi_secend

作业链接:https://edu.cnblogs.com/campus/xnsy/2018softwaretest2398/homework/2187

一.扩展功能

  本次主要是对上次功能的补充和完善,此次新增了以下几点功能

  wc.exe -s            //递归处理目录下符合条件的文件

  wc.exe -a file.c     //返回更复杂的数据(代码行 / 空行 / 注释行)

  wc.exe -e stopList.txt  // 停用词表,统计文件单词总数时,不统计该表中的单词

二.代码互审

  审查了一下对方的代码,最开始发现他是用python写的,由于不是很懂,就简单的看了一下python的语法,才开始审查他的代码。发现主要问题就是代码写得不是很规范(主要原因还是不是很了解python,可能有些潜在的问题没能被发现),经过商讨后,还是决定了最后的代码格式规范,这里参考了其他的正规规范格式。中间有些小问题,比如说无法打开result.txt等文件,但最后还是解决了这个问题。

三.静态代码检查

  

 1.使用的静态代码工具:Pyflakes

 2.简单介绍:

  

 封装了PyFlakes,Pep8,NedBatchelder’s McCabe script三个工具。Flake8通过启动单独的flake8脚本运行所有工具,它在一个Per文件中显示告警,合并到输出中。也增加一些特征:

      1)包含这行文件将被忽略:#flake8: noqa

           2)结尾包含#noqa注释的行将不发布告警

           3)GIT和Mercurial钩子

           4)McCabe复杂度检查器

           5)可以通过flake8.extension入口点扩展

 3.检查结果

   WordCount 扩展功能_第1张图片

  提示从tkinter这个库中导入了所有的文件,无法检测到未定义的名称(*)【此为正常提示,*是导入该库所有文件】,但是'tkinter.filedialog.askdirectory没有使用,然后其他都是正常提示。提示某个变量没有定义或是从tkinter中导入。

四.单元测试

1.设计测试用例方法:等价类划分

2.测试思路

  由于是要测试输入是否符合要求,所以可以从输入端入手,即将输入端分为各个等价类。具体的设计如下表所示:  

输入 有效等价类 无效等价类
遍历文件夹参数 1. -s 5.不是-s的其他参数
停用参数 2. -e 6.非-e的其他参数
文件匹配格式 3. 正规匹配 7.非常规文件名匹配
文件名 4. 文件名 8.非文件名

 

            WordCount 扩展功能_第2张图片

 

 3.覆盖情况

  语句覆盖,判定覆盖,条件覆盖

五.性能测试和优化

 1.选择测试的工具:cProfile

  1.1  cProfile的使用:python -m cProfile -o 输出参数 测试脚本 输入参数1 参数2......,如python -m cProfile -o result.txt test.py 1 2 3

2.测试和优化

  2.1测试数据集思路

  选用所有单元测试中的等价类和无效等价类进行进行测试,然后将各模块进行联合测试。

  2.2  使用该工具的特点:

  使用cProfile分析的结果可以输出到指定的文件中,但是文件内容是以二进制的方式保存的,用文本编辑器打开时乱码。所以,Python提供了一个pstats模块,用来分析cProfile输出的文件内容。减少库的引用,定位到某个特定模块。

六.参考文献

  python静态代码测试:https://blog.csdn.net/fan_hai_ping/article/details/41733817

  python性能优化cProfile:https://blog.csdn.net/asukasmallriver/article/details/74356771

七.个人总结

  通过这次作业的实践,学会了如何借助测试工具进行代码审查,在平时编程练习时,难免会遇到自己找不出错误的情况。所以,学会借助测试工具也是很重要的,因为这样会节省自己很多的时间。在这次作业也明了一个浅显的道理,那就是两个人的力量始终要比一个人强。两个人一起编程,看待问题就会更加的透彻,全面。同时,在编程时,两个人也难免会产生分歧,在商讨谁的代码更好时,这种讨论对两个人的思维能力都是有提升的。

 

 



 

                  

你可能感兴趣的:(WordCount 扩展功能)