python实现WordCount(第三次作业)
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其他任意参数 |
共设计三个个测试用例:
- python3 wc.py -s -c -w -l -a -e stopList.txt -o output.txt *.py,覆盖(1)(3)
- python3 wc.py -s *.py 测试(2)
- 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的存在。其次代码的规范和风格极其重要,良好的编码习惯不仅会大大地提升整个程序源码的可读性,同时也会减少后期维护的成本,所以要在平时的练习中养成良好的编码习惯。
参考文章:
python实现WordCount(第三次作业)的更多相关文章
- 2003031121-浦娟-python数据分析第三周作业-第一次作业
项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/pexy/20sj 作业链接 https://edu.cnblogs.com/campus/pexy/20s ...
- Python极其简单的分布式异步作业管理系统RQ入门
Python极其简单的分布式异步作业管理系统RQ入门 原创 2017-08-19 lixing 生信人 Python极其简单的分布式异步作业管理系统RQ入门 1. 什么是Job? Job直译过来就是工 ...
- OO前三次作业思考(第一次OO——Blog)
OO前三次作业总结 基于度量分析程序结构 由于三次作业较多,决定分析内容.功能最为复杂的第三次作业. 上图为第三次作业的类图.我使用了一个抽象类Factor,写了五个因子继承Factor,然后又单独开 ...
- 耿丹CS16-2班第三次作业汇总
-- Deadline: 2016-10-12 22:48 -- 作业内容: 1.实验2-6 猜数字游戏 2.实验2-7 判断能否为三角形 3.实验2-8 个人所得税计算器 -- 第三次作业总结: 1 ...
- JAVA第三周作业(从键盘输入若干数求和)
JAVA第三周作业(从键盘输入若干数求和) 在新的一周,我学习了JAVA的IO编程.下面的代码实现了从键盘输入若干数求和的目标.import java.util.Scanner; public cla ...
- 第三次作业:caculator
第三次作业 作业链接 ********* 遇到的问题: Scan类: 队列的使用方法不了解,上网查询并自己练习了一下才初步了解,才运用到作业 . 判断数字用的 if (input[i] >= ' ...
- python学习心得第三章
python学习心得第三章 1.三元运算 变量=值1 if 条件 else 值2 由图如果条件成立则赋值1给变量,如果条件不成立则赋值2给变量. 2.数据类型 集合:set() class set(o ...
- HTML第三天作业做的表格
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- 第三次作业——《K米评测》
第三次作业--<K米评测> 一.调研.评测 上手体验 APP的图标做的不错,一眼就知道和KTV唱歌相关的 点进去就是连接包箱的界面和直播界面,把软件最重要的两个功能展示出来了,一目了然 热 ...
随机推荐
- BZOJ2280 [Poi2011]Plot 二分+倍增+最小圆覆盖
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=2280 https://loj.ac/problem/2159 题解 显然对于一段的 \(q_i ...
- ConcurrentSkipListMap--跳表的简单使用
import java.util.Map; import java.util.concurrent.ConcurrentSkipListMap; /** * 跳表的使用 */ public class ...
- iOS项目开发中的知识点与问题收集整理①
前言部分 注:本文并非绝对原创 大部分内容摘自 http://blog.csdn.net/hengshujiyi/article/details/20943045 文中有些方法可能已过时并不适用于现在 ...
- Python3解leetcode Binary Tree PathsAdd Digits
问题描述: Given a non-negative integer num, repeatedly add all its digits until the result has only one ...
- 【BZOJ1801】【DTOJ2004】 [Ahoi2009]chess 中国象棋 【DP】
题解: 首先知道一个性质,每一行每一列都最多有两个炮 那么很显然是DP 设F[i][j][k]表示前i行,有j列有一个炮,有k列有两个炮,那么转移式子为 这一行什么都不做:f[i][j][k]=f[i ...
- 新建工程spring boot
新建工程spring boot 使用Maven管理, 在官网(http://atart.spring.io)下载demo后,加入依赖 <dependency> <gr ...
- (转载)虚拟机出现无法连接虚拟设备sata0:0,因为主机上没有相应设备
虚拟主机需要镜像文件, 如果是拷贝的虚拟机,还需要桥接联网的话,更改mac地址,
- 实现自己的shell--MIT xv6 shell
参考代码: #include <stdlib.h> #include <unistd.h> #include <stdio.h> #include <fcnt ...
- Workflow:Workflow 百科
ylbtech-Workflow:Workflow 百科 工作流(Workflow),指“业务过程的部分或整体在计算机应用环境下的自动化”.是对工作流程及其各操作步骤之间业务规则的抽象.概括描述.在计 ...
- 练习1-20 编写程序detab,将输入中的制表符替换成适当数目的空格.
1.问题描述 编写程序detab,将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方. 假设制表符终止位的位置是固定的, 换句话说每隔n列就会出现一个制表符终止位. 2.描述 ...