• 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.检查结果

       

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

    四.单元测试

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

    2.测试思路

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

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

                

     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

    七.个人总结

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



                      

  • 相关阅读:
    开源库dlib的安装与编译-CMake
    Python的zip函数
    matlab读写视频VideoReader/VideoWriter
    批量分割视频opencv
    批量重命名文件
    OpenCV代码提取:遍历指定目录下指定文件的实现
    第48课 函数设计原则(完)
    在Qt中如何使用QtDesigner创建的UI文件(一) (转)
    qt ui程序使用Linux的文件操作open、close (转)
    进程间通信IPC之--无名管道(pipe)和有名管道(fifo)(转)
  • 原文地址:https://www.cnblogs.com/-heart-/p/9820710.html
Copyright © 2020-2023  润新知