第6章 测 试
测试的目的是为了发现功能是否达到,或者是否有更多的缺陷!
这里的缺陷是泛称的,它可以指功能的错误,也可以指性能低下,易用性差等等。测试总是先假设程序中存在缺陷,再通过执行程序来发现并最终改正缺陷。理解测试的目的是个很重要的意识问题。如果说测试的目的是为了说明程序中没有缺陷,那么测试人员就会向这个目标靠拢,因而下意识地选用一些不易暴露错误的测试示例。这样的测试是虚假的。
测试只能证明缺陷存在,而不能证明缺陷不存在。
这个真理告诉我们,对于一个复杂的系统而言,无论采取什么样的测试手段都不能证明缺陷已经不复存在。“彻底地测试”只是一种理想。在实践中,测试要考虑时间、费用等限制,不允许无休止地测试。
测试有助于提高软件的质量,但是提高软件的质量不能依赖于测试。
因为做为一个本科毕业设计,本系统并不会真正发布到广大的用户群中去,所以只能做α测试,而无法完成β测试。
关于测试人员的安排,由本人做白盒测试,由同学帮助做黑盒测试。
6.1 白盒测试
(1) 测试环境配置
白盒测试可在开发系统的本机上直接进行,所以不需要进行特殊的配置。
(2) 正确性测试
正确性测试又称功能测试,它检查软件的功能是否符合规格说明。由于正确性是软件最重要的质量因素,所以其测试也最重要。
通过在程序的各个流程中插入断点进行单步跟踪发现,程序中各个模块皆可进行正常运行,数据也未发生异常现象。
6.2 黑盒测试
6.2.1测试环境配置
用二台机器通过集线器构成一个局域网,进行正确的网络配置,三台机器上都安装了WINDOWS操作系统,并安装了本软件的正确拷贝。
6.2.2功能性测试
先在其中一台机器A上启动本软件,扫描可以发现另一台开机的B机器,但是因为B机器上的本软件尚未启动,所以显示为不可聊天。当B机器启动了本软件后,它的扫描过程就不仅发现了A机是开机状态,而且检测到A机是可以聊天的。另外,A机立即也发现了B机的上线行为,并向用户发出了提示,然后此时,不管A,B双方,只要双击用户列表中相应的项目,即可启动发信对话框,进行信息的输入与发送,同时,对方均可进行正确的接收和回复。所以,功能测试为成功。
6.2.3容错性测试
容错性测试是检查软件在异常条件下的行为。容错性好的软件能确保系统不发生无法意料的事故。
经检查,当用户输入无效操作时,系统总是能检测到无效操作,对用户进行相应的信息反馈,并合理的做出内部处理。当系统本身发生错误,比如网络初始化失败,绑定套接字失败,数据读取失败等,都会进行相对应的正确处理。
比如当用户双击一个不可聊天的用户时:
图6-1 用户操作出错信息提示示意图
当用户输入为空而单击发送时会有如图6-2所示的错误提示:
图6-2 用户操作出错提示示意图
6.2.4性能与效率测试
关于性能的问题,只有在程序启动的时候,扫描网络需要占用较多的系统资源和时间,虽然通过多线程的方式使得程序不至于在扫描时直接无法响应用户的操作,但是扫描时间有点长。这个问题,我通过在程序启动时放入启动画面给予用户以提示来稍做缓冲,如果将扫描任务再分为多个线程的话时间肯定会大大加快,但是占用的系统资源太多了,并且加大了系统的复杂性,所以并未再分。
至于聊天信息的发送和接收,在局域网内几乎就是瞬间响应,效率完全满足用户要求。
6.2.5易用性测试
易用性测试没有一个量化的指标,主观性较强。一般认为,如果一个系统可以让用户不查阅手册即可正确使用其所有功能,那么这个系统就具有良好的易用性。本程序即可做到使以前从未使用过的用户完全正确使用,所以具有比较好的易用性。
6.2.6文档测试
在本系统的开发过程中,因为是本科毕业设计,所以具有完备的开题报告,文献综述,任务书以及最终的论文做总结阐述,所以说文档方面也比较完整。
结 论
在当今电脑网络密布的世界当中,一个简单高效的局域网通信工具是如此的具有实用性,所以我们应当重视对它的相关研究与开发。在这次的毕业设计中,我应用了VC++6.0开发工具在WINDOWS平台上开发了一个基于WINDOWS平台的局域网通信工具,在这一重要的领域进行了相关的实践,不管是对我的研究能力,还是实际动手能力,还是资料查阅能力,都起了相当大的益处。所以,我决定认真总结这次毕业设计的经验,以及学习到的知识,来更加的充实自己的头脑和完善自己的知识结构。
从这次设计中,我充分认识到了VC++的高效的开发能力,以及WINDOWS平台一如既往的易用性。它的那些完善的编程接口,的确大大方便了开发人员的工作,当然也使得它这个系统本身的推广更加的简单。
另外,我也在这次设计中看到了自己的许多不足之处,比如当系统编写碰到困境的时候,我想过要删减系统的功能,以便系统的得以完成,但是我终于克服了这些懦弱的想法,最终按预想的结果完成了整个系统。我的知识结构也不是足够的充分,尤其是软件工程部分的知识,因为没有做真正的工业化的系统设计,甚至连毕业设计这样的系统都没有做过,所以很多步骤都是自己临时学习,大大影响了系统的开发进度。
既然设计已经完成,论文也写到结论的地方,我希望自己能以一个良好的心态顺利毕业,走向社会。
致 谢
首先感谢我的导师王老师,以及他的两位研究生同学,他们对我的设计进行了悉心的指导及监督,让我得以在规定的时间顺利的完成设计。
也感谢我的家人,在这大学即将毕业,我也即将走向真正的独立的时刻,仍然给了我无尽的物质和精神上的帮助,没有你们的支持,我绝对没有办法顺利的完成这次毕业设计,乃至顺利的毕业,感谢你们。
感谢我参考过的那些书籍的作者,他们是James F.Kurose,Bjarne Stroustrup,Charles Petzold,候捷,林锐,Anthony Jones,Jim Ohlund,限于篇幅,还有很多作者就不一一列举。另外还有网络上那些我找不到作者的文章的作者们,谢谢你们,正是由于你们的无私奉献,才构成了整个充满魅力的互联网,让我在其中方便的获取所需的知识,来完成这次毕业设计和充实我的身心。
最后要感谢我的室友们,在这最后共居的日子里,你们能容忍我一如既往的坏脾气,并且尽量保持一个良好的学习环境。当我的设计遇到困难的时候,你们热心的劝解让我有了继续前进的动力。
参考文献
[1] Brain W.Kernighan, Dennis M.Richie.The C Programming Language[M].机械工业出版社.2004.1
[2] 钱能.C++程序设计教程[M].清华大学出版社.1999.4
[3] James F.Kurose.Computer Networking –A Top-Down Featuring the Internet[M].人民邮电出版社.2004.1
[4] 候捷.深入浅出MFC[M].华中科技大学出版社.2001.1
[5] Bjarne Stroustrup.The C++ Programming Languge[M].机械工业出版社.2001.5
[6] Charles Petzold.Windows程序设计[M].微软出版社.2003.1
[7] Anthony Jones.Jim Ohlund,Windows 网络编程[M].清华大学出版社,2004.3
[8] 汪晓平,钟军.VC6.0网络通信协议分析及应用实现[M].人民邮电出版社,2003.2
[9] 黄强.WINDOWS网络编程[M].人民邮电出版社.2003.1
[10] 肖佳放 .Visual C++网络与数据库编程百例[M].中国电力出版社,2003.5
[11] 王华.局域网常用技术[M].机械工业出版社.1996.3
[12] 陈磊.TCP/IP详解[M].人民邮电出版社.1993.3
[13] 李大兴.局域网拓扑结构介绍[M].清华大学出版社.1995.3
[14] 周一发.局域网与城域网架构原理与应用[M].华中科技出版社.1994.1
[15] 林锐.软件工程思想.西安电子科技大学出版社[M].2001.4
唉,怎么说呢,这次毕业设计做的真是虎头蛇尾,最后还有许多功能没有实现,另外,界面也太过丑陋,算了,时间不多,眼下还有很大的一个日语考试等着我应付呢。。。。。。
上面的测试几乎是为了凑结构胡扯一通,然后为了满足参考文献15篇,自个现编了几个,哈哈。。。。
后天是日语考试,我感到相当不安。。。另外,现在还住在学校宿舍,公司也太扯了,还不赶快安排下一步计划,好让我们有所准备哈,现在估计要搞的我无“家”可归,晕TMD