软件测试第四周作业WordCount优化
1.小组github地址:https://github.com/whoNamedCody
小组成员:17048冷福星 17050李慎纲 17039付佳韵 17040康之是
2.psp表格:
PSP2.1 |
PSP阶段 |
预估耗时 (分钟) |
实际耗时 (分钟) |
Planning |
计划 |
30 | 20 |
· Estimate |
· 估计这个任务需要多少时间 |
30 | 20 |
Development |
开发 |
245 | 255 |
· Analysis |
· 需求分析 (包括学习新技术) |
15 | 20 |
· Design Spec |
· 生成设计文档 |
30 | 30 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
20 | 15 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
20 | 20 |
· Design |
· 具体设计 |
20 | 20 |
· Coding |
· 具体编码 |
60 | 60 |
· Code Review |
· 代码复审 |
20 | 20 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
60 | 70 |
Reporting |
报告 |
130 | 120 |
· Test Report |
· 测试报告 |
50 | 50 |
· Size Measurement |
· 计算工作量 |
30 | 30 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
50 | 40 |
合计 |
405 | 395 |
基本任务:
(1)接口实现:
本次小组作业中我负责的是输入控制的模块。和负责核心功能的同学商量后约定好我需要写的输入控制wcinput class中:input()函数读取命令行参数,在input()函数中进行判断,不符合要求的输入会提示重新输入并退出;符合要求的输入会作为input()函数的返回值传递给核心模块。
具体实现过程:
a.先判断输入命令行参数是否为空。
b.再判断命令行参数个数是否大于1(要求里只接收一个输入文本)。
c.对命令行参数判断完成后,判断输入参数是否符合形式规范(.txt).
d.对符合形式规范的输入,判断是否为存在的txt文件。
e.筛选得到的正确输入作为作为返回值,返回给核心模块
(2)测试用例设计:
白盒测试:应用对路径的测试,程序中对输入的命令行参数进行了4次二分判定,圈复杂度为5
测试用例设计分类为:
a.1-2-10
b.1-3-4-10
c.1-3-5-6-10
d.1-3-5-7-8-10
e.1-3-5-7-9-10
覆盖了input()方法中所有的路径。
黑盒测试:使用划分等价类和边界测试的方法。
(1)有效等价类:命令行参数为xxx.txt,且该txt文件确实存在
(2)无效等价类:输入的命令行参数为空;输入命令行参数内容为空(多个空);输入多个文件;输入无效非txt文件;输入不存在的txt文件;
(3)边界测试:对参数个数进行边界值判定,对参数内容进行边界判定
(3)单元测试
测试质量: 单元测试覆盖了程序的所有路径,对白盒测试和黑盒测试的几类测试用例都基本实现了覆盖,每个等价类中典型测试用例选择了2到3个 。
被测模块质量:被测模块基本可以应对各种正确与非正确输入,单元测试中输入字符串为{}空时,显示为“未输入参数”;输入字符串为{“”}时,显示为“未输入.txt”,该单元测试显示为失败。实际上进行命令行输入时,只会出现args数组内容为空的情况,或者出现内容为多个“ ”的情况,都能被正确判断输出,因此被测模块质量满足要求。
扩展任务:
(1)代码规范:代码规范与复审(精简版)现代软件工程讲义 3 代码规范与代码复审
选择部分:代码风格规范,代码设计规范中的函数和错误处理
(2)规范分析:分析了17048的代码
对项目中各模块的静态分析见(3)
不足之处:代码中定义了两个没有无用变量;对{}的使用没有另起一行,使得结构清晰标准;
好的规范:写了详尽的注释,并且注释为英文,格式统一,长注释在前一行开头,变量短注释在定义后;
变量命名遵循规范,具有一定的实际意义,便于区分;
变量统一在方法前集中声明,说明变量含义;
函数方法设计分工合理;
对可预料的各种错误输入和异常情况进行处理;
(3)选择静态检查工具:findbugs http://downloads.sourceforge.net/project/findbugs/findbugs%20eclipse%20plugin/1.3.9/edu.umd.cs.findbugs.plugin.eclipse_1.3.9.20090821.zip?use_mirror=ncu
findbugs检查输入模块(input)没有发现问题;
代码规范上不足之处:{}的使用与小组其他成员不统一;注释没有使用英文注释,平台移植时可能出现问题;缺乏统一的变量说明注释
规范之处:变量命名遵循规范,有实际意义;对各种错误输入有所处理,容错性提高;函数方法设计合理
(4)小组问题:小组成员各模块函数和类的命名不够统一(已改进);代码风格不统一(以改进);整合后部分变量和说明有冗余(已改进);衔接后部分异常处理重合(已改进)
高级任务:
(1)测试数据集设计思路:a.有140个以上需要根据词频排序的单词
b.每种类型的单词出现20个以上:纯单词如software;连字符单词如content-based;单引号单词如Let’s;带短横线的单词如moon-;带双引号的单词如“aaa;带数字、常用字符和单词的情况如(see Box 3–2).8885d_c01_016;带数字的单词如bbb-2;
c.5个以上统一单词的大小写形式,如apple和APPLE
d.5个以上词频相同的不同单词排序,如:apple 5
camera 5
demo 5
yellow 5
zero 5
(2)优化前:统计从main函数开始运行到统计输出完成的时间(单位毫秒)
(3)同行评审:
参加者:小组成员:康之是,冷福星,李慎刚,付佳韵
主持,记录:康之是
评审者:李慎刚,付佳韵
开发者,代码讲解:冷福星
评审对象:核心模块(kernel)
评审过程:开发者讲解代码逻辑,函数功能等;
开发者运行程序,测试压力txt文件,反复多次,得到平均运行时间;
评审者提出意见,开发者回答;
达成共识,进行改进
提出意见:核心功能中先进行大小写转换再进行判断,并且更改对单词的判断方法函数,采用正则表达式进行词法分析。
(4)优化后:
改用正则词法进行单词判断,并且先进行了大小写的转换
(4)影响性能的主要因素是核心功能中对单词的判断步骤,判断语句的多少和嵌套的重数
(5)感悟:通过本次实践,以及完成基础任务,扩展任务以及高级任务,我认识到软件开发要达到预期的要求,提升质量离不开对于软件的测试。开发过程就像依据需求的图纸在建一栋房子的基础轮廓,能完成大致的形状与功能;而搭好轮廓以后,需要进行测试检查房子的承重,细节处是否存在偏差等。测试的过程中慢慢暴露基础轮廓的各种缺陷,再进行调整与修改,经过多次自己的,他人的评审与测试,多次的修改,最终使得软件质量达标。
小组贡献度25%
转载于:https://www.cnblogs.com/fujiayuntest/p/8710985.html
软件测试第四周作业WordCount优化相关推荐
- HUST软测1504班第4周小组作业成绩:WordCount优化
说明 本次公布的成绩为第四周作业的结果: 第4周小组作业:WordCount优化 博客推荐:本次作业有一位同学完成有创意,推荐优秀博客.(优秀博客不会对成绩带来正面或者负面影响)PS:做任何创新的任务 ...
- 学号20189220 2018-2019-2 《密码与安全新技术专题》第四周作业
学号20189220 2018-2019-2 <密码与安全新技术专题>第四周作业 课程:<密码与安全新技术专题> 班级: 1892 姓名: 余超 学号:20189220 上课教 ...
- 20189221 2018-2019-2 《密码与安全新技术专题》第四周作业
20189221 2018-2019-2 <密码与安全新技术专题>第四周作业 课程:<密码与安全新技术专题> 班级: 201892 姓名: 郭开世 学号:20189221 上课 ...
- 《密码与安全新技术专题》第四周作业
学号 2018-2019-2 <密码与安全新技术专题>第四周作业 课程:<密码与安全新技术专题> 班级: 92班 姓名:张宇翔 学号:20189211 上课教师:谢四江 上课日 ...
- 2019年春季学期第四周作业Compile Summarize
这个作业属于哪个课程 C语言程序设计一 这个作业要求在哪里 2019春季学期第四周作业 我的课程目标 重新学习有关数组的问题 这个作业在哪个具体方面帮助我实现目标 对于置换有了新的见解 参考文献 中国 ...
- 2019春第四周作业软件
这个作业属于哪个课程 C语言程序设计2 这个作业要求在哪里 \https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018 ...
- 2019年春季学期第四周作业
这个作业属于哪个课程 C语言程序设计 这个作业的要求在哪里 2019年春季学期第四周作业 我在这个课程的目标是 了解选择排序法和冒泡排序法的区别,熟练运用二分法查找法 这个作业在哪个具体方面帮助我实现 ...
- 2019春季学期第四周作业
2019春季学期第四周作业 这个作业属于那个课程 C语言程序设计Ⅰ 这次作业要求在哪里 2019春季学期第四周作业 我在这个课程的目标是 我希望能够更加掌握循环和排序 参考文献 无 选择法排序 本题要 ...
- 第四周作业:利用matlab制作图像的二值模板并分别利用模板进行“与模板相与”、“与模板相或”、“与模板异或”操作
文章目录 第四周作业 第一题 第二题 第四周作业 第一题 题目: 利用 MATLAB 编程,打开自己的一张照片,依次完成下列要求: 1) 以照片的自己作为目标,制作二值模板 2) 分别利用模板进行&q ...
最新文章
- pymysql 写入数据
- access sql 取余_计算机二级ACCESS模拟题库2016最新
- vue基础(学习官方文档)
- restFul风格实现CRUD
- 互联网躺平学 ,从后端到前端有多吃香?
- spring原理学习
- django 中的用户身份验证和 session 的关系
- How to install innotop and percona tookit on centos
- 个人生活助手app_“3·15可信赖应用白名单”发布 360旗下多款APP获评甲级认证
- 基于SourceTree 下的 Git Flow 模型
- Hotel 旅馆 题解(From luoguBlog)
- ABAP 如何解析 JSON 数据试读版
- 98.android 全国城市区号,座机号区号匹配对应城市
- 均方距离计算公式_均方末端距的统计计算法.ppt
- 区块链可以减少社会不平等吗?
- 每天一学设计模式(一、单一职责原则)
- 单例模式(中):单例模式的弊端
- [Transformer]TransUNet: Transformers Make Strong Encoders for Medical Image Segmentation
- 通过JS实现剪贴板操作
- Hyperledger Fabric 1.3 官方文档翻译(三)关键概念 (Key Concepts) - 3.7 对等节点 (Peers)
热门文章
- 简述一下extern C的小作用
- UCOSIIIAPI函数接口OSTaskCreate();函数
- 【CyberSecurityLearning 附】python3-requests模块
- SQL注入之union联合注入——sql-lab第一关(非常非常详细的过程)
- BugkuCTF-Misc:come_game
- spring源码研究
- AR/QCA SPI 启动原理和 ART 地址定位原理
- 从尾到头打印链表---剑指Offer
- 图的两种存储形式(邻接矩阵、邻接表)
- Android PC投屏简单尝试- 自定义协议章(Socket+Bitmap)