摘 要
电话发展到现在已经成为千家万户最常用的通信工具,电话质量好的大家的首选之一,通话费用比别的通讯工具要便宜得多,基本上各家各户都拥有固定电话,由于使用的人不断的增加,带给管理的要求也越来越高,本管理系统的需要从实际情况出发,对业务经过详细的系统调查,开发出的操作简单而且方便实用的一个电话号码查询系统。本系统使用Myeclipse开发工具,主要使用Hibernate和Strtus2,结合Oracle数据库来实现数据库的操作。
电话号码查询系统主要对电话号码管理日常工作中遇到的实际问题,例如添加,修改,删除维护操作等。
关键词:Myeclipse Oracle数据库 电话号码 Hibernate Struts2
ABSTRACT
ABSTRACT
The telephone developed now already becomes everyone most commonly used communication facility, one of telephone quality good everybody first choices, the telephone conversation expense had to be much cheaper than other communication facilities, the basically various each household all had the fixed telephone, because used person’s unceasing increase, took to the management the request also more and more high, this management system management system need embarked from the actual situation, passed through the detailed system investigation to the service, developed the operation was simple moreover facilitates a practical telephone number inquiry system. This system uses the myeclipse development kit, mainly uses the hql sentence, unifies the oracle database to realize the database operation.
The telephone number inquiry system mainly the actual problem which meets to the telephone number management routine work in, for example the increase, the revision, deletes the maintenance operation and so on.
This system after the test, the movement is stable, may put into the use.
Keywords: Myeclipse Oracle Telephone number Hibernate struts 2
目 录 i
目 录
第一章 绪论 ..................................................................................................................... 1 1.1 系统开发背景 ................................................... 1 1.2系统开发意义 ................................................... 1 1.3 开发技术 ....................................................... 2 1.3.1 JSP技术 .................................................... 2 1.3.2 Struts2技术 ................................................ 3 1.3.3 Hibernate技术 .............................................. 3 1.4 开发工具 ....................................................... 3 1.4.1 Myeclipse .................................................. 3 1.4.2 Oracle ..................................................... 3 1.4.3 Tomcat ..................................................... 4 第二章 系统的可行性分析............................................................................................. 5 2.1 可行性分析 ..................................................... 5 2.1.1 技术可行性 ................................................. 5 2.1.2 经济可行性 ................................................. 5 2.1.3 操作可行性 ................................................. 6 2.1.4 社会因素可行性 ............................................. 6 2.2 可行性研究结论 ................................................. 6 第三章 需求分析 ............................................................................................................. 7 3.1 信息需求 ....................................................... 7 3.2 功能需求 ....................................................... 7 3.3系统流程图 ..................................................... 8 3.4 数据字典 ....................................................... 8 第四章 系统总体设计与实现......................................................................................... 9 4.1 系统E-R图 ..................................................... 9
ii
目 录
4.2 数据库表的设计................................................. 10 4.3 详细设计....................................................... 11 4.3.1 数据库详细设计 ............................................. 11 4.3.2 功能模块介绍 ............................................... 13 第五章 软件测试与调试 .............................................................................................. 21 5.1测试概要 ....................................................... 21 5.1.1 测试目的 ................................................... 21 5.1.2 定义 ....................................................... 21 5.1.3 测试对象 ................................................... 21 5.1.4 测试工具 ................................................... 21 5.1.5 测试执行 ................................................... 22 5.2 测试用例....................................................... 22 5.2.1 功能性 ..................................................... 22 5.2.2 易用性 ..................................................... 22 5.3 测试方法....................................................... 22 5.4 测试结果及缺陷分析............................................. 23 5.4.1 数据和数据库完整性测试 ..................................... 23 5.4.2 功能测试 ................................................... 24 5.4.3 用户界面测试 ............................................... 24 第六章 设计总结........................................................................................................... 27 致谢 ................................................................................................................................. 29 参考文献 ......................................................................................................................... 31
第一章 绪论 1
第一章 绪论
1.1 系统开发背景
计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。近年来,随着电话的日益增多,电话查询也越来越频繁。随之而来的是查询工作日趋复杂繁重,要耗费大量人力、物力,而现有查询的管理水平不高,一直以来人们使用传统人工的方式管理信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。这样的机制已经不能适应时代的发展,已愈来愈成为管理工作的一个瓶颈。在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。
在科学技术的不断提高,计算机科学日渐成熟的今天,计算机已经要成为我们学习和工作的得力助手。今天,计算机的价格已经十分低廉,性能却有了长足的进步,它以及被应用于许多的领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多的复杂的劳动。其次,计算机可以大大的提高人们的工作效率。第三,计算机可以节省许多资源。第四,计算机可以使敏感文档更加安全。
1.2系统开发意义
我们现在管理与我们联系的人的信息有多种,比如说,存储电话号码到手机
上,有记录电话号码信息到本子上的,还有用名片夹存放名片的,也有记录在word文档中或者打印出来的,等等很多种形式。
对于存储电话号码到手机上的方式,比较方便,随时随地可以联系,不过只能通过电话联系,没有记录其他的联系方式,如果手机丢了谁也联系不上了;对于记录电话等信息到本子上的方式,第一有可能丢失,第二是查找起来也比较麻烦,需要人工查找,而且更新时也不容易,需要涂改以前记录的信息,第三格式也比较死板,不利于跟随用户的扩展;对于用名片夹的方式,查找起来也很补方
2 电话号码查询系统
便,有丢失的危险;对于记录到word中或者打印出来,扩展性不是很强,查找起来也不是很方便的。
如此多的方式我们都感觉不方便,有一定的缺陷,那我们如何管理我们的联
系人通讯资料呢?现在计算机,网络也都非常的普遍,为何不用计算机网络对通讯录人员管理呢,而现在我们的手机也逐渐智能化,也都可以连接网络了,这样我们可以随时随地查找任意信息,查找快速、维护方便、丢了手机也不会丢失联系方式、而且也可以更具用户的需要定制、比较灵活,这个可能是最完美的方案了。
1.3 开发技术
1.3.1 JSP技术
JSP全名为java server page,其根本是一个简化的Servlet设计,他实现
了Html语法中的java扩张(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP的强势之处有以下几点:
(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。 (2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。
(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
(5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人
第一章 绪论 3
员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。 1.3.2 Struts2技术
Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。 1.3.3 Hibernate技术
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
1.4 开发工具
1.4.1 Myeclipse
MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具。 1.4.2 Oracle
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结
4 电话号码查询系统
构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。其特点如下:
(1)数据的大量性 (2)数据保存的持久性 (3)数据共享性 (4)数据的可靠性
(5)数据安全性强、稳定性强 1.4.3 Tomcat
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
第二章 系统的可行性分析 5
第二章 系统的可行性分析
2.1 可行性分析
可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能够解决。只要资源和时间不加以限制, 所有的项目都是可行的, 然而, 由于资源缺乏和交付时间限制的困扰, 给基于计算机系统的开发带来了困难。 因此对软件项目的可行性做出细致而谨慎的评估是十分必要的。如果在定义阶段尽早发现将来可能在开发过程中遇到的问题, 及早做出决定, 可以避免大量的人工, 金钱, 时间上的浪费。 因此, 在开发本管理系统之前, 对本次开发的可行性进行了分析。 2.1.1 技术可行性
数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年
代,40多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。面向对象是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。许多程序开发工具,如VB、Java等等,都支持面向对象的程序开发。因此从技术上分析,要开发一个电话号码查询系统是可行的。 2.1.2 经济可行性
电话号码查询系统只是一个小型的数据库管理系统,它的经济可行性可以从
一下几方面考虑:
软件资源:目前网络上有很多供用户免费下载的软件,学校校园网的下载速度也非常快速,所以可以从网上下载开发系统所需的各种软件,或是去电脑城购买,花费个人完全可以承受。
硬件资源:已经拥有一台配置完全能够开发电话号码查询系统的计算机。 参与人员:开发这个系统的人员就是自己,不需要花费金额聘请专业人士。 资源和时间:资源和时间方面相对都是比较充足的。学校的图书馆藏书很多, 想找到自己需要的资料并不困难,再者可以从书店购买自己所需书籍。 综合以上多方面的考虑结果,开发一个电话号码查询系统在经济上是完全可
6 电话号码查询系统
行的。
2.1.3 操作可行性
用户仅需具有基本的电脑操作能力即可。 2.1.4 社会因素可行性
从法律因素和安全用正版和免费角度考虑,所有技术参考资料都经授权,所有软件都选。
2.2 可行性研究结论
依据以上因素,本电话号码查询系统开发项目不仅方便快捷、高效,而且社会效益比较好,从而使本系统开发者相信该系统开发出来之后将取得的成功。
综上所述,此项目在技术、经济、操作和社会效益上是完全可行的。
第三章 需求分析 7
第三章 需求分析
3.1 信息需求
通讯录信息:人员编号,人员姓名,人员电话号码,人员Emial,人员QQ,人员公司/学校名称,人员公司/家庭地址,人员备注。
用户信息:用户号,姓名,登录系统密码,用户身份,权限等。
3.2 功能需求
系统要实现的功能有:
(1)用户登录,用户通过输入正确的用户名和密码登录此电话号码查询系统,用户进入此系统后,可以对他的通讯名单进行管理,添加、删除、修改、插入等操作。
(2)用户注册,没有账户的可以通过注册,添加一个自己的帐号,之后就可以用这个账户登录此系统了。
(3)对通讯录信息的添加,用户进入系统后点击添加按钮,可以添加一个自己的好友信息。
(4)对通讯录信息的删除,用户可以点击删除按钮删除自己选中的人员。 (5)对通讯录信息的修改,用户进入系统后点击修改按钮,修改选中的的人员的信息。
(6)查询功能的实现,用户进入系统后可以输入用户名和电话号码检索自己要查看的通讯人员信息。
8 电话号码查询系统
3.3系统流程图
图3.1 系统结构功能图
3.4 数据字典
名字:用户信息 别名:用户信息 描述:用户注册后存储的信息 定义:用户信息=用户id+用户姓名+用户密码 位置:存储 供用户登录
第四章 系统总体设计与实现 9
名字:通讯录信息 别名:通讯录 描述: 用户存储的通讯人员 定义:通讯录=通讯人员id+通讯人员姓名+telephone+Emial+QQ+地址+备注 位置:存储 第四章 系统总体设计与实现
4.1 系统E-R图
图4.1 用户E-R图
10 电话号码查询系统
图4.2 通讯人员信息E-R图
4.2 数据库表的设计
(1)用户数据表:Telephone_user
表4.1用户数据表
列名 ID Name Password Age QQ
(2) 通讯信息数据表:Telephone_book
表 4.2通讯信息数据表
列名 Id name Telephong 数据类型 Int Varchar2 Varchar2 长度 10 30 30 主外键 主键 是否为空 否 否 否 含义 Id 姓名 电话 数据类型 Int Varchar2 Varchar2 int Varchar2 长度 10 30 30 10 15 主外键 主键 是否为空 否 否 否 含义 Id 姓名 密码 年龄 QQ 第四章 系统总体设计与实现 11
QQ Emial School Address Note
Varchar2 Varchar2 Varchar2 Varchar2 Varchar2 15 30 50 50 150 QQ 电子邮箱 学校 地址 备注 4.3 详细设计
4.3.1 数据库详细设计
此系统选用的是Oracle数据库[1],采用的是hibernate框架对数据的管理[2],
Telephone_user数据表与Telephone_book数据表之间存在依赖关系,Telephone_user.id作为主键,Telephone_book.id作为外键建立依赖关系[3]。
数据库的关系图如下:
图4.3 数据库表关系图
由于两张表之间存在主外键的关联关系,每一条通讯信息都会对应一个用户,方便用户对自己的通讯录信息的管理。
Telephone_user数据表与Telephone_book数据表之间存在一对多与多对一的关联关系,建立这种关系的好处是,当用户登录到系统里面以后就会直接在系统里反映出他的通信信息。Hibernate中的配置信息[4]如下(Hibernate.cfg.xml):
12 电话号码查询系统
\"-//Hibernate/Hibernate Configuration DTD 3.0//EN\"
\"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd\">
在hibernate实体类的映射文件中的配置如下: 1. Person.hbm.xml中配置多对一的关联关系
第四章 系统总体设计与实现 13
4.3.2 功能模块介绍
该系统共有六个模块:登录模块,注册模块,增加联系人模块,删除联系人
模块,修改联系人模块,查询联系人模块。
1.用户登录模块:
当用户进入系统后首先就直接进入到系统的登录界面,这这个界面上用户输
入正确的登录名和密码就可以进入系统,登录界面如下:
图4.4 用户登录模块
在用户输入登录名和密码点击登录按钮时,在后台中会拿到用户输入的数据,再进行判断用户名和密码是否正确[5],进而到数据库中拿到数据返回到客户端页面中,主要的核心代码如下: public String getPassword(String name) {
}
String hql=\"select password from User u where u.name='\"+name+\"'\"; Session session=sessionFactory.openSession(); Query query=session.createQuery(hql); Iterator return \"不存在\"; return it.next(); public String login(){ if(user.getPassword().equals(userService.getPassword(user.getName()))){ personList=personService.getPerson(); return \"success\"; 14 电话号码查询系统 } } else { } return \"false\"; 2.用户注册模块: 用户进入登录界面后可以点击注册按钮注册一个新用户,图示如下: 图4.5 用户注册界面 用户注册时,首先判断此用户是否存在,如果不存在则可以注册,否则注册失败[6],实现此模块的核心代码如下: public String getPassword(String name) { } 如果用户存在则跳出提示框重新注册,如果用户名可用则把新注册的用户保存到数据库中,具体实现代码见附录 public void saveUser(User u) { String hql=\"select password from User u where u.name='\"+name+\"'\"; Session session=sessionFactory.openSession(); Query query=session.createQuery(hql); Iterator return \"不存在\"; return it.next(); 第四章 系统总体设计与实现 15 } Session session=sessionFactory.openSession(); session.getTransaction().begin(); session.persist(u); session.getTransaction().commit(); session.close(); 3.添加联系人模块 用户登录成功后就会跳转到用户的通讯录界面,在这个界面里可以对他的联 系人实现各种管理操作[7],界面如下: 用户登录成功后在主页面中就要把他的联系人反映出来,在这个模块中需要 根据数据库的关联关系从数据库中取出正确的数据,实现此模块的核心代码如下: public List // TODO Auto-generated method stub List //全部为数字 String hql=\"from Person as p where p.telephone='\"+arg+\"'\"; Query query=session.createQuery(hql); listPerson=query.list(); 16 电话号码查询系统 } else { } return listPerson; String hql=\"from Person as p where p.telephone='\"+arg+\"'\"; Query query=session.createQuery(hql); listPerson=query.list(); 图4.6 用户通讯录界面 当点击添加按钮的会系统就会跳到添加联系人界面,在这个界面里面要添加的内容有联系人姓名、电话号码、电子邮箱、公司学校地址等,实现的界面如下: 图4.7 添加联系人界面 在添加联系人界面里,姓名和电话号码不为空,并且不能重复,当点击保存按钮之后就会把所添加的联系人添加到数据库里面,并且会马上返回到通讯录界面里[8],在这个界面里也就可以看到刚才添加的好友信息,实现添加联系人模块的核心代码如下: public void savePerson(Person p) { Session session=sessionFactory.openSession(); User user=(User)session.get(User.class, Integer.valueOf(2)); 第四章 系统总体设计与实现 17 } p.setUser(user); session.getTransaction().begin(); session.persist(p); session.getTransaction().commit(); session.close(); 4.删除联系人模块 在这个模块里面,当勾选了右边的单选框之后,点击删除按钮,就可以删除你要删除的通讯人员了,也可以勾选多条,同时删除多条通讯信息,点击了删除按钮之后数据库里面就会删除这条记录,随后就跳转到个人的通讯录界面[9],实现删除联系人模块的核心代码如下: public void deletePerson(String telephone) { Session session=sessionFactory.openSession(); session.getTransaction().begin(); String hql=\"delete from Person as p where p.telephone='\"+telephone+\"'\"; Query query=session.createQuery(hql); query.executeUpdate(); session.getTransaction().commit(); session.close(); } public String deletePerson()throws Exception { String telephone=request.getParameter(\"hidden\"); personService.delete(telephone); personList=personService.getPerson(); return \"deleteSuccess\"; } 5.修改联系人模块 在通讯录里面,勾选上要修改的通讯人员,点击修改按钮,系统就会跳转到 修改页面,在这个页面里面就可以对这个人的信息进行修改了,实现的界面如下: 18 电话号码查询系统 图4.8 修改联系人界面 实现修改联系人模块的核心代码如下: public List } 6.查询联系人模块 在通讯录查找模块中,我们可以查看某个人的详细信息,如姓名,联系电话, // TODO Auto-generated method stub Session session=sessionFactory.openSession(); session.getTransaction().begin(); String hql=\"from Person as p where p.telephone='\"+telephone+\"'\"; Query query=session.createQuery(hql); List 地址等等,也可以按照归类来进行模糊查询以便快速的找到要查看的联系人,也就是无论联系人哪个信息只要包含所类别的信息,都会把该用户搜索出来,这无疑是给用户带来了很大的方便,用户不需要选择要查询的字段就可以快速的查询 [10] ,实现的界面如下: 第四章 系统总体设计与实现 19 图4.9 查看联系人信息界面 该界面通过如下代码跟数据库内用户信息表连接,具体实现代码见附录 public List } List return listPerson; String hql=\"from Person as p where p.telephone='\"+arg+\"'\"; Query query=session.createQuery(hql); listPerson=query.list(); String hql=\"from Person as p where p.telephone='\"+arg+\"'\"; Query query=session.createQuery(hql); listPerson=query.list(); 20 电话号码查询系统 第五章 软件测试与调试 21 第五章 软件测试与调试 5.1测试概要 5.1.1 测试目的 此系统的测试目的在于总结测试阶段的测试以及分析测试结果,描述系统是否符合需求,主要有以下几点: 1.通过对测试结果的分析,得到对软件质量的评价。 2.分析测试的过程,产品,资源,信息,为以后制定测试计划提供参考。 3.评估测试执行和测试计划是否符合。 4.分析系统存在的缺陷,为修复和预防 bug 提供建议。 5. 根据测试结果修复系统bug,完善系统功能。 5.1.2 定义 严重 bug:出现以下缺陷,测试定义为严重 bug 1) 系统无响应,处于死机状态,需要其他人工修复系统才可复原。 2) 点击某个菜单后出现“The page cannot be displayed”或者返回异常错误。 3) 进行某个操作(增加、修改、删除等)后,出现“The page cannot be displayed” 或者返回异常错误。 4) 当对必填字段进行校验时,未输入必输字段,出现“The page cannot be displayed”或者返回异常错误。 5) 系统定义不能重复的字段输入重复数据后,出现“The page cannot be displayed” 或者返回异常错误。 5.1.3 测试对象 测试对象为此电话号码查询系统,编写每一个模块后,进行单元测试,寻找 此模块中的bug与不足,每一个模块完成单元测试后,对软件进行各种综合测试。 5.1.4 测试工具 22 电话号码查询系统 此系统的主要测试工具Myeclipse和IE中自带的脚本测试工具。 5.1.5 测试执行 此次测试严格按照项目计划和测试计划执行,按时完成了测试计划规定的测试对象的测试。针对测试计划规定的测试策略,在测试执行中都有体现,在测试执行过程中,依据测试计划和测试用例,对系统进行了完整的测试。 5.2 测试用例 5.2.1 功能性 系统实现的主要功能,包括查询,添加,修改,删除。 系统实现的次要功能,包括为用户分配权限,通讯信息的安全性,功能菜单按钮。 需求规定的输入输出字段,以及需求规定的输入限制。 5.2.2 易用性 操作按钮提示信息正确性,一致性,可理解性 限制条件提示信息正确性,一致性,可理解性 必填项标识 输入方式可理解性 中文界面下数据语言与界面语言的一致性 5.3 测试方法 此系统采用的测试方法为动态测试。动态测试是通过运行程序发现错误。一般意义上的测试都是动态测试。为使测试发现尽可能多的错误,动态测试时需采用一些有效的方法。一方面通过测试检查软件每个功能的执行情况,另一方面详细测试软件的内部结构和处理过程。由于软件是我个人完成的,所以我又选用的是白盒测试。白盒测试法是通过分析程序内部的逻辑与执行路径来设计测试用例,并对测试用例进行测试的方法,也称做结构测试或逻辑驱动方法。白盒测试法对程序的执行细节进行测试,验证程序模块的每个路径的执行情况。 第五章 软件测试与调试 23 软件动态测试过程: 图5.1 软件动态测试过程 5.4 测试结果及缺陷分析 5.4.1 数据和数据库完整性测试 表5.1 数据和数据库完整性测试 测试目标 以数据库表为单位,检查数据库表以及表中各字段命名是否符合命名规范,表中字段是否完整,数据库表中的字段描述是否正确包括字段的类型、长度、是否为空,数据库表中的关系、索引、主键、约束是否正确。 测试数据 Telephone_user中:id=null,””,0; name=null,””,”XXX”,int类型数字; password=null,””,”XXX”,int类型数字 Telephone_book中:id=null,””,0; name=null,””,”XXX”,int类型数字;Telephone=null,””, ”XXX”, int类型数字; 测试范围 技术 数据库中Telephone_user表和Telephone_book表 利用有效和无效的数据来执行各个用例、用例流或功能,以核实一下功能: 在使用有效的数据时得到预期的结果。 在使用无效的数据时显示相应的错误消息或警告消息。 数据库中各种要求都得到了实现 测试结果 Telephone_user:id只能为int类型的数字,name不能为空,password不能为空; Telephone_book:id只能为int类型的数字,name可以为空,24 电话号码查询系统 telephone不能为空。 需考虑的特殊事 项 5.4.2 功能测试 表5.2 功能测试 测试目标 测试数据 测试系统中各个模块、各个功能是否实现,是否存在bug 因为已经对数据库中的数据和数据库完整性做过测试,在做功能测试时,所有的数据都要经过数据库,所以在做功能测试时按照数据库中字段的约束进行测试。 测试范围 添加联系人功能模块、删除联系人功能模块、修改联系人功能模块、查询联系人功能模块。 技术 测试结果 联系人姓名可以为空,电话号码不可以为空,并且只能是数字 需考虑的特殊事 项 5.4.3 用户界面测试 表5.3 用户界面测试 测试目标 测试数据 用户登录、用户注册、以及对联系人的各种管理操作 登录:在没有用户名的情况下随便输入用户名和密码登录系统 用已有的用户名和密码登录系统 注册:注册已经被注册过的用户名 注册没有被注册的用户名 对联系人的各种管理操作:功能测试 测试范围 用户登录模块、用户注册模块、添加联系人功能模块、删除联系人功能模块、修改联系人功能模块、查询联系人功能模块。 技术 利用有效和无效的数据来执行各个用例、用例流或功能,以核实一下功能: 在使用有效的数据时得到预期的结果。 第五章 软件测试与调试 25 在使用无效的数据时显示相应的错误消息或警告消息。 数据库中各种要求都得到了实现 当用户名错误时不能登录此系统并且弹出提示信息,用户不能注册已经注册过的用户。 需考虑的特殊事 测试结果 项 26 电话号码查询系统 第六章 设计总结 27 第六章 设计总结 在系统的设计阶段,首先对网络版的电话号码查询系统进行了了解,仔细分析了该系统功能和要求要求,并根据这些功能要求对系统进行定义,确定系统必须做什么。但由于对WEB版的电话号码查询系统了解不多,需求分析难免不够完善,但是基本需求都考虑到了,并用文档准确记录了系统的需求。之后着手对系统的设计工作,首先是概念结构设计,根据需求分析结果总结系统内实体及联系并绘制系统的局部ER图和全局ER图。然后是逻辑结构设计,结合需求分析与概念结构设计把设计好的ER图转换为DBMS(oracle)所支持的数据模型所符合的逻辑结构。最后运用开发工具eclipse进行功能的编码实现。 该系统最终能够基本实现绝大多数功能,但是也有很多不做之处,如页面跳转时,都要把数据库中的信息查询一边放到页面上,这样做使得系统的反映很慢,希望老师给与意见及帮助,使系统功能更加完善。 经过一段时间的努力,我的毕业设计终于完成了,这里面有我付出的汗水,也有老师和同学的帮助,正是由于他们的帮助我才有了现在的成果,在设计的过程中由于我的知识水平有限,我遇到了很多的问题和困难,但在我的辛勤努力和老师同学的帮助下,我度过了一道道的难关,解决了一个个的问题,最终实现了里面应该实现的功能。通过这次设计,不仅巩固了我以前学过的知识,弥补了知识漏洞,对我以后的工作打下了坚实的基础。在此深深感谢帮助我的老师和同学们,感谢他们在我的设计中为我付出的汗水和心血。 28 电话号码查询系统 致谢 29 致谢 我在西安电子科技大学长安学院的四年的学习生活既将结束。回首既往, 自己一生最宝贵的时光能于这样的校园之中,能在众多学富五车、才华横溢的老师们的熏陶下度过,实是荣幸之极。在这四年的时间里,我在学习上和思想上都受益非浅。这除了自身努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的论文的写作是枯燥艰辛而又富有挑战的。 电话号码查询系统是理论界一直探讨的热门话题,老师的谆谆诱导、同学的出谋划策及家长的支持鼓励,是我坚持完成论文的动力源泉。在此,我特别要感谢我的导师。 从论文的选题、 文献的采集、 框架的设计、结构的布局到最终的论文定稿,从内容到格式,从标题到标点,他都费尽心血。没有老师的辛勤栽培、孜孜教诲,就没有我论文的顺利完成。 感谢计算机系的各位同学,与他们的交流使我受益颇多。最后要感谢我的家人以及我的朋友们对我的理解、支持、鼓励和帮助,正是因为有了他们,我所做的一切才更有意义;也正是因为有了他们, 我才有了追求进步的勇气和信心。时间的仓促及自身专业水平的不足,整篇论文肯定存在尚未发现的缺点和错误。恳请阅读此篇论文的老师、同学,多予指正,不胜感激! 30 电话号码查询系统 参考文献 31 参考文献 [1] 路川,胡欣杰,阎文丽编著《Oracle 10g宝典(第2版)》电子工业出版社,2010 [2] (美)罗森维格等著《Oracle PL/SQL实例精解》,机械工业出版社,2009年 [3] 刘京华,《JavaWeb整合开发王者归来》[M].北京:清华大学出版社 [4] 夏昕,曹晓钢,唐勇 《深入浅出Hibernate》 [M].北京:电子工业出版社 2005.6.1 [5] [美]Rogers Cadenhead. Java编程入门经典.梅兴文译.第4版.北京:人民邮电出版社,2007 [6] 李兴华,《Java开发实战经典》编著/2009年08月/清华大学出版社 2009 [7] 孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2004: 1-9. [8] 赵丽,杨国良 《JAVA面向对象程序设计》 西安电子科技大学出版社,2009. [9] 陈轶,姚晓昆编著.Java程序设计实验指导.北京:清华大学出版社,2006 [10] 辛运帏《Java程序设计(第二版)》清华大学出版社2006 因篇幅问题不能全部显示,请点此查看更多更全内容