一、前言
首先,在这里特别感谢我的结对编程伙伴HnuLyx,他在算法上和设计思路上都与我有很大的不同,个人项目互评中,为我的项目提出了很多很好的建议,让我在认清自己不足的同时,了解到很多以前没有注意的地方。此处附上链接,便于以后翻阅。
其次,我来对HnuLyx的个人项目稍作评论,在发现内在不足的同时,学习长处,取长补短。
二、测试与评价
1. 黑盒测试
在拿到项目文件后,我先进行了黑盒测试,从运行上体会程序的编写。
(1) 优点1:界面设计较好(是我要学习的地方),用户体验感会得到适度的提升,操作简单易懂,便于操作,题目正确;
缺点1:平方的“^2”换成“²”(Alt+0178就可以用键盘打出);
(2) 将已建立的文件夹删除后,显示报错;
缺点2:但是建议制作创建文件夹的操作,mkdir()函数可以解决这个问题,可以为大批量用户使用时,节省很多不必要的创建文件夹的操作;
(3) 缺点3:与描述不符,建议修改,明明是退出当前用户,却返回上一界面,需要优化。
(虽然已经实现了需求的退出功能,但是使用上的合理性也是要考虑的呢,可不要功亏一篑咯~)
(4)优点2:数据容错性较高,错误输入会提示并可供重新输入。
以上,为黑盒测试的全部内容,功能正常,界面舒适。
2. 白盒测试
为了进行白盒测试,HnuLyx与我用了一个下午来交流双方的代码,并且进行讨论。
经过他的讲解,我对系统内部的结构和工作原理有一个清楚的了解,明白盒子内部的东西以及里面是如何运作的,从而考虑测试用例,发现内部的长处与不足。
(1)优点3:整体上,先大致浏览代码,我会清晰的感觉到,HnuLyx的代码模块化设计良好,一个函数实现一个功能,极大的增强了代码的逻辑性,可读性;
(虽然我也有写一些函数,但是在功能的架构上,可能略逊与他,不是特别清晰)
(2)优点4:登录数据保存在文件中;
(其实,通过了解代码后才发现,HnuLyx为了提高程序的可拓展性,将用户登录数据存储在txt文件中,每次登录时进行查询。
如果在以后拓展程序,这将会带来极大的便利。)
(3)缺点4:在了解了该程序算式生成的算法后,经过多次测试,我发现了一个问题,虽然题目达到需求的要求,但是无法将题目完全随机,如:
每个操作数只能有一个左括号,举个例子:7*(8+(9+1))+5 而不能生成如7*((8+9)+1)+5。
(右括号受左括号限制,需求中最多五个操作数,则右括号最多3个:A + ( B + ( C + ( D +E)))。)此处数据过多,不便截图展示,抱歉。
(4)优点5:HnuLyx在编程时,他除了考虑了架构的合理性,还考虑到了程序的性能问题,有所针对的优化部分代码,提高程序性能。
如,通过getchar(),cin,scanf三者性能的比较,得到getchar()的效率最高,并且加以调用,以便未来在查重时大量数据的输入效率问题。
以上,为白盒测试的全部内容。再次感谢HnuLyx同学的耐心讲解。