0x00 注明

合作者:201631062315 201631062310

代码地址:https://gitee.com/c1e4r/word-count2

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

0x01 互审代码情况

  在完成本次作业的期间,同一位同学进行了合作,大概就是相互之间测试对方的程序,已达到软件测试的目的。

  发现的问题:

    1.在进行文件操作的时候报错,经分析报错后发现是在打开某一文件时未统一编码规范。文件是gbk编码,在打开文件的时候要转化为utf-8。

    2.对代码的缩进,一些变量定义和空间进行了修改。

0x02 静态代码检查情况

  1.使用的工具:pyflakes

    PyChecker是Python代码的静态分析工具,它能够帮助查找Python代码的bug,而且能够对代码的复杂度和格式等提出警告。

  2.检查的模块以及检查结果

    检查模块:所有

    检查结果:

  3.代码存在的问题和改进的方法

  由于代码是经过调试和修改后才检查的,且代码量比较少,所以检查的时候并不存在多大的问题。

0x03 单元测试

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

  2.测试的模块以及思路

    2.1测试所有模块功能:

      2.1.1 测试思路

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

读取文件命令参数

(1)-l

(2)-w

(3)-c

(4)-c -w

(5)-l -c

(6)-w -c

(7)-l -w -c

(8)空

(9)非-l -w -o的任意其他参数

结果写入文件命令参数

(10)-o

(11)非-o的其他命令
文件名 (12)源文件名 (13)非文件名

     

      

      一共设计四个测试用例:

        1.wc.py -c -w -l -e -a  -o output.txt test.txt 覆盖①②③④⑤⑥⑦⑧⑩⑫

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

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

        4.wc.py -l -w -c dir,测试⑬

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

    2.2 附加高级功能测试

      2.2.1 等价类划分

输入 有效等价类 无效等价类
遍历文件夹命令输入 (1)-s (2) 非-s 其他任意参数
停用表 (3)-e (4) 非-e其他任意参数

  

        共设计三个个测试用例: 

      1. python3 wc.py -s -c -w -l -a -e stopList.txt -o output.txt *.py,覆盖(1)(3) 
      2. python3 wc.py -s *.py 测试(2)
      3. python3 wc.py -l test.txt,测试(4)

     2.2.2 语句覆盖,条件覆盖

3.测试情况

  

0x04 性能测试和优化

  1.测试工具的选择:Locust

  1.1 安装方法 :

    python3中: python3 -m pip install locust 

    安装成功后终端输入locust --help显示帮助信息表示安装成功

  2.测试结果

    由于代码量不是很大,且不存在数据库连接操作和联网的交互操作,所以测试性能结果较优。

0x05 总结以及参考文章

  通过本次的作业,初步认识到了到一些代码检查工具在对开发过程中的重要性,也体会到了在软件开发过程中必须保持严谨的态度,也要有一定的“大局观念”,才能在方便在软件测试时对软件的功能进行细化的测试。

  同时合作也是至关重要的一环,两个人相互之间的思考方式不同,逻辑思维也不同,这样审查代码也能发现一些代码上的逻辑错误,减少BUG的存在。其次代码的规范和风格极其重要,良好的编码习惯不仅会大大地提升整个程序源码的可读性,同时也会减少后期维护的成本,所以要在平时的练习中养成良好的编码习惯。

  参考文章:

  1. Locust安装和使用
  2. Pyflakes的安装和使用
  3. WorldOcunt代码检查与优化

python实现WordCount(第三次作业)的更多相关文章

  1. 2003031121-浦娟-python数据分析第三周作业-第一次作业

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/pexy/20sj 作业链接 https://edu.cnblogs.com/campus/pexy/20s ...

  2. Python极其简单的分布式异步作业管理系统RQ入门

    Python极其简单的分布式异步作业管理系统RQ入门 原创 2017-08-19 lixing 生信人 Python极其简单的分布式异步作业管理系统RQ入门 1. 什么是Job? Job直译过来就是工 ...

  3. OO前三次作业思考(第一次OO——Blog)

    OO前三次作业总结 基于度量分析程序结构 由于三次作业较多,决定分析内容.功能最为复杂的第三次作业. 上图为第三次作业的类图.我使用了一个抽象类Factor,写了五个因子继承Factor,然后又单独开 ...

  4. 耿丹CS16-2班第三次作业汇总

    -- Deadline: 2016-10-12 22:48 -- 作业内容: 1.实验2-6 猜数字游戏 2.实验2-7 判断能否为三角形 3.实验2-8 个人所得税计算器 -- 第三次作业总结: 1 ...

  5. JAVA第三周作业(从键盘输入若干数求和)

    JAVA第三周作业(从键盘输入若干数求和) 在新的一周,我学习了JAVA的IO编程.下面的代码实现了从键盘输入若干数求和的目标.import java.util.Scanner; public cla ...

  6. 第三次作业:caculator

    第三次作业 作业链接 ********* 遇到的问题: Scan类: 队列的使用方法不了解,上网查询并自己练习了一下才初步了解,才运用到作业 . 判断数字用的 if (input[i] >= ' ...

  7. python学习心得第三章

    python学习心得第三章 1.三元运算 变量=值1 if 条件 else 值2 由图如果条件成立则赋值1给变量,如果条件不成立则赋值2给变量. 2.数据类型 集合:set() class set(o ...

  8. HTML第三天作业做的表格

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  9. 第三次作业——《K米评测》

    第三次作业--<K米评测> 一.调研.评测 上手体验 APP的图标做的不错,一眼就知道和KTV唱歌相关的 点进去就是连接包箱的界面和直播界面,把软件最重要的两个功能展示出来了,一目了然 热 ...

随机推荐

  1. MySQL MHA + Ifconfig管理vip

    前期的安装步骤,还是参照:http://www.cnblogs.com/yiyuf/p/4104354.html进行,只需要把appxxx.cnf中定义的相关.sh脚本(如:master_ip_fai ...

  2. ThreadPoolExecutor扩展

    import java.util.concurrent.*; /** * ThreadPoolExecutor扩展 */ public class ExtThreadPool { public sta ...

  3. Static Fields and Methods

    If you define a field as static, then there is only one such field per class. In contrast, each obje ...

  4. 学习总结-Redis

    一,简介 redis(Remote Dictionary Server)是一种Nosql技术,它是一个开源的高级kv存储和数据结构存储系统,它经常被拿来和Memcached相比较,但是Memcache ...

  5. php strtolower()函数 语法

    php strtolower()函数 语法 作用:把所有字符转换为小写.大理石量具 语法:strtolower(string) 参数: 参数 描述 string 必须,规定要转换的字符串 说明:str ...

  6. 4412 搭建和测试NFS服务器

    一.NFS网络文件系统 NFS是Network FileSystem的缩写,NFS是基于UDP/IP协议的应用.它的最大功能就是可以通过网络让不同的机器,不通的操作系统彼此共享文件, 可以通过NFS挂 ...

  7. 2019 牛客暑期多校 第八场 A All-one Matrices (单调栈+前缀和)

    题目:https://ac.nowcoder.com/acm/contest/888/A 题意:找全1矩阵的个数,并且这个全1矩阵不被其他全1矩阵包含 思路:这里引用付队说的话 -> { 这类问 ...

  8. [杂题]:C/c(二分答案)

    题目传送门(内部题54) 输入格式 第一行一个整数表示$n$.第二行$n$个整数表示初始序列.(这行原题没有,是我加的)接下来$2n$行每行两个整数,分别表示$X_i,Y_i$.数据保证至少存在一种方 ...

  9. [CSP-S模拟测试]:大新闻(主席树)

    题目传送门(内部题20) 输入格式 第一行为两个数$n,m$,意义如题所述.接下来一行$n$个数,代表一开始$n$条大新闻的$naive$值.接下来$m$行,每行一个操作,输入格式如下:读入$1$,代 ...

  10. 防止NSTimer和调用对象之间的循环引用

    防止NSTimer和调用对象之间的循环引用 @interface NSTimer (EOCBlocksSupport) + (NSTimer *)eoc_scheduledTimerWithTimeI ...