合作者:201631062508 201631062408
码云地址:https://gitee.com/lankb/WordCount
本次作业的链接地址:https://edu.cnblogs.com/campus/xnsy/Test/homework/2203
一、项目要求
WordCount是一个计数的软件,它可以统计文本文件的字符数、单词数以及行数,还有一些拓展功能:包括遍历所有的文件、记录更复杂的数据(代码行/空行/注册行)、支持通配符(*,?)。本项目是使用c#编写的。
二、功能概述及psp
2.1.1 基本功能(完成)
统计test01.txt的字符数
统计test01.txt的单词数
统计test01.txt的行数
将结果输出到指定文件output.txt
2.1.2 扩展功能(未完成)
递归处理目录下符合条件的文件
返回更复杂的数据(代码行 / 空行 / 注释行)
停用词表,统计文件单词总数时,不统计该表中的单词
2.1.3 高级功能(未完成)
2.1.4psp表格
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
三、互审代码情况
(1)互审代码情况
已经实现WordCount基本功能,WordCount类比较简单,主要是判断指令中有哪些功能并获取文件然后传入参数。CountUtils类是功能类,包含字符计数、单词计数、行计数、代码行/空行/注释行计数等功能,相对复杂。
(2)静态代码检查情况
静态代码检查工具:SpotBugs
用SpotBugs进行静态代码检查,没有发现错误信息。
(3)性能测试和优化
使用的性能测试工具:JProfiler
JProfiler直觉式的GUI可以找到性能瓶颈、抓出内存漏失(memory leaks)、并解决执行绪的问题。它让程序员对heap walker作资源回收器的root analysis,可以轻易找出内存漏失。通过性能测试,我们找出了一些内存消耗的代码并对其进行了优化,提升了代码执行性能。
四、测试用例
等价类划分法
输入 | 有效等价类 | 无效等价类 |
读取文件命令 | -c |
除了-c,-w,-l,-a之外的任何输入 |
-w | ||
-l | ||
-a | ||
-s |
基于等价类划分法的测试用例:
有效等价类测试:
C:\Users\10672\Desktop\WordCount | 测试所有文件内容字符数 |
C:\Users\10672\Desktop\WordCount | 测试所有文件内容单词数 |
C:\Users\10672\Desktop\WordCount | 测试所有文件内容行数 |
C:\Users\10672\Desktop\WordCount | 测试所有文件内容的代码行、注释行和空行 |
C:\Users\10672\Desktop\WordCount | 测试遍历文件 |
无效等价类测试:
C:\Users\10672\Desktop\WordCount | type input error |
五、单元执行结果
测试的文件内容
执行结果
六、总结与收获
在这次项目开发中,由于对工具测试较为陌生,我们选择较为简单的等价划分法测试,通过设置测试用例,检测代码是否有误。
通过此次实验,我认识到了自己在这方面的不足,希望以后还能有机会体验这种项目开发过程。经过这次wordCount的测试设计与实现,掌握了等价类划分等测试方法。了解了软件测试对于软件开发的重要性,测试的目的是为了发现尽可能多的缺陷,不是为了说明软件中没有缺陷。本次主要是对wordCount的单元测试,利用白盒测试法,在已经知道所测试的文件的内容,以及代码结构的基础上来进行的测试,主要是测试基本功能是否得到了实现以及一些逻辑分支是否正确,面对错误的边界值等,程序的主要处理方式。