北京理工大学继续教育学院毕业设计(论文)
餐品管理的核心业务代码:
/** 新增餐品 */
public boolean addMer(Merchandise mer) throws Exception { Session session = MySessionFactory.getSession(); Transaction tx = null; boolean status = false; try{
tx = session.beginTransaction(); session.save(mer); tx.commit(); status = true;
}catch(Exception ex){
if(tx!=null)tx.rollback();
ex.printStackTrace(); }finally{
MySessionFactory.closeSession(); }
return status; }
/** 浏览餐品 */
public List browseMer(String hql) throws Exception { Session session = MySessionFactory.getSession(); Transaction tx = null; List list = null; try{
Query query = session.createQuery(hql); tx = session.beginTransaction(); list = query.list(); tx.commit(); if
(!Hibernate.isInitialized(list))Hibernate.initialize(list); }catch(Exception ex){
if(tx!=null)tx.rollback();
ex.printStackTrace(); }finally{
MySessionFactory.closeSession(); }
return list; }
/** 装载指定的餐品 */
public Merchandise loadMer(Integer id) throws Exception { Session session = MySessionFactory.getSession();
28
北京理工大学继续教育学院毕业设计(论文)
}
Transaction tx = null; Merchandise mer = null; try{
tx = session.beginTransaction();
mer = (Merchandise)session.get(Merchandise.class, id); tx.commit();
}catch(Exception ex){
if(tx!=null)tx.rollback();
ex.printStackTrace(); }finally{
MySessionFactory.closeSession(); }
return mer;
4.5.9会员的管理界面
图4-5-9 会员的管理界面
会员的管理界面实现了对会员的管理,主要功能包括对会员的删除和查询。会员的添加和修改功能由会员自己实现。
会员的管理界面核心业务代码:
/**装载注册会员 */
public Member loadMember(Integer id) throws Exception { Session session = MySessionFactory.getSession(); Transaction tx = null; Member member = null; try{
tx = session.beginTransaction();
member = (Member)session.get(Member.class, id); tx.commit();
}catch(Exception ex){
if(tx!=null)tx.rollback();
ex.printStackTrace(); }finally{
MySessionFactory.closeSession(); }
return member;
29
北京理工大学继续教育学院毕业设计(论文)
}
/** 删除注册会员 */
public boolean delMember(Integer id) throws Exception { Session session = MySessionFactory.getSession(); Transaction tx = null; boolean status = false; try{
tx = session.beginTransaction();
Member member = (Member)session.load(Member.class, id); session.delete(member); tx.commit(); status = true;
}catch(Exception ex){
if(tx!=null)tx.rollback();
ex.printStackTrace(); }finally{
MySessionFactory.closeSession(); }
return status; }
30
北京理工大学继续教育学院毕业设计(论文)
第五章 系统测试
5.1软件测试概述
软件测试是软件开发过程中最关键的阶段。当测试成功时可以尽早发现产品中存在的问题并及时解决。尽早解决可以使软件发布后维护的费用降低。测试的目的是为了保证软件的质量,满足设计的要求和客户的要求:因此软件测试是保证质量的关键步骤,也是对软件的规格说明、设计和编码的最后复审。
5.2软件测试的目标
测试是指“用意在于发现错误而执行一个程序的过程”,一个成功的测试是指它成功地发现了一个尚未发现的错误。软件进行测试,可以分为单元测试、编码测试和综合测试,单元测试可以测试单一模块的功能并确定其功效;编码测试可以测试各模块之间的连接是否有效;综合测试是对软件最后的审定软件的各项功能是否齐全有效,是否能顺利完成设计的目的。
5.3软件测试的方法
软件测试方法一般分为动态测试方法与静态测试方法。动态测试方法中又根据测试用例的设计方法不同,分为黑盒测试与白盒测试两类。
5.3.1 静态测试
静态测试是采用人工检测盒计算机辅助静态分析的手段对程序进行检测,方法如下: 1) 人工检测:是指不依靠计算机运行程序,而靠人工审查盒评审软件。
2) 计算机辅助静态分析:指利用静态分析软件工具对被测试程序进行特性分析,从程序中
提取一些信息,来检查可能出错的变量、参数与代码等。
5.3.2 动态测试
动态测试与静态测试相反,只要是设计一组输入数据,然后通过运行程序来发现错误。一般有两种方法:黒盒测试和白盒测试。
31
北京理工大学继续教育学院毕业设计(论文)
5.3.3 黑盒测试与白盒测试
1、黑盒测试
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当接收输入数据而产生正确的输出信息,并且保持外部信息的完整性。
在功能测试中,被测软件的输入域和输出域往往是无限域,因此穷举测试通常是不可行的。必须以某种策略分析软件规格说明,从而得出测试用例集,尽可能全面而又高效地对软件进行测试。下面就说明几种功能测试的方法:
a.等价类划分
所谓等价类,就是指某个输入域的集合,集合中的每个输入对揭露程序错误来说是等效的,把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例,这就是等价类划分方法。它是功能测试的基本方法。
b.因果图法
因果图是一种形式语言,由自然语言写成的规范转换而成,这种形式语言实际上是一种使用简化记号表示数字逻辑图。因果图法是帮助人们系统地选择一组高效测试用例的方法,此外,它还能指出程序规范中的不完全性和二义性。
c.边值分析
实践证明,软件在输入、输出域的边界附近容易出现差错,边值分析是考虑边界条件而选取测试用例的一种功能测试方法。所谓边界条件,是相对于输入和输出等价类直接在其边缘上,稍高于和稍低于其边界的这些状态条件。边值分析是对等价类划分的有效补充。
黑盒测试主要是为了发现以下几类错误: 1、是否有不正确或遗漏的功能?
2、在接口上,输入是否能正确的接受?能否输出正确的结果? 3、是否有数据结构错误或外部信息(例如数据文件)访问错误? 2、白盒测试
白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。其主要方法有逻辑驱动、基路测试等,主要用于软件验证。白盒法全面了解程序内部逻辑结构、对所有逻辑路径
32