zoukankan      html  css  js  c++  java
  • WorldCount代码检查与优化——软件测试第三次作业

    合作者:201631062222,201631062232

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

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

    一.互审代码情况:

      1.高级功能测试:

        发现的问题:无法打开result.txt,output.txt(存储输出结果)等文件,经判断这些文件都是gbk编码,原程序未指定编码格式。

      

        修改:指定为utf-8编码,并忽略读取特殊字符的编码错误。

          

      2.待发现

    二.静态代码检查情况

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

        1.1安装:pip installpyflakes

        1.2使用:pyflakes  *.py

        1.3简单介绍:

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

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

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

               3)GIT和Mercurial钩子

               4)McCabe复杂度检查器

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

      2.检查结果及改正方法(只能指定某个py文件)

        2.1检查结果:

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

        2.2改正方法:

          可以忽略,或者不全导入,而是把需要的文件导入(文件太多,不建议)。

    三.单元测试

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

      2.测试的模块及思路:

        2.1测试基本功能模块:

          2.1.2测试思路

    等价类划分

    输入 有效等价类 无效等价类

    读取文件命令参数

    ①-l

    ②-w

    ③-c

    ④-c -w

    ⑤-l -c

    ⑥-w -c

    ⑦-l -w -c

    ⑧空

    ⑨非-l -w -o的任意其他参数

    结果写入文件命令参数

    ⑩-o

    ⑪非-o的其他命令
    文件名 ⑫文件名 ⑬非文件名

          共设计四个测试用例:

            1.wc.exe -l -w -c test.txt -o output.txt,覆盖①②③④⑤⑥⑦⑧⑩⑫;

            2.wc.exe -f -t test.txt,测试⑨;

            3.wc.exe -l -w -c test.txt -h output.txt,测试⑪;

            4.wc.exe -l -w -c test_dir,测试⑬

          2.1.2覆盖情况:语句覆盖,判定覆盖,条件覆盖     

        2.2测试扩展功能模块:

          2.1.2测试思路

          等价类划分

    输入 有效等价类 无效等价类

    遍历文件夹命令参数

    ①-s

    ②非-s的任意其他参数

    停用次参数

    ③-e

    ④非-e的其他命令
    文件匹配格式 ⑤正规匹配 ⑥非常规符匹配
    文件名 ⑦文件名 ⑧非文件名

          共设计五个测试用例:

            1wc.exe -s -a –c -w -l *.c –e stop.txt –o output.txt,覆盖①③⑤⑦;

            2.wc.exe -s *.c,测试②;

            3.wc.exe -l -w -c test.txt -t stop.txt,测试④;

            4.wc.exe -s -l -w -c ☣☣,测试⑥;

            5.wc.exe -s -a *.c -e test_dir,测试⑧

          2.1.2覆盖情况:语句覆盖,判定覆盖,条件覆盖 

        2.3测试高级功能模块:

           2.1.2测试思路

            等价类划分

    输入 有效等价类 无效等价类

    调用界面命令参数

    ①-x

    ②非-x的任意其他参数

            共设计两个测试用例:

              1wc.exe -x,测试①;

              2.wc.exe -t,测试②

           2.1.2覆盖情况:语句覆盖,判定覆盖,条件覆盖,路劲覆盖 

    四.性能测试和优化  

      1.选择的性能测试工具:cProfile

        1.1cProfile介绍:

            (1)Profile自python2.5以来就是标准版Python解释器默认的性能分析器。

            (2)其他版本的python,比如PyPy里没有cProfile的。

            (3)cProfile是一种确定性分析器,只测量CPU时间,并不关心内存消耗和其他与内存相关联的信息。

        1.2cProfile的使用:

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

      2.测试和优化:

        2.1测试数据集思路:

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

        2.2优化前后性能指标:

          2.2.1优化前:系统是否满足预期的性能需求。

          2.2.2优化后:判断系统是否满足预期的性能需求;寻找软件系统可能存在的性能问题,定位性能瓶颈并解决问题; 判定软件系统的性能表现,预见系统负载压力承受力,在应用部署之前,评估系统性能。(是否满足上线性能要求?系统极限承载如何?系统稳定性如何?) 

        2.3优化的设计思路:

          减少了库的引用,定位到某个要用的模块,而不是整个引用,优化判断分支,减少了判断次数,提高效率,同时减小重复性。   

    五.参考文章:

        1.Python静态检查工具:https://blog.csdn.net/fan_hai_ping/article/details/41733817

        2.cProfile的使用:https://blog.csdn.net/u010453363/article/details/78415553?utm_source=blogxgwz4

     

        

  • 相关阅读:
    excel表格的jar包
    mac和jar的关系
    BAT批处理文件入门-笔记
    没看完_perl的find模块很全面的讲解!!
    perl怎么拷贝一个文件到另一个文件夹中或者怎么拷贝文件夹到另一个文件夹
    perl 中用到的-*的具体解释,方便查看
    perl语言的笔记--啥是mkpath
    剑指哦佛_我的第一篇博客,哦耶
    ajax创建万能的XmlHttpRequest对象
    动态实例化窗体
  • 原文地址:https://www.cnblogs.com/lyq-biu/p/9813224.html
Copyright © 2011-2022 走看看