zoukankan      html  css  js  c++  java
  • 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

    七.个人总结

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



                      

  • 相关阅读:
    求一个二维数组的最大子矩阵
    在一整型数组中找到此数组中子数组和的最大值
    软件工程个人小项目:写一个程序,分析一个文本文件(英文文章)中各个词出现的频率,并且把频率最高的10个词打印出来
    Redis 为什么这么快?
    在netfarmerwork3.5版本的winform下执行string串中的代码
    c# 反射(Reflection)详解
    string,特殊的引用类型
    c#使用HashSet<T>集合去重
    c# .Net重试机制
    观察者模式
  • 原文地址:https://www.cnblogs.com/-heart-/p/9820710.html
Copyright © 2011-2022 走看看