Homework1个人项目
一、程序的编写和各个模块的编写时间
1、在编写程序前,由于自己对于C++和C#这两种语言还不十分的熟悉,所以我在这次编写程序前对于程序的编写时间定了一个比较长远的规划。其中,我规划大部分时间用来学习C#语言。光学习语言就可能花费掉我将近3到4天的时间。而且,由于这次的编程作业需要用到大量关于文件和文件夹的操作,所以,我计划在这方面加大力度学习。力争掌握熟悉C#语言中关于这方面的相关知识。在比较充分的掌握这方面的知识后,我计划利用1到2天的时间来进行编程。
2、我的程序大致可以分为如下的几个部分:主函数,读文件夹的相关方法,读文件的相关方法,分析读入字符串的方法,排序的方法等等。我在各个方面所花费的时间也是不同的。我在主函数上大约花费了有1个多小时。因为我对写带有命令行参数的程序不是十分熟悉,所以,通过询问同学以及自己的研究,终于将这一部分搞懂了。然后,我在写程序时花费时间最多的就是写本程序最主要的一个类,即WFS类上。这个类是本程序最为重要的一个类,其中包含了本程序中几乎所有重要的方法。所以我在写这个类的时候大约花了我1天多的时间。
3、我花在代码调试上的时间大约为1个多小时。
二、代码分析
并无严重问题
三、测试用例
所有的测试用例大部分放到D:\test文件夹下(除极个别的几个测试用例)。然后,我在设计测试用例时,充分考虑到了软件在运行过程中出现的各种情况,以此来验证本软件的强健性。例如,我会有意在测试用例中故意加入一些比较极端的情况下的数据,例如加入大量的,各种形式的file字符串,以此验证客户需要的不论大小写的字符串统一按照字典序最小的记录的要求是否得到了满足。还有,由于用户对于需要进行词频统计的文件类型还有一定的要求,所以我在测试用例中特别加入了对于这一要求的测试。除了满足客户的需求外,我还要对软件的强健性进行测试,例如,我在测试时加入了如果输入不存在的文件夹时的出错处理等等。
注:有些测试结果的输出结果比较巨大,无法完全截图。
总之,设计一个好的测试用例需要考虑各方面的因素和各种情况。
1、首先只在文件夹下放入一个文件,即本程序的源代码txt文件。然后可以观察运行的方法和运行结果。
2、测试用例的第二组,主要测试一些比较特殊的功能。例如用各种方式输入file来进行统计。
3、专门测试加强模式的用例。
4、测试读取的文件类型。例如,要求中不需要读入c语言的源代码文件,现在对这一功能进行测试。
5、输入不存在的文件夹,观察程序的反应。
6、输入文件夹中套文件夹的情况
本用例在原有文件夹的基础上,再在此文件夹中再加入两层文件夹,观察程序是否成功读取深藏的文件。其中,我所用的文件与测试用例1中所使用的文件相同,故这两次运行的结果是相同的。
7、文件夹简单模式测试(约65.8MB)
8、文件夹扩展模式测试。
9、实际大型文件夹普通模式测试(约206M)
10、大型文件夹扩展模式测试
四、收获
1、从不太熟悉C#,到完整的写出一个具有实际应用价值的程序。从中我可以体会到学习并运用的乐趣。
2、更加理解了现代软件开法的过程。
3、让我感受到了自己知识的有限,今后还应继续努力学习。
4、本程序存在一些问题,例如,我在尝试处理一个有970多兆的文件夹时,发生了数组溢出,这说明,我的程序还需要改进。这让我体会到了测试对于现代软件开法的重要性。