毕业设计 (论文) 题目:图书馆信息管理系统测试系(部):信息处理与控制工程系专业:软件测试姓名:宋继彬指导教师:张丽景毕业设计(论文)任务书毕业设计 (论文) 评语目录目录 ...................................................... - 4 - 一.引言 ..................................................... - 11 - 1.1软件测试的背景和意义.. (11)1.2软件测试的理论基础 (12)1.3工具及相关技术介绍 (13)二.系统需求分析.............................................. - 23 - 2.1图书管理系统概述 .. (23)2.2图书馆管理系统设计指导思想和原则 (25)2.3图书馆管理系统各功能模块概述 (25)三.系统测试用例设计.......................................... - 30 - 3.1登陆模块测试 . (30)3.2图书查询 (32)3.3读者信息 (35)四.系统测试执行.............................................. - 36 - 4.1读者类型管理测试. (36)4.2读者档案管理测试 (38)4.3图书类型设置管理测试 (41)4.4图书档案管理测试 (44)4.5图书借阅测试 (47)4.6图书续借测试 (49)4.7图书归还测试 (51)4.8图书档案查询测试 (52)4.9图书借阅查询测试 (54)4.10更改口令测试 (55)4.11安全性测试 (56)五.结论 ................................................... - 57 - 致谢 ....................................................... - 58 - 参考文献 ..................................................... - 59 -一.引言1.1 软件测试的背景和意义随着计算机技术的迅速发展和越来越广泛深入的应用于国民经济和社会生活的各个方面,随着软件系统的规模和复杂性与日俱增,软件的生产成本和软件中存在的缺陷和故障造成的各类损失也大大增加,甚至会带来灾难性的后果。
软件质量问题已成为所有使用软件和开发软件的人关注的焦点。
由于软件是人脑的高度智力化的体现和产品这一特殊性,不同于其他科技和生产领域,因此软件与生惧来就有可能存在着缺陷。
如何防止和减少这些可能存在的问题呢?回答是进行软件测试。
测试是最有效的排除和防止软件缺陷与故障的手段,并由此促进了软件测试理论与技术实践的快速发展。
新的测试理论,测试方法,测试技术手段在不断涌出,软件测试机构和组织也在迅速产生和发展,由此软件测试技术职业也同步完善和健全起来。
软件测试不等同于程序测试。
软件测试应当贯穿软件生存周期全过程。
因此,需求描述、需求规约、设计规约、模块设计书以及程序等都应成为软件测试的对象。
换句话说,软件测试包括程序测试和各类文档的评审,这就是对软件测试的广义理解。
相对的狭义理解就是程序测试,但也不等于程序编好了才进行测试。
(1)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;(2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性;(3)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。
1.1.1软件行业现状我国的软件测试技术研究起步于“六五”期间,主要是随着软件工程的研究而逐步发展起来的。
由于起步较晚,与国际先进水平相比差距较大。
随着我国软件产业的蓬勃发展以及对软件质量的重视,软件测试也越来越被软件企业所重视,软件测试正在逐步成为一个新兴的产业。
从目前来看,可主要从四个方面来分析我国测试行业的现状。
1.1.2软件测试的重要性项目软件编制质量的高低关键取决于软件测试工作的严密。
软件测试工作不但保证了软件质量,而且降低了日后维护成本,也提高了企业信誉和实力。
软件测试主要是根据项目制定测试计划,确定测试用例和测试方法,记录测试数据,分析测试结果,完成测试报告,以便软件开发人员进一步调试。
1.2 软件测试的理论基础软件测试使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。
如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。
如果测试目的是为了给最终用户提供具有一定可信度的质量评价,那么测试就应该直接针对在实际应用中会经常用到的商业假设。
在谈到软件测试时,引用Grenford J. Myers在《The Art of Software Testing》一书中的观点: (1)软件测试是为了发现错误而执行程序的过程; (2)测试是为了证明程序有错,而不是证明程序无错误; (3)一个好的测试用例是在于它能发现至今未发现的错误; (4)一个成功的测试是发现了至今未发现的错误的测试。
这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。
但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。
首先,测试并不仅仅是为了要找出错误。
通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。
同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。
其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。
1.3 工具及相关技术介绍1.3.1黑盒测试黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
黑盒测试方法主要有等价类划分、边界值分析、因—果图、错误推测等,主要用于软件确认测试。
1.3.2白盒测试白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑测试、基路测试等,主要用于软件内部结构的验证。
1.3.3 测试工具QTP是quicktest Professional的简称,是一种自动测试工具,它可以重复测试。
1)QTP是一个侧重于功能的回归自动化测试工具;提供了很多插件,如:.NET的,Java的,SAP的,Terminal Emulator的等等,分别用于各自类型的产品测试。
默认提供Web,ActiveX和VB。
2)QTP支持的脚本语言是VBScript,这对于测试人员来说,感觉要“舒服”得多(如相比SilkTest采用C语言)。
VBScript毕竟是一种松散的、非严格的、普及面很广的语言。
3)QTP支持录制和回放的功能。
录制产生的脚本,可以拿来作为自己编写脚本的template。
录制时,还支持一种lower level 功能,这个对于QTP不容易识别出来的对象有用,不过它是使用坐标来标识的,对于坐标位置频繁变动的对象,采用这种方式不可行。
另外,QTP的编辑器支持两种视图:Keyword模式和Expert模式。
Keyword模式想法是好的,提供一个描述近似于原始测试用例的、跟代码无关的视图(我基本很少用,除了查看、管理当前test中各个action的完整流程),而Expert就是代码视图,一般编写脚本都在这个区域。
4)一个有用的工具:Object Spy,可以用来查看Run-time object 和Test object属性和方法。
5)QTP通过三类属性来识别对象:a)Mandatory; b)Assitive; c)Ordinal identifiers。
大部分情况下,通过对象的一些特定属性值就可以识别对象(类型a)。
这些属性可以通过Tools->Object Identification 定义。
6)Object Repository(OR)是QTP存储对象的地方。
测试脚本运行后,QTP根据测试脚本代码,从这个对象库中查找相应对象。
每个Action 可以对应有一个或者多个OR,也可以设置某个OR为 sharable的,这样可以供其他Action使用。
注意,使用QTP录制功能时,默认将被测对象放在local OR中,可以通过 Resources->Object Respository,选择Local 查看。
7)说到QTP的要点,不得不说Action。
Action是QTP组织测试用例的具体形式,拥有自己的DataTable和Object Repository,支持Input 和output参数。
Action可以设置为share类型的,这样可以被其他test 中的Action调用(注意:QTP是不支持在一个test中调用另外一个test 的,只有通过sharable action来调用)。
8)如3)所述,一个test中,多个action的流程组织,只有通过Keyword视图查看和删除,在Expert视图中没有办法看到。
9)调用Action可以通过菜单Insert->Call to *** 来实现。
QTP提供三种类型的调用方式:a)call to new Action,在当前test中创建一个新的Action;b)call to Copy of Action;c)call to existing action,调用一个re-usable action,如果这个re-usable action来自另外一个test,将以只读的方式插入到当前test中。
10)QTP提供excel 形式的数据表格DataTable,可以用来存放测试数据或参数。