试题库管理系统开发与设计毕业论文.doc_第1页
试题库管理系统开发与设计毕业论文.doc_第2页
试题库管理系统开发与设计毕业论文.doc_第3页
试题库管理系统开发与设计毕业论文.doc_第4页
试题库管理系统开发与设计毕业论文.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

合肥工业大学毕业设计论文试题库管理系统开发与设计毕业论文目 录目 录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 窗口界面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是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的特点具有面向对象的可视化设计工具Visual Basic 6.0提供可视化平台,把Windows界面设计的复杂性封装起来,编程人员不必为界面的设计编写大量的代码。只需按照编程的需要,用Visual Basic 6.0提供的工具箱在界面上添加各种对象,此时,所见即所得。而界面的设计代码是由Visual Basic 6.0自动产生的,编程人员只需编写实现功能的那部分代码,从而大大提高了编程效率。事件驱动的编程机制在事件驱动的应用程序中,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码片段。事件可以由用户操作触发,还可以由应用程序本身的消息触发,可以由来自操作系统或其他应用程序的消息触发。结构化的程序设计语言Visual Basic 6.0是在BASIC语言的基础上发展起来的,它吸收了其他结构化程序设计语言的优点,具有丰富的数据类型和函数,结构化程序结构,易学易用。开放的数据库功能与网络支持由于应用程序中三层体系结构的出现,使得网络、应用程序以及数据库的连接更加紧密起来。Visual Basic 6.0提供了一些接口来实现网络以及数据库的连接。Visual Basic 6.0有很强的数据库管理功能,可以通过直接访问或建立连接的方式访问并操作后台数据库。充分利用Windows资源Visual Basic 6.0通过三种技术来实现与Windows资源的交互,这三种技术是:动态数据交换编程技术、对象链接与嵌入技术以及动态链接库技术。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所需要的命令。这些子菜单包括文件、编辑、视图、工程、格式、调试、运行、查询、图表、工具、外接程序、窗口、帮助。工具栏在默认状态下,启动Visual Basic 6.0后,在窗口上出现标准工具栏。可以选择“视图”菜单的“工具栏”选项,打开Visual Basic 6.0的其他工具栏。工具栏中列出了Visual Basic 6.0最常用的操作。工具箱工具箱由21个按钮形式的图标构成,显示了各种控件的制作工具。用户可以利用这些工具在窗体上设计各种控件。其中,指针不是控件,它仅用于移动窗体和控件,以及调整它们的大小。窗体窗口在设计Visual Basic 6.0应用程序的过程中,界面设计是最基本的工作。窗体窗口是设计应用程序界面的地方,每个窗体窗口只容纳一个窗体。在开发应用程序时可以使用多个窗体,窗体窗口也就有多个。工程资源管理器窗口在工程资源管理器窗口中可以对当前使用的工程进行管理,可以添加、删除各个组成部分,可以快捷地在代码和界面之间进行切换,对整个工程进行宏观的控制。属性窗口在进行界面设计时,窗体和控件的标题、大小字体等特征是由它的属性所决定的,所有窗体和控件都要进行属性设置,可以通过属性窗口来进行属性设置。其中,属性窗口由对象列表框、属性显示排列方式、属性列表框、属性含义说明框。窗体布局窗口窗体布局窗口用于指定程序运行时的初始位置,主要使所开发的应用程序能在各种不同分辨率的显示器上使用,在多窗体应用程序中较有用。在窗体布局窗口中,可以使用拖动鼠标的方法更改单个或多个窗体的位置,同时观察多个窗体的相对布局。1.3 窗体窗体也即平时所说的窗口,它是Visual Basic 6.0中最常见的对象,也是程序设计的基础。各个控件对象必须建立在窗体上,一个窗体对应一个窗体模块。新建工程时,系统会自动建立一个窗体。在设计状态下,窗体是可见的。窗体的网格可以通过“工具”菜单的“选项”菜单项设置,在通用选项卡的“窗体设置网格”中输入“宽度”和“高度”来改变。1.4 控件在Visual Basic 6.0中,控件是由系统预先定义好的,是在程序中可以直接使用的一类对象。每个控件都有各自的属性、事件和方法,可在设计时或在代码中修改和使用。Visual Basic 6.0中的控件通常分为内部控件、ActiveX控件、可插入的对象三种。1.5 属性属性可看作是对象的静态特性。程序运行时,通过对这些属性的改变,使对象的状态发生变化。所有Visual Basic 6.0程序中的对象都有许多属性,它们是用来描述和反映对象特性的参数。对象属性的设置有两种方法:在属性窗口直接设置。在程序代码中通过赋值实现。1.6 事件事件是由用户或系统触发,可以由窗体或控件识别的操作。在事件驱动的应用程序中,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码片段。因此,编程人员只需对每一个对象的特定事件编写相应的代码即可,无须考虑程序的执行顺序。1.6.1 代码编写在Visual Basic 6.0中,使用代码编辑器编写应用程序的代码。1.6.2 工程(项目)资源管理器工程是指建立一个应用程序时所包含的文件的集合,包括窗体文件、模块文件以及可以由Visual Basic 6.0应用程序使用的任何类型的文件。在默认状态下,当建立或打开某个工程后,工程资源管理器就出现在集成开发环境中。工程资源管理器显示当前所打开的工程的信息状态和文件内容。若打开的是一个工程组,则将显示整个工程组的所有工程信息。可通过“视图”菜单中的“工程资源管理器”菜单项来打开或关闭工程资源管理器窗口。工程资源管理器由标题栏、工具栏、列表窗口三部分组成。1.7 设计程序的一般步骤创建应用程序的界面。 设置属性。编写代码。 调试运行。生成可执行文件。第二章 系统的开发2.1 题库定义题库(ITEM BANK)是“按照一定的教育测量理论,在计算机系统中实现的某个学科题目的集合”,它是严格遵循教育测量理论,在精确的数学模型基础上建立起来教育测量工具。建立试题库是一个复杂的系统工程,首先要建立系统的数学模型,然后确定试题的属性指标以及试题的组成机构,再编写试题。为了保证这些试题的科学性和有效性,还要组织大量的被试样本,进行抽样测试,对试题参数标注的有效性进行校正。2.2 题库总体数据结构2.2.1 定义题库总体数据结构是指所有试题及其所有相关信息被组织存储的形式结构。总体数据结构的确立要从建库目标和功能要求出发,力求节省存储空间,方便计算机处理和用户使用,保证有较快的检索和处理速度。2.2.2 在实际中的应用对于较大的题库系统,其试题库总体结构是分层分块的,总库下有子库,子库中有分库等。试题信息常按题文(题目中的文字部分)、题图(题目中的附图)、答案(答案信息为文字)、答图(答案信息为图形)、属性指标等分类,分别存放于不同的子库当中;全部试题又常按课程内容、或体型、或按测试目标层次分类存储,这样每个子库被相应地分成若干分库。各个子库要设定相同的关键字,利用关键字把同一道试题的各种信息联系在一起(例如同题号作关键字,那么在各子库中部应有题号这个数据项)。为了提高检索和库管理速度,一般要根据需要建立各种索引文件,如对各个子库建立各分库的题号索引,以指出各分库中存放的试题题号范围。通常可用分库中第一个试题的题序号和该库中存放的试题总数目来标明该范围(因题库中题号是有顺序的,题目按题号有序地存储在分库中)。2.2.3 设计时需考虑的问题设计题库总体数据结构时要考虑图形存储问题。许多科学题库都不可避免地存储带有图形的试题,而图形需要占据大量存储空间,应采用数据压缩技术解决节省图形存储空间的问题。有关压缩存储的方法很多,针对不同学科的图形特点可设计不同的方法来实现图形数据压缩。例如,将试题中的图形以图段拼成,而图段则由一些图元组成,每个图元给予不同的编码,不同的编码值代表不同的作图算法,然后用参数表明图的大小及它的相对位置。这样使用适当的编辑命令,就能很方便地绘制题目中所需要的图形。可以看出,这种方法已把一幅图形变成一些代码和参数存储起来。当图形显示时,失调出相应的图形记录,分解并解释那些代码和参数,然后根据代码值所表示的算法,绘出每个图段的各图形元,这样一幅题图接显示出来。采用这种办法存储图形,占满监视器一屏幕的单线图(如电路图)仅约占2K字节的存储空间。这比用点阵数据存储图形节省了三分之二的存储。2.2.4 系统框图欢 迎 界 面查询维护组卷打印系统试题查询试卷查询试题维护试卷维护系统维护手工组卷自动组卷试题打印试卷打印关于系统退出图2-1 系统框图2.3系统开发过程2.3.1 窗口界面因为采用面向对象的开发平台,所以窗口界面的编程十分简单,只需要设定窗口的各主要参数即可。在Visual Basic 6.0中,为每个对象提供了Name 属性,主要用于应用对象。但它并不直观,不能给编程人员更多的有关这个对象的信息。为了向用户说明窗体的作用,窗体的标题,即它的Caption属性没有特别的要求。在这里,大多数窗口都采用了以前缀为frm命名的形式。例如,主窗口的命名为Frmmain.一般来说,任一系统的窗口必定不少,要处理好各窗口的关系,就要对窗口命好名,做到由窗口的名字就能知道窗口所要完成的功能,这样不但有利于系统调试、维护,还有利于群众开发。本系统由于作者经验不够,还没能完全做到这一点.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表对主键的处理表的主键是表的每一行的唯一标志,不能重复,否则出错。但在Access数据库中,表的主键的定义不是必需的,可应尽量定义主键。一个表,只有定义了主键,才能定义该表与数据库中其他表间的关系。在这里作者以ID来定义每个表的主键。在要插入行的时候,用程序给它赋值,这样虽然增加了编程工作量,但保证了系统的稳定性。2.3.3 窗体窗体就是平时所说的窗口,它是Visual Basic 6.0 中最常见的对象,也是程序设计的基础。各个控件对象必须建立在窗体上,一个窗体对应一个窗体模块。新建工程时,系统会自动建立一个窗体。在设计状态下,窗体是可见的。窗体的网格可以通过“工具”菜单的“选项”菜单项设置,在通用选项卡的“窗体设置网格”中输入“宽度”和“高度”来改变。其中,主要的窗体有:(1)试题查询窗口图2-9 试题查询(2)试卷查口图2-10 试卷查询在这里,笔者考虑到,一道题的本身就很长,而且还有答案图形,把它放在一行里面,查看或修改起来十分不方便。但如果每次只显示一道题,而题库却有成千上万道题,就算精确到某一章、某一题型也还有几十或上百道题,用户找起题来就更不方便。为此,笔者用了试题维护窗口来详细查看题目和答案。图2-11 试题维护在这窗口可以对题目各部分做出修改、删除。抽题的算法问题:各种题型的级别不同,综合题的级别要比填空题的级别高,如:若抽到的某道综合题与抽到某道填空题为重题,则选取综合题,而舍去填空题。因为,综合题不但数量少,且在试卷中所占的分数比重大,较为重要。因此,笔者经过分析,把题型的级别划分为:综合题简答题多选题单选题判断题填空题。这样,在抽题时,从综合题抽起,最后才抽填空题,每抽一题,都向上检索一次已抽出所有题的主键与重题标志,若有相同,则舍去再抽。通常试题库的抽题应该设置有难度系数,以用来表示所生成试卷的难度。这些功能需要有对每道题设置难度系数,而且算法需要用到大量的数学模型,这些数学模型要由某课程的专业老师提供。考虑到这点,笔者设置了难度一项,它包括易、中、难三项。这是本系统的创新点之一。2.3.4 菜单为方便用户的使用,也使题库的操作更加系统化,笔者在题库维护界面设置了菜单项。这又是本系统的创新点之一。图2-12 系统主界面 第三章 试题库系统3.1 题库定义 题库(ITEM BANK)是“按照一定的教育测量理论,在计算机系统中实现的某个学科题目的集合”,它是严格遵循教育测量理论,在精确的数学模型基础上建立起来教育测量工具。建立题库是一个复杂的系统工程,首先要建立系统的数学模型,然后确定试题的属性指标以及试题的组成结构,再编写试题。为了保证这些试题的科学性和有效性,还要组织大量的被试样本,进行抽样测试,对试题参数标注的有效性进行校正。3.2 运行环境本题库只要配置好数据库接口,即可在局域网内与其他电脑的题库连接。 数据库采用的是Microsoft Access,是一小型数据库,这有利于提高数据运算速度,并使整个系统管理规范化,数据的完整性、安全性得到保障。用户运行环境为windows98或以上,(不需要特殊的插件),硬件环境不限,包括PC机、手持式电脑、电视机顶置盒和网络电脑等。 3.3 系统的功能和使用方法3.3.1 欢迎界面图3-1 登陆界面利用弹出式窗口的方式,显示出欢迎界面。3.3.2 主界面 图3-2 系统主界面主界面包括:查询、维护、组卷、打印、系统六个菜单和试题查询、试卷查询、试题维护、手工组卷、自动组卷、退出系统六个工具栏,其界面如上图所示。3.3.2.1查询菜单它包括试题查询和试卷查询。 试题查询,它包括学科名称、所属章节、题型、难度、知识点、认知层次。其中,题型一栏包括填空题、判断题、单选题、多选题、间答题、综合题,可以在不同的题型之间进行选择。并在学科名称和所属章节中填入相关内容,在难度一栏中可以在容易、适中、难之间进行选择,并写上相关内容的知识点,最后在认知层次一栏中在了解、掌握、应用中再进行选择,它的界面如下图所示。 图3-3 试题查询 试卷查询,它在查询条件中包括学科名称和试卷号,用户可在其中输入有关内容。接下来是试卷,另外就是查询、恢复、打印设置和退出四个按钮,如下图所示。 图3-4 试卷查询按下查询按钮会出现如下图所示窗口点击确定它就不在了。 图3-5 试题库管理系统条件按下打印设置按钮会出现试卷及答案打印窗口,可以在其中按照自己的意图进行填写,如下图所示。 图3-6 试卷及答案打印点击退出按钮即可退出试卷查询。3.3.2.2维护菜单包括试题维护、试卷维护和系统维护,系统维护又包括用户管理和数据备份。 试题维护,它包括搜索条件、试题信息以及和搜索、录入、取消、删除、修改、刷新和退出七个按钮。它的界面如下图所示。 图3-7 试题维护在搜索条件中填入相关内容,点击搜索按钮即可进行相关操作,点击录入按钮就可录入试题和答案的内容,在同时录入变为保存以保存试题。点击取消会出现如下图所示的取消编辑窗口。 图3-8 编辑图点击删除和刷新按钮可实现他的操作,点击修改按钮可对试题进行修改,点击退出就可退出次窗口。 试卷维护,包括所属学科和试卷名称,可在其中填入有关内容进行相关的操作。作者把删除试卷作了处理,是因为一般不允许删除试卷,因为那样会连同试题一同删除。如下图所示。 图3-9 试卷维护 系统维护包括用户管理和数据备份项。用户管理,在它的功能一栏中包括修改密码、添加用户和删除用户三项,可以在这三项之间进行选择来完成有关操作。用户信息又包括用户名、用户名称、用户类型、旧口令、新口令和再输入新口令。其中,用户类型包括管理员、高级用户、一般用户三项,可在三者之间进行选择。最后点击确定和取消按钮进行确认和取消操作,它的界面如下图所示。 图3-10 用户管理数据备份,包括备份和恢复,它的界面如下图所示。 图3-11 数据备份3.3.2.3组卷菜单包括手工组卷和自动组卷两项。 手工组卷,它之下包括组卷信息和试题信息两大类,组卷信息又包括试卷信息和搜索条件两大类,可在他们中填入有关内容来进行要求的操作,最后点击搜索按钮可搜索出自己所要的内容,在试题信息栏内会出现试题的有关内容,最后点击退出可退出系统,它的界面如下图所示。图3-12 手工试卷 自动组卷,它主要包括组卷条件和组卷、完成、恢复、退出按钮。首先在组卷条件中输入试卷号和学科名称,之后在题型、题数、难度和分值下进行有关的操作,填入有关内容。点击组卷可进行组卷,再点击完成以完成组卷。点击恢复可恢复有关内容,最后点击退出可退出次窗口,它的界面如下图所示。 图3-13 自动组卷3.3.2.4打印菜单包括试题打印和试卷打印。 试题打印,它包括打印信息和预览、恢复、退出按钮。在打印信息中输入相关内容,按预览、恢复可实现所要求的操作,按退出按钮可退出次窗口,它的界面如下图所示。 图3-14 试题打印 试卷打印,包括打印信息和功能项。在打印信息中输入有关内容后,可在功能下实现其所要的操作,它的界面如下图所示。 图3-15 试题及答案打印3.3.2.5 系统菜单包括关于系统和退出项。 关于系统,它的界面如下图所示。图3-16 关于菜单 退出,可点击退出来退出系统。第四章 系统的测试4.1软 件 测 试 在软件生命周期的各个阶段,都有可能会产生差错,虽然在每个阶段结束之前都有严格的复审,以期能尽早地发现错误。但是,经验表明审查并不能发现所有差错。如果在软件投入生产性运行之前,没有发现并纠正软件中的大部分错误,则这些错误迟早会在运行过程中暴露出来甚至会造成严重的后果,等到那时去改正这些错误的代价会很高。 测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。测试是对软件规格说明、设计和编码的最后复审,所以软件测试贯穿在整个软件开发期的全过程。4.2软件测试的基本概念 测试是为了发现程序中的错误而执行程序的过程,好的测试方案是尽可能的发现至今尚未发现的错误的测试万案。成功的测试则是发现出至今尚未发现的错误的测试。 Dijkstra曾说:测试只能证明错误的存在,但不能证明错误不存在。所以,测试并不能保证程序是完全正确的,成功的测试也不应是没有发现错误的测试。4.2.1 软件测试的任务 软件测试是软件开发过程中的重要阶段,是软件质量保证的重要手段。其任务可归纳为三个方面: 1) 预防软件发生错误 2) 发现改正程序错误 3) 提供错误诊断信息 在软件开发时,应该把测试的设计和实现所做的思考和分析穿插在软件开发的各个阶段,从而较早地预防和排除错误。利用系统设计的万法,在精心控制的环境下,检验程序,从而发现程序的错误。软件测试中,必须提供有关错误的性质、原因和位置的必要的信息,以利于排错。4.2.2 软件测试基本原则 (1)尽早地,不断地进行软件测试,把软件测试贯穿于开发过程的始终。从而尽早发现和预防错误,达到减少软件开发费用和提高软件质量的目的。 (2)测试实例应由测试输入数据和对输入数据所期望 (预测)的程序结果两部分组成。 (3)程序员应避免检查自己编制的程序。 (4)全面检查每一测试结果,以防遗漏。 (5)测试实例设计,应包括:有效和期望的输入条件以及无效的和不期望的输入条件。 (6)除检查程序应完成的任务外,还应检查程序是否做了它不应该做的事。(7)一般认为:程序中尚未发现的错误的数量与在该程序段已发现的错误数量往往成正比。4.2.3 软件测试基本方法 根据程序的功能说明书或程序逻辑结构,设计一组测试实例(testcases),在精心控制的环境下,按测试实例作为输入执行程序,然后对程序的行为进行检验,预定其是否和预期结果一致,如不一致,即可发现程序错误。 目前,软件测试的方法有三种:动态测试、静态测试和正确性证明。 动态测试是指通常的上机测试,这种方法是使程序有控制地运行,并从多种角度观察程序运行时的行为,以发现其中的错误。测试是否能够发现错误取决于测试实例的设计。 设计测试实例的方法一般有两类:黑箱法和白箱法。 在使用黑箱法设计测试实例时,测试人员将程序看成一个黑箱,也就是说,他不关心程序内部是如何实现的,而只是检查程序是否符合它的功能说明,所以使用黑箱法设计的测试用例完全是根据程序的功能说明来设计的。 如用白箱法,则需要了解程序内部的结构,此时的测试用例是根据程序的内部逻辑来设计的,如果想用白箱法发现程序中所有的错误,则至少必须使程序中每种可能的路径都执行千次。实际上这是不可能的,即使测遍所有的路径,仍不一定能保证程序符合相应的功能要求。关于黑箱测试和白箱测试下面还将详细介绍。 静态测试一般是指人工评审软件文档或程序,借以发现其中的错误,由于被评审的文档或程序不必运行,所以称为是静态的。人工评审的手续虽然比较简单,但事实证明这是一个相当有效的检验手段。由于评审人的能力所限,静态测试显然不可能发现所有的错误。动态测试和静态测试只能发现错误而不能证明程序中不存在错误,只有借助于程序正确性证明才有可能证明程序的正确性。程序证明最常用的方法是归纳断言法,它对程序提出一组命题,如能用数学方法证明这些命题成立,就可保证程序中不存在错误,即它对所有的输入都会产生预期的正确输出。但目前正确性证明尚处于理论研究阶段,其技术尚不成熟,并末达到实用化阶段。因此前两种测试手段仍然是有效的手段。阅读文档或程序,从而发现其中的错误。这种从技术性和管理角度进行的评审是一种很有效的技术,己被普遍认为是保证软件质量的必不可少的措施。软件评审可以分为需求复审,总体设计复审,详细设计复审和程序复审。由于错误发现得越早越易修改,而且副作用亦越小,所以开发活动和评审活动的并行进行是重要的质量保证措施之一。评审有这样的一些特点:(1)能尽早发现错误并纠正,所以降低了开发的成本。(2)由于有开发者之外的其他人参加,可吸收各家之长,效果较好。(3)排错比较容易。测试从迹象断定错误存在,还要根据现象分析,判断错误的原因,这是一个极其困难的过程;而评审则是直接检查软件文档本身,当发现错误时,原因也是显然的。(4)测试需要对一个个错误分别进行分析,定位并纠正;而评审按评审的标准检查时,往往可成批地发现错误,成批纠正、所以效率较高。(5)测试发现错误时,程序员心理比较紧张,总是急于排错,而不能冷静地考虑修改方案,往往错上加错。而评审安排在系统开发的早期,发现错误后,开发人员一般不紧张,可以较全面地权衡,选择修改方案。4.3 软件测试技术4.3.1 基本概念与测试有关的基本概念: (1)单元(unit) 程序中最小的和有意义的部分,由可以是隐含的三部分组成,即由数据输入,加工和输出组成,单元是可以正式说明的程序段。 (2)程序/子程序 由单元组成,程序/子程序内部各弗元之间联系最为紧密,程序由子程序组成。 (3)子系统/系统 由程序/子程序组成,每个程序完成独立的加工,子系统之间相对独立,有独立的数据确认(检验)机构,子系统间有正式的界面。系统是由子系统组成。 (4)程序元素 代表任一程序成分。4.3.2 黑箱测试和白箱测试的实施 1)黑箱测试,即功能测试,测试时完全不考虑程序内部细节、结构和实现方式。仅检验程序结果与说明书的一致性。测试实例设计完全以说明书为准。 黑箱测试不关心程序内部的逻辑,而只是根据程序的功能说明来设计测试用例。在使用黑箱法时,手头只需要有程序功能说明就可以了。黑箱法分以下几种:等价分类法、边缘值分析法、因果图法、错误推测法。 2)白箱测试,即结构测试,它与程序内部结构相关,要利用程序结构的实现细节设计测试实例。它将涉及程序设计风格、控制方法、源语句、数据库设计、编码细节。 白箱测试时将包括: 语句测试要求程序中每个语句最少检查一次。 分支测试要求程序中每个分支路径最少检查一次。 路径测试要求程序中每条路径最少检查一次。白箱测试考虑的是测试实例对程序内部逻辑的覆盖程度。为了衡量测试的覆盖程度,需要建立一些标准。覆盖程序从低到高分别为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖,条件组合覆盖4.4 对试题库的测试在试题库的开发过程中,测试贯穿了整个过程。4.4.1对单个窗口的测试每完成一个窗口,都单步运行它,看它的独立运行效果。对窗口的编程主要在它的Click事件上。即为当窗口打开时所执行的程序段。如:读取传递参数,设置窗口变量的初值等等。4.4.2 对多个窗口的测试对多个窗口测试,主要是测试参数传递是否正确、窗口类型设置是否正确等。在开发的过程中一定要注意各个窗体在运行时之间的关系以及同一窗体上各个组件间的逻辑关系的设置。4.5 对整个系统的测试当把所有窗口模块联合起来后,遇到的问题的确不少。而最主要的问题是窗口组合结构不合理,使得有些矛盾不能解决,而只得重新开发。笔者就是因为结构不合理而重新开发了三次,浪费了两个月得宝贵时间,也体会到了开发前系统分析工作的重要性。当整个基本系统完成后,笔者对系统作各种常规与非常规操作,找出了不少毛病。如对图的录入,read( )函数每次只能读取32kB的数据,因之前笔者只用较小的GIF压缩文件作测试而没发现错误,后来用BMP文件就出错,解决方法是用循环语句,循环读取到中间变量中,再循环叠加。结束语经过三个多月的努力,试题库系统的开发工作终于完成了,而本次毕业设计也接近尾声。本次毕业设计的知识面覆盖甚广,其中涉及有数据库技术、查询技术、程序编程、打印技术等系统开发方面的知识。本次毕业设计,我从自学Visual Basic 6.0开始,逐步学会了其编程语言、数据库访问技术、安装软件的制作等。最后能够完成本试题库系统,并使其具有真正的应用价值,获得巨大的收获。同时,在开发试题库系统的过程中,也感到自己知识的不足,所以本系统的错误之处不少,望老师和各位同学加以批评指正。在此,希望得到诸位老师的指正。同时,对于周国祥老师所给予的帮助,表示衷心的感谢。 参考文献【1】美David M.Kroenke:数据库处理-基础设计与实现,电子工业出版社,2001【2】黄维通:SQL Server 2000 简明教程,清华大学出版社,2002【3】沈祥玖:Visual Basic可视化程序设计教程,中国水利水电出版社,2003【4】网冠科技:Visual Basic 6.0控件时尚编程百例,机械工业出版社,2002【5】美Deborah Kurata:Visual Basic 6面向对象程序设计,人民邮电出版社,1999【6】白鹏:Visual Basic编程实例与技巧数据库编程,科学出版社,2003【7】周爱武,汪海威:Visual Basic程序设计,清华大学出版社,2003【8】李春葆,张植民:Visual Basic数据库系统设计与开发,清华大学出版社,2003【9】付军:Visual Basic实用编程100例,中国铁道出版社,2003附录程序代码由于原程序代码实在太长,本附录只附录部分由作者编写的主要模块的程序代码。6.1 欢迎界面代码Option ExplicitPrivate Sub Command1_Click()Unload MeFrmmain.ShowEnd SubPrivate Sub Form_KeyPress(KeyAscii As Integer) Unload MeEnd SubPrivate Sub FrameMain_Click()Unload MeFrmmain.ShowEnd Sub6.2 试题库管理系统代码Private Sub gyxt_Click()Load FrmabortStatusBar1.Panels(1) = 试题库管理系统关于系统End SubPrivate Sub MDIForm_Load()StatusBar1.Panels(1) = 欢迎使用西安工程科技学院试题库管理系统End SubPrivate Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)Dim Msg As StringIf UnloadMode 0 Then Msg = 真的要结束本功能吗?Else Msg = 确定要退出本系统吗?End IfIf MsgBox(Msg, vbQuestion + vbYesNo, Me.Caption) = vbNo Then Cancel = TrueEnd SubPrivate Sub sgsc_Click()Load FrmsgzjStatusBar1.Panels(1) = 试题库管理系统手工组卷End SubPrivate Sub sjbf_Click()Load FrmsjbfStatusBar1.Panels(1) = 试题库管理系统试卷查询End SubPrivate Sub sjcx_Click()Load FrmsjcxStatusBar1.Panels(1) = 试题库管理系统试卷查询End SubPrivate Sub sjdy_Click()Load FrmsjdyStatusBar1.Panels(1) = 试题库管理系统试卷打印End SubPrivate Sub sjwh_Click()Load FrmsjwhStatusBar1.Panels(1) = 试题库管理系统试题维护End SubPrivate Sub stcx_Click()Load FrmstcxStatusBar1.Panels(1) = 试题库管理系统试题查询End SubPrivate Sub stdy_Click()Load FrmstdyStatusBar1.Panels(1) = 试题库管理系统试题打印End SubPrivate Sub stwh_Click()Load FrmstwhStatusBar1.Panels(1) = 试题库管理系统试题维护End SubPrivate Sub tc_Click()EndEnd SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.KeyCase key1Load FrmstcxStatusBar1.Panels(1) = 试题库管理系统试题查询Case key2Load FrmsjcxStatusBar1.Panels(1) = 试题库管理系统试卷查询Case key3Load FrmstwhStatusBar1.Panels(1) = 试题库管理系统试题维护Case key4Load FrmsgzjStatusBar1.Panels(1) = 试题库管理系统手工组卷Case key5Load FrmzdzjStatusBar1.Panels(1) = 试题库管理系统自动组卷Case key6EndEnd SelectEnd SubPrivate Sub yhgl_Click()Load FrmyhglStatusBar1.Panels(1) = 试题库管理系统用户管理End SubPrivate Sub zdsc_Click()Load FrmzdzjStatusBar1.Panels(1) = 试题库管理系统自动组卷End Sub6.3 试题查询代码Dim cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetPrivate Sub txtLessonName_GotFocus() StatusBar1.Panels(1) = 请正确输入学科名称,如:操作系统End SubPrivate Sub txtLessonGraph_GotFocus() StatusBar1.Panels(1) = 章节的类型是数字,如1表示第一章End SubPrivate Sub txtLessonGraph_KeyPress(KeyAscii As Integer)Dim strZj As StringstrZj = 0123456789If KeyAscii 26 Then If InStr(strZj, Chr(KeyAscii) = 0 Then KeyAscii = 0 End IfEnd IfEnd SubPrivate Sub cbTestType_GotFocus() StatusBar1.Panels(1) = 题型的类型是文本,请从下拉列表中选择End SubPrivate Sub cbTestDiff_GotFocus() StatusBar1.Panels(1) = 难度的类型是文本,请从下拉列表中选择End SubPrivate Sub txtTestDot_GotFocus()StatusBar1.Panels(1) = 知识点的类型是数字,如1表示一个知识点End SubPrivate Sub txtTestDot_KeyPress(KeyAscii As Integer)Dim strZsd As StringstrZsd = 0123456789If KeyAscii 26 Then If InStr(strZsd, Chr(KeyAscii) = 0 Then KeyAscii = 0 End IfEnd IfEnd SubPrivate Sub cbTestDep_GotFocus() StatusBar1.Panels(1) = 认知层次的类型是文本,请从下拉列表中选择End SubPrivate Sub cmdSearch_Click() Dim strSQL As String strSQL = select * from Question where LessonName= + Trim(txtLessonName) + If txtLessonGraph Then strSQL = strSQL + and LessonGraph= + Trim(txtLessonGraph) End If If cbTestType.Text Then strSQL = strSQL + and TestType= + Trim(cbTestType.Text) + End If If cbTestDiff.Text Then strSQL = strSQL + and TestDiff= + Trim(cbTestDiff.Text) + End If If txtTestDot Then strSQL = strSQL + and TestDot= + Trim(txtTestDot) End If If cbTestDep.Text Then strSQL = strSQL + and TestDep= + Trim(cbTestDep.Text) + End If If rs.State = adStateOpen Then rs.Close End If rs.Open strSQL With drQuestion Set .DataSource = rs .Sections(RptHeader).Controls(lblTitle).Caption = Trim(txtLessonName) + -试题查找结果一览 .Show End WithEnd SubPrivate Sub Form_Load() Set cn = ConnectDatabase(App.Path + stk.mdb) Set rs = Se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论