第六章 测试和案例分析
6.1测试的重要性及其目的
6.1.1测试重要性
软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软
件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。
事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。而在软件开发的总成本中,用在测试上的开销要占30%到50%。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。 在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这些观点对软件测试工作是极为不利的,必须澄清认识、端正态度,才可能提高软件产品的质量。
32
6.1.2测试目的
如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。其实这是不对的,软件测试是为了发现错误而执行程序的过程; 是为了证明程序有错,而不是证明程序无错误;一个好的测试用例是在于它能发现至今未发现的错误; 一个成功的测试是发现了至今未发现的错误的测试。 这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。
首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。
6.2测试的步骤
与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个
步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成: 1.模块测试 在这个测试步骤中所发现的往往是编码和详细设计的错误。 2.系统测试 在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。
3.验收测试 在这个测试步骤中发现的往往是系统需求说明书中的错误。
33
6.3测试的内容
6.3.1用户登录测试
功能描述 前提目的 前提条件
输入动作 用户名:奥特曼
登陆成功
输入密码:123 用户名:凹凸曼
错误提示:“登陆失败”
输入密码:123
登陆失败 登陆成功
用户登陆
用例编号 测试数据连接的正确性
用户已存在
测试结果
实际情况
C25001
表6-1 用户登陆测试
6.3.2非法连接测试
功能描述 前提目的 前提条件
输入动作 使用链接地址直接访问
使用非法连接登陆
用例编号 测试数据连接的正确性
未登录用户
测试结果 返回主页
实际情况 返回主页
P140702
表6-2 非法链接测试
6.3.3 用户下单测试
功能描述 前提目的 前提条件
输入动作
用户下单
用例编号 测试数据连接的正确性
用户已登陆
测试结果
实际情况
P140703
34
全部文本框输入格式正确 文本框输入格式不正确或空缺
下单成功
错误提示:“下单失败”
下单成功 下单失败
表6-3 用户下单测试
6.3.4 管理员添加菜单测试
功能描述 前提目的 前提条件
输入动作
按要求符合所有要求输入 添加菜单信息不全或空缺
添加菜单
用例编号 测试数据连接的正确性
管理员已登陆
测试结果 添加成功
错误提示:“添加失败”
实际情况 添加成功 添加失败
P140704
表6-4 管理员添加菜单测试
35
结论
几个月来忙碌而又紧张的毕业设计,使我有机会对本专业的基本理论、专
业知识和基本技术有了更深入的了解和体会,使我在三年中所学到的知识得到了系统和升华,真正达到了学以致用。 对网上订餐系统的体会:
网上订餐系统是一门信息科学、系统科学、计算机科学与现代通信技术为一体的一门综合性边缘学科。它是运用系统的方法以计算机和现代通信技术为基本信息处理手段和工具的,能为管理决策提供信息服务的人—机系统.它可以实现数据处理功能、预测功能、计划功能、控制功能和辅助决策功能。管理信息系统的开发是一项复杂的系统工程,必须严格的按照系统规划、系统分析、系统设计、系统实施、系统运行与评价的开发步骤来进行。
在系统开发之前,必须了解该系统的特点、适用范围以及使用者需要一个什么样的系统,以此作为基础为开发系统准确定位,然后对使用者所需实现的功能进行分析总结,根据使用者的实际要求来给系统设计一个初步方案。系统的开发不仅是要实现对数据处理的及时与正确,而且要考虑系统是否具有控制功能,及时将数据反馈给操作者,以进行监测和协调,保证系统的正常运行;也要考虑是否具有预测功能,运用一定的数学方法利用历史的数据对未来进行预测的工作。 设计实践上的体会:
在设计的过程中,我掌握了很多JSP的编程知识,并对这种成熟并广泛应用的技术进行了深入的学习。设计的过程也是一个再学习的过程,在遇到问题的时候我尽量自己想办法解决,这在很大程度上激发了我们的自学能力;在没有办法解决的情况下,认真的向老师请教,从老师那里我学到了很多的知识,老师对我的指导起到了画龙点睛的作用。
以往我们曾经有过多次设计的体会,但只是设计一个模块或一个小系统,而这一次毕业设计是综合所学的管理和计算机的知识来设计一个适合运行管理的进销存系统软件。要想设计使用户满意,就需要我们付出更多的努力。我在设计中经常出现一些问题不知该如何解决,在此时许多同学给予了我们帮助。在设计
36