1、合肥工业大学毕业设计论文摘 要考试是大多数教育部门衡量学生水平的方法,而考试就需要试题。当计算机并未普及时,试题都是用纸张来保存,维护或抽题时非常费时费力。现在计算机普及了,就可以用软件来实现试题的维护。本试题库系统的开发,是为了方便管理、抽取试题,减轻教师的负担。其在学校具有很大的应用价值。它具有保密性、操作简便、易于使用、抽题时具有很大的随机性等特点。在开发软件的同时,使本人掌握了软件开发的基本知识,以及学到解决问题的方法。本软件是以Win2000为平台,Visual Basic 6.0为软件开发工具编写而成的。本软件的通用性很好,可以在大多数操作平台上使用。关键字:试题库、题库系统、教育
2、测量系统AbstractTest is a method which is used to check the level of the students by most of the education section, and question is necessary for the test.however, when computers still are not popular, question are stored by paper, maintaining and selecting are waste of the timing and labor.nowaday, the
3、 computer are in the daily use, so we can unity software to realize the protecting of question.The design of testbase system is to make the management and selecting more comfortable, reduce the duty of teachers, which is valueless. It is easy to run and manage, it is random to select questions. At t
4、he same time, it makes me master the basic knowledge of software development and acquire the way of soluting the problem.This software is based on the Win2000, and uses the Visual Basic 6.0 as software design tools. This software is general use, so can be fit for most platens.KEY WORDS: TESTBASE SYS
5、TEM 前 言 试题库系统是一个相当复杂的系统,它的建立需要专业课教师、程序设计人员和教育测量专家的分工合作:1.教育测量专家为建立题库提供经典的或现代的教育测量理论,使题库具有科学的数学模型。这样建立起来的题库不光是为教师提供各种试卷,免除教师出题之苦,更重要的是能够根据不同要求生成高水平的试卷,并能对考试结果进行科学地统计、分析和评价,真正起到促进教学研究、提高教学质量的作用。2.程序设计者的任务是设计程序,使之实现题库系统的各种功能,并能迅速、协调和可靠地工作。因此,程序设计者的工作情况,直接影响着题库系统的质量。具体说,程序设计者应完成以下工作:(1) 根据需要选择题库的运行环境。 计
6、算机系统是题库系统赖以生存的物质基础,它为建立题库、使用题库提供了必不可少的环境。也可以认为,计算机系统是题库系统的重要组成部分。因此,在具体建库之前,要根据题库的规模、功能和速度要求,选用合适的硬件环境和软件环境,包括计算机主机的类型、内存的容量、外存储器的容量以及监示器和打印机等硬设备。由于计算机软件对硬件有极强的依赖性,因此,在选择硬件环境时还要考虑它的先进性和使用的广泛程度,以利题库的发展和推广。软件环境的选择包括操作系统和编程工具。例如选择高级程序设计语言、数据库管理系统以及题库生成系统等。(2) 根据对题库的功能要求,设计题库系统的结构框图。 对题库的功能要求是由建库的目标决定的。
7、一方面考虑近期要达到的目标,例如组卷、项目分析、试卷分析、自动修改试题指标等。另一方面还要考虑今后的发展目标,使题库能够不断地完善和发展。当对题库的功能要求确定之后,就可以着手设计题库系统的结构框图。即把整个系统分成若干个子系统,每个子系统完成一个固定的功能,并用方框把它框起来,方框之间用带箭头的线连结,表示它们之间的数据流动和控制关系。这样就构成了结构图,需要指出的是,把整个系统分成多个子系统,并不是机械地按功能要求来分的,还要考虑生成题库软件时的一些技术问题。例如上-小节提供的一个题库系统结构图,就把组卷功能分成交互式组卷和自动组卷两个子系统来实现;把题库分成五个子库,共同完成试题的存储,
8、这也是从技术实现上考虑才这样作的。另外,为了使各子系统成为一个整体,方便用户使用,还要有主控模块,菜单结构,为用户提供良好的界面。(3) 画出流程图,进行程序设计。 在完成结构设计之后,可对每个子系统进一步加细,首先是做出流程图,然后进行程序设计。当然,在整个软件编制完之后,还需不断调试,排除和修改错误,使之能实现预先提出的各种要求。3.专业课教师的任务是为建库提出目标,并提供有足够数量的题卡。题卡建设是建库的基础工作,也是工作量最大的-项工作。一般,一个题库要储存有几千道试题,这些试题既能覆盖-门课程的各个方面,又能反映不同层次的要求,其类型也多种多样,有客观题,也有问答题。对于入库的每一道
9、试题,都要按统一的形式建题卡,描述试题的正文和题图、解答和答图、以及难度、区分度等指标。此外,还要对每题注明编号、章、节号、试题来源等参数。难度和区分度是由教师根据已有的经验和资料提出来的,在后来的使用中进行不断的修正。(加题卡的图片,上面有题卡的格式和一个题卡实例)建设题库系统是一项工作量很大的系统工程,它的完成不仅需要大量的人力和时间,还要有周密的施实计划和方案,并在实践的过程中进行不断的调整。如上所述,题库系统是计算机辅助测验系统的一种重要形式,在国内外得到了越来越广泛的应用。它在生成试卷、进行试题和试卷分析等方面可以为教师节省大量的时间,而且能够在大范围内进行高质量的测验,这无疑会对提
10、高教学质量产生积极的促进作用,因此受到普遍的重视。但多数题库系统仍是以脱机形式实施测验,阅卷评分也是由人工完成。这样固然会有许多工作要教师去完成,但可以省去许多设备,(例如,如果用计算机实施测验,那至少要有几十台终端或微型机),有利于普及和推广。再则,用计算机实施测验和阅卷评分,主要是对客观题有效。这限制了试题的形式,只能是选择题、判断题、匹配题等,这样的测验有其局限性,它不能测验考生的综合能力、理解能力和文字表达能力。可见,题库系统虽然只完成了测验中的一部分工作,许多事情还得教师去作,但它给人们带来的效益都是十分显著的,因此,题库系统已经被广泛应用于计算机辅助测试中。随着计算机业的发展,各行
11、各业对于计算机的使用也在普及。50 目 录目 录1第一章 Visual Basic 6.0简介21.1 概述21.1.1 Visual Basic 6.0的特点31.1.2 Visual Basic 6.0的运行环境31.2 Visual Basic集成开发环境31.3窗体41.4 控件41.5 属性41.6 事件51.6.1 代码编写51.6.2工程(项目)资源管理器51.7 设计程序的一般步骤5第二章 系统的开发52.1 题库定义52.2 题库总体数据结构62.2.1 定义62.2.2 在实际中的应用62.2.3 设计时需考虑的问题62.2.4 系统框图72.3系统开发过程72.3.1 窗
12、口界面72.3.2 数据库82.3.3 窗体92.3.4 菜单11第三章 试题库系统123.1 题库定义123.2运行环境123.3系统的功能和使用方法123.3.2 主界面13第四章 系统的测试194.1软 件 测 试194.2软件测试的基本概念194.2.1软件测试的任务194.2.2软件测试基本原则194.2.3软件测试基本方法204.3软件测试技术214.3.1基本概念214.3.2黑箱测试和白箱测试的实施214.4对试题库的测试214.5对整个系统的测试22结束语23参考文献24附录程序代码25第一章 Visual Basic 6.0简介1.1 概述Visual Basic 6.0是
13、Microsoft公司推出的可视化开发工具组件 Visual Studio 6.0的组件之一。Visual意为“可视化的”,指的是开发图形用户界面(GUI)的方法。Basic指的是BASIC语言。是一种简单易懂、面向初学者的语言。Visual Basic 6.0是基于BASIC的可视化程序设计语言。Visual Basic 6.0既继承了BASIC语言的简单易懂的特点,又采用了面向对象、事件驱动的编程机制,提供了一种所见即所得的可视化程序设计方法。Visual Basic 6.0有学习版、专业版、企业版三个版本,以满足不同层次开发者的需求。1.1.1 Visual Basic 6.0的特点具有
14、面向对象的可视化设计工具Visual Basic 6.0提供可视化平台,把Windows界面设计的复杂性封装起来,编程人员不必为界面的设计编写大量的代码。只需按照编程的需要,用Visual Basic 6.0提供的工具箱在界面上添加各种对象,此时,所见即所得。而界面的设计代码是由Visual Basic 6.0自动产生的,编程人员只需编写实现功能的那部分代码,从而大大提高了编程效率。事件驱动的编程机制在事件驱动的应用程序中,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码片段。事件可以由用户操作触发,还可以由应用程序本身的消息触发,可以由来自操作系统或其他应用程序的消息触发。结
15、构化的程序设计语言Visual Basic 6.0是在BASIC语言的基础上发展起来的,它吸收了其他结构化程序设计语言的优点,具有丰富的数据类型和函数,结构化程序结构,易学易用。开放的数据库功能与网络支持由于应用程序中三层体系结构的出现,使得网络、应用程序以及数据库的连接更加紧密起来。Visual Basic 6.0提供了一些接口来实现网络以及数据库的连接。Visual Basic 6.0有很强的数据库管理功能,可以通过直接访问或建立连接的方式访问并操作后台数据库。充分利用Windows资源Visual Basic 6.0通过三种技术来实现与Windows资源的交互,这三种技术是:动态数据交换
16、编程技术、对象链接与嵌入技术以及动态链接库技术。1.1.2 Visual Basic 6.0的运行环境硬件:586或更高的CPU(推荐P或更高的CPU),300MB以上的硬盘剩余空间,32MB以上的内存。软件:Microsoft Windows98或以上的更高版本,或Microsoft Windows NT 4.0或更高版本。1.2 Visual Basic集成开发环境新建一个工程时,可在“新建”选项卡中选择“标准EXE”,并单击“打开”按钮,即可进入Visual Basic 6.0应用程序的集成开发环境。标题栏菜单栏它包括13个下拉子菜单,包含使用Visual Basic 6.0所需要的命令
17、。这些子菜单包括文件、编辑、视图、工程、格式、调试、运行、查询、图表、工具、外接程序、窗口、帮助。工具栏在默认状态下,启动Visual Basic 6.0后,在窗口上出现标准工具栏。可以选择“视图”菜单的“工具栏”选项,打开Visual Basic 6.0的其他工具栏。工具栏中列出了Visual Basic 6.0最常用的操作。工具箱工具箱由21个按钮形式的图标构成,显示了各种控件的制作工具。用户可以利用这些工具在窗体上设计各种控件。其中,指针不是控件,它仅用于移动窗体和控件,以及调整它们的大小。窗体窗口在设计Visual Basic 6.0应用程序的过程中,界面设计是最基本的工作。窗体窗口是
18、设计应用程序界面的地方,每个窗体窗口只容纳一个窗体。在开发应用程序时可以使用多个窗体,窗体窗口也就有多个。工程资源管理器窗口在工程资源管理器窗口中可以对当前使用的工程进行管理,可以添加、删除各个组成部分,可以快捷地在代码和界面之间进行切换,对整个工程进行宏观的控制。属性窗口在进行界面设计时,窗体和控件的标题、大小字体等特征是由它的属性所决定的,所有窗体和控件都要进行属性设置,可以通过属性窗口来进行属性设置。其中,属性窗口由对象列表框、属性显示排列方式、属性列表框、属性含义说明框。窗体布局窗口窗体布局窗口用于指定程序运行时的初始位置,主要使所开发的应用程序能在各种不同分辨率的显示器上使用,在多窗
19、体应用程序中较有用。在窗体布局窗口中,可以使用拖动鼠标的方法更改单个或多个窗体的位置,同时观察多个窗体的相对布局。1.3 窗体窗体也即平时所说的窗口,它是Visual Basic 6.0中最常见的对象,也是程序设计的基础。各个控件对象必须建立在窗体上,一个窗体对应一个窗体模块。新建工程时,系统会自动建立一个窗体。在设计状态下,窗体是可见的。窗体的网格可以通过“工具”菜单的“选项”菜单项设置,在通用选项卡的“窗体设置网格”中输入“宽度”和“高度”来改变。1.4 控件在Visual Basic 6.0中,控件是由系统预先定义好的,是在程序中可以直接使用的一类对象。每个控件都有各自的属性、事件和方法
20、,可在设计时或在代码中修改和使用。Visual Basic 6.0中的控件通常分为内部控件、ActiveX控件、可插入的对象三种。1.5 属性属性可看作是对象的静态特性。程序运行时,通过对这些属性的改变,使对象的状态发生变化。所有Visual Basic 6.0程序中的对象都有许多属性,它们是用来描述和反映对象特性的参数。对象属性的设置有两种方法:在属性窗口直接设置。在程序代码中通过赋值实现。1.6 事件事件是由用户或系统触发,可以由窗体或控件识别的操作。在事件驱动的应用程序中,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码片段。因此,编程人员只需对每一个对象的特定事件编写相
21、应的代码即可,无须考虑程序的执行顺序。1.6.1 代码编写在Visual Basic 6.0中,使用代码编辑器编写应用程序的代码。1.6.2 工程(项目)资源管理器工程是指建立一个应用程序时所包含的文件的集合,包括窗体文件、模块文件以及可以由Visual Basic 6.0应用程序使用的任何类型的文件。在默认状态下,当建立或打开某个工程后,工程资源管理器就出现在集成开发环境中。工程资源管理器显示当前所打开的工程的信息状态和文件内容。若打开的是一个工程组,则将显示整个工程组的所有工程信息。可通过“视图”菜单中的“工程资源管理器”菜单项来打开或关闭工程资源管理器窗口。工程资源管理器由标题栏、工具栏
22、、列表窗口三部分组成。1.7 设计程序的一般步骤创建应用程序的界面。 设置属性。编写代码。 调试运行。生成可执行文件。第二章 系统的开发2.1 题库定义题库(ITEM BANK)是“按照一定的教育测量理论,在计算机系统中实现的某个学科题目的集合”,它是严格遵循教育测量理论,在精确的数学模型基础上建立起来教育测量工具。建立试题库是一个复杂的系统工程,首先要建立系统的数学模型,然后确定试题的属性指标以及试题的组成机构,再编写试题。为了保证这些试题的科学性和有效性,还要组织大量的被试样本,进行抽样测试,对试题参数标注的有效性进行校正。2.2 题库总体数据结构2.2.1 定义题库总体数据结构是指所有试
23、题及其所有相关信息被组织存储的形式结构。总体数据结构的确立要从建库目标和功能要求出发,力求节省存储空间,方便计算机处理和用户使用,保证有较快的检索和处理速度。2.2.2 在实际中的应用对于较大的题库系统,其试题库总体结构是分层分块的,总库下有子库,子库中有分库等。试题信息常按题文(题目中的文字部分)、题图(题目中的附图)、答案(答案信息为文字)、答图(答案信息为图形)、属性指标等分类,分别存放于不同的子库当中;全部试题又常按课程内容、或体型、或按测试目标层次分类存储,这样每个子库被相应地分成若干分库。各个子库要设定相同的关键字,利用关键字把同一道试题的各种信息联系在一起(例如同题号作关键字,那
24、么在各子库中部应有题号这个数据项)。为了提高检索和库管理速度,一般要根据需要建立各种索引文件,如对各个子库建立各分库的题号索引,以指出各分库中存放的试题题号范围。通常可用分库中第一个试题的题序号和该库中存放的试题总数目来标明该范围(因题库中题号是有顺序的,题目按题号有序地存储在分库中)。2.2.3 设计时需考虑的问题设计题库总体数据结构时要考虑图形存储问题。许多科学题库都不可避免地存储带有图形的试题,而图形需要占据大量存储空间,应采用数据压缩技术解决节省图形存储空间的问题。有关压缩存储的方法很多,针对不同学科的图形特点可设计不同的方法来实现图形数据压缩。例如,将试题中的图形以图段拼成,而图段则
25、由一些图元组成,每个图元给予不同的编码,不同的编码值代表不同的作图算法,然后用参数表明图的大小及它的相对位置。这样使用适当的编辑命令,就能很方便地绘制题目中所需要的图形。可以看出,这种方法已把一幅图形变成一些代码和参数存储起来。当图形显示时,失调出相应的图形记录,分解并解释那些代码和参数,然后根据代码值所表示的算法,绘出每个图段的各图形元,这样一幅题图接显示出来。采用这种办法存储图形,占满监视器一屏幕的单线图(如电路图)仅约占2K字节的存储空间。这比用点阵数据存储图形节省了三分之二的存储。2.2.4 系统框图欢 迎 界 面查询维护组卷打印系统试题查询试卷查询试题维护试卷维护系统维护手工组卷自动
26、组卷试题打印试卷打印关于系统退出图2-1 系统框图2.3系统开发过程2.3.1 窗口界面因为采用面向对象的开发平台,所以窗口界面的编程十分简单,只需要设定窗口的各主要参数即可。在Visual Basic 6.0中,为每个对象提供了Name 属性,主要用于应用对象。但它并不直观,不能给编程人员更多的有关这个对象的信息。为了向用户说明窗体的作用,窗体的标题,即它的Caption属性没有特别的要求。在这里,大多数窗口都采用了以前缀为frm命名的形式。例如,主窗口的命名为Frmmain.一般来说,任一系统的窗口必定不少,要处理好各窗口的关系,就要对窗口命好名,做到由窗口的名字就能知道窗口所要完成的功能
27、,这样不但有利于系统调试、维护,还有利于群众开发。本系统由于作者经验不够,还没能完全做到这一点.2.3.2 数据库本系统用的是 Microsoft Accesss数据库。所建的表共有六个,其中主要的表有:图2-2 数据库表Question它的定义如下:图2-3 Questtion表表Test的定义如下:图2-4 Test表表TestHistory的定义如下:图2-5 TestHistory表表TestIDHistory的定义如下:图2-6 TestIDHistory表表TestInfo的定义如下:图2-7 TestInfo表表User的定义如下:图2-8 User表对主键的处理表的主键是表的每
28、一行的唯一标志,不能重复,否则出错。但在Access数据库中,表的主键的定义不是必需的,可应尽量定义主键。一个表,只有定义了主键,才能定义该表与数据库中其他表间的关系。在这里作者以ID来定义每个表的主键。在要插入行的时候,用程序给它赋值,这样虽然增加了编程工作量,但保证了系统的稳定性。2.3.3 窗体窗体就是平时所说的窗口,它是Visual Basic 6.0 中最常见的对象,也是程序设计的基础。各个控件对象必须建立在窗体上,一个窗体对应一个窗体模块。新建工程时,系统会自动建立一个窗体。在设计状态下,窗体是可见的。窗体的网格可以通过“工具”菜单的“选项”菜单项设置,在通用选项卡的“窗体设置网格
29、”中输入“宽度”和“高度”来改变。其中,主要的窗体有:(1)试题查询窗口图2-9 试题查询(2)试卷查口图2-10 试卷查询在这里,笔者考虑到,一道题的本身就很长,而且还有答案图形,把它放在一行里面,查看或修改起来十分不方便。但如果每次只显示一道题,而题库却有成千上万道题,就算精确到某一章、某一题型也还有几十或上百道题,用户找起题来就更不方便。为此,笔者用了试题维护窗口来详细查看题目和答案。图2-11 试题维护在这窗口可以对题目各部分做出修改、删除。抽题的算法问题:各种题型的级别不同,综合题的级别要比填空题的级别高,如:若抽到的某道综合题与抽到某道填空题为重题,则选取综合题,而舍去填空题。因为
30、,综合题不但数量少,且在试卷中所占的分数比重大,较为重要。因此,笔者经过分析,把题型的级别划分为:综合题简答题多选题单选题判断题填空题。这样,在抽题时,从综合题抽起,最后才抽填空题,每抽一题,都向上检索一次已抽出所有题的主键与重题标志,若有相同,则舍去再抽。通常试题库的抽题应该设置有难度系数,以用来表示所生成试卷的难度。这些功能需要有对每道题设置难度系数,而且算法需要用到大量的数学模型,这些数学模型要由某课程的专业老师提供。考虑到这点,笔者设置了难度一项,它包括易、中、难三项。这是本系统的创新点之一。2.3.4 菜单为方便用户的使用,也使题库的操作更加系统化,笔者在题库维护界面设置了菜单项。这
31、又是本系统的创新点之一。图2-12 系统主界面 第三章 试题库系统3.1 题库定义 题库(ITEM BANK)是“按照一定的教育测量理论,在计算机系统中实现的某个学科题目的集合”,它是严格遵循教育测量理论,在精确的数学模型基础上建立起来教育测量工具。建立题库是一个复杂的系统工程,首先要建立系统的数学模型,然后确定试题的属性指标以及试题的组成结构,再编写试题。为了保证这些试题的科学性和有效性,还要组织大量的被试样本,进行抽样测试,对试题参数标注的有效性进行校正。3.2 运行环境本题库只要配置好数据库接口,即可在局域网内与其他电脑的题库连接。 数据库采用的是Microsoft Access,是一小
32、型数据库,这有利于提高数据运算速度,并使整个系统管理规范化,数据的完整性、安全性得到保障。用户运行环境为windows98或以上,(不需要特殊的插件),硬件环境不限,包括PC机、手持式电脑、电视机顶置盒和网络电脑等。 3.3 系统的功能和使用方法3.3.1 欢迎界面图3-1 登陆界面利用弹出式窗口的方式,显示出欢迎界面。3.3.2 主界面 图3-2 系统主界面主界面包括:查询、维护、组卷、打印、系统六个菜单和试题查询、试卷查询、试题维护、手工组卷、自动组卷、退出系统六个工具栏,其界面如上图所示。3.3.2.1查询菜单它包括试题查询和试卷查询。 试题查询,它包括学科名称、所属章节、题型、难度、知
33、识点、认知层次。其中,题型一栏包括填空题、判断题、单选题、多选题、间答题、综合题,可以在不同的题型之间进行选择。并在学科名称和所属章节中填入相关内容,在难度一栏中可以在容易、适中、难之间进行选择,并写上相关内容的知识点,最后在认知层次一栏中在了解、掌握、应用中再进行选择,它的界面如下图所示。 图3-3 试题查询 试卷查询,它在查询条件中包括学科名称和试卷号,用户可在其中输入有关内容。接下来是试卷,另外就是查询、恢复、打印设置和退出四个按钮,如下图所示。 图3-4 试卷查询按下查询按钮会出现如下图所示窗口点击确定它就不在了。 图3-5 试题库管理系统条件按下打印设置按钮会出现试卷及答案打印窗口,
34、可以在其中按照自己的意图进行填写,如下图所示。 图3-6 试卷及答案打印点击退出按钮即可退出试卷查询。3.3.2.2维护菜单包括试题维护、试卷维护和系统维护,系统维护又包括用户管理和数据备份。 试题维护,它包括搜索条件、试题信息以及和搜索、录入、取消、删除、修改、刷新和退出七个按钮。它的界面如下图所示。 图3-7 试题维护在搜索条件中填入相关内容,点击搜索按钮即可进行相关操作,点击录入按钮就可录入试题和答案的内容,在同时录入变为保存以保存试题。点击取消会出现如下图所示的取消编辑窗口。 图3-8 编辑图点击删除和刷新按钮可实现他的操作,点击修改按钮可对试题进行修改,点击退出就可退出次窗口。 试卷
35、维护,包括所属学科和试卷名称,可在其中填入有关内容进行相关的操作。作者把删除试卷作了处理,是因为一般不允许删除试卷,因为那样会连同试题一同删除。如下图所示。 图3-9 试卷维护 系统维护包括用户管理和数据备份项。用户管理,在它的功能一栏中包括修改密码、添加用户和删除用户三项,可以在这三项之间进行选择来完成有关操作。用户信息又包括用户名、用户名称、用户类型、旧口令、新口令和再输入新口令。其中,用户类型包括管理员、高级用户、一般用户三项,可在三者之间进行选择。最后点击确定和取消按钮进行确认和取消操作,它的界面如下图所示。 图3-10 用户管理数据备份,包括备份和恢复,它的界面如下图所示。 图3-1
36、1 数据备份3.3.2.3组卷菜单包括手工组卷和自动组卷两项。 手工组卷,它之下包括组卷信息和试题信息两大类,组卷信息又包括试卷信息和搜索条件两大类,可在他们中填入有关内容来进行要求的操作,最后点击搜索按钮可搜索出自己所要的内容,在试题信息栏内会出现试题的有关内容,最后点击退出可退出系统,它的界面如下图所示。图3-12 手工试卷 自动组卷,它主要包括组卷条件和组卷、完成、恢复、退出按钮。首先在组卷条件中输入试卷号和学科名称,之后在题型、题数、难度和分值下进行有关的操作,填入有关内容。点击组卷可进行组卷,再点击完成以完成组卷。点击恢复可恢复有关内容,最后点击退出可退出次窗口,它的界面如下图所示。
37、 图3-13 自动组卷3.3.2.4打印菜单包括试题打印和试卷打印。 试题打印,它包括打印信息和预览、恢复、退出按钮。在打印信息中输入相关内容,按预览、恢复可实现所要求的操作,按退出按钮可退出次窗口,它的界面如下图所示。 图3-14 试题打印 试卷打印,包括打印信息和功能项。在打印信息中输入有关内容后,可在功能下实现其所要的操作,它的界面如下图所示。 图3-15 试题及答案打印3.3.2.5 系统菜单包括关于系统和退出项。 关于系统,它的界面如下图所示。图3-16 关于菜单 退出,可点击退出来退出系统。第四章 系统的测试4.1软 件 测 试 在软件生命周期的各个阶段,都有可能会产生差错,虽然在
38、每个阶段结束之前都有严格的复审,以期能尽早地发现错误。但是,经验表明审查并不能发现所有差错。如果在软件投入生产性运行之前,没有发现并纠正软件中的大部分错误,则这些错误迟早会在运行过程中暴露出来甚至会造成严重的后果,等到那时去改正这些错误的代价会很高。 测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。测试是对软件规格说明、设计和编码的最后复审,所以软件测试贯穿在整个软件开发期的全过程。4.2软件测试的基本概念 测试是为了发现程序中的错误而执行程序的过程,好的测试方案是尽可能的发现至今尚未发现的错误的测试万案。成功的测试则是发现出至今尚未发现的错误的测试。 Dijkstra曾说
39、:测试只能证明错误的存在,但不能证明错误不存在。所以,测试并不能保证程序是完全正确的,成功的测试也不应是没有发现错误的测试。4.2.1 软件测试的任务 软件测试是软件开发过程中的重要阶段,是软件质量保证的重要手段。其任务可归纳为三个方面: 1) 预防软件发生错误 2) 发现改正程序错误 3) 提供错误诊断信息 在软件开发时,应该把测试的设计和实现所做的思考和分析穿插在软件开发的各个阶段,从而较早地预防和排除错误。利用系统设计的万法,在精心控制的环境下,检验程序,从而发现程序的错误。软件测试中,必须提供有关错误的性质、原因和位置的必要的信息,以利于排错。4.2.2 软件测试基本原则 (1)尽早地
40、,不断地进行软件测试,把软件测试贯穿于开发过程的始终。从而尽早发现和预防错误,达到减少软件开发费用和提高软件质量的目的。 (2)测试实例应由测试输入数据和对输入数据所期望 (预测)的程序结果两部分组成。 (3)程序员应避免检查自己编制的程序。 (4)全面检查每一测试结果,以防遗漏。 (5)测试实例设计,应包括:有效和期望的输入条件以及无效的和不期望的输入条件。 (6)除检查程序应完成的任务外,还应检查程序是否做了它不应该做的事。(7)一般认为:程序中尚未发现的错误的数量与在该程序段已发现的错误数量往往成正比。4.2.3 软件测试基本方法 根据程序的功能说明书或程序逻辑结构,设计一组测试实例(t
41、estcases),在精心控制的环境下,按测试实例作为输入执行程序,然后对程序的行为进行检验,预定其是否和预期结果一致,如不一致,即可发现程序错误。 目前,软件测试的方法有三种:动态测试、静态测试和正确性证明。 动态测试是指通常的上机测试,这种方法是使程序有控制地运行,并从多种角度观察程序运行时的行为,以发现其中的错误。测试是否能够发现错误取决于测试实例的设计。 设计测试实例的方法一般有两类:黑箱法和白箱法。 在使用黑箱法设计测试实例时,测试人员将程序看成一个黑箱,也就是说,他不关心程序内部是如何实现的,而只是检查程序是否符合它的功能说明,所以使用黑箱法设计的测试用例完全是根据程序的功能说明来
42、设计的。 如用白箱法,则需要了解程序内部的结构,此时的测试用例是根据程序的内部逻辑来设计的,如果想用白箱法发现程序中所有的错误,则至少必须使程序中每种可能的路径都执行千次。实际上这是不可能的,即使测遍所有的路径,仍不一定能保证程序符合相应的功能要求。关于黑箱测试和白箱测试下面还将详细介绍。 静态测试一般是指人工评审软件文档或程序,借以发现其中的错误,由于被评审的文档或程序不必运行,所以称为是静态的。人工评审的手续虽然比较简单,但事实证明这是一个相当有效的检验手段。由于评审人的能力所限,静态测试显然不可能发现所有的错误。动态测试和静态测试只能发现错误而不能证明程序中不存在错误,只有借助于程序正确
43、性证明才有可能证明程序的正确性。程序证明最常用的方法是归纳断言法,它对程序提出一组命题,如能用数学方法证明这些命题成立,就可保证程序中不存在错误,即它对所有的输入都会产生预期的正确输出。但目前正确性证明尚处于理论研究阶段,其技术尚不成熟,并末达到实用化阶段。因此前两种测试手段仍然是有效的手段。阅读文档或程序,从而发现其中的错误。这种从技术性和管理角度进行的评审是一种很有效的技术,己被普遍认为是保证软件质量的必不可少的措施。软件评审可以分为需求复审,总体设计复审,详细设计复审和程序复审。由于错误发现得越早越易修改,而且副作用亦越小,所以开发活动和评审活动的并行进行是重要的质量保证措施之一。评审有
44、这样的一些特点:(1)能尽早发现错误并纠正,所以降低了开发的成本。(2)由于有开发者之外的其他人参加,可吸收各家之长,效果较好。(3)排错比较容易。测试从迹象断定错误存在,还要根据现象分析,判断错误的原因,这是一个极其困难的过程;而评审则是直接检查软件文档本身,当发现错误时,原因也是显然的。(4)测试需要对一个个错误分别进行分析,定位并纠正;而评审按评审的标准检查时,往往可成批地发现错误,成批纠正、所以效率较高。(5)测试发现错误时,程序员心理比较紧张,总是急于排错,而不能冷静地考虑修改方案,往往错上加错。而评审安排在系统开发的早期,发现错误后,开发人员一般不紧张,可以较全面地权衡,选择修改方案。4.3 软件测试技术4.3.1 基本概念与测试有关的基本概念: (1)单元(unit) 程序中最小的和有意义的部分,由可以是隐含的三部分组成,即由数据输入,加工和输出组成,单元是可以正式说明的程序段。 (2)程序/子程序 由单元组成,程序/子程序内部各弗元之间联系最为紧密,程序由子程序组成。 (3)子系统/系统 由程序/子程序组成,每个程序完成独立的加工,子系统之间相对独立,有独立的数据确认(检验)机构,子系统间有正式的界面。系统是由子系统组成。 (4)程序元素 代表