软件测试教学网站建设白盒测试毕业论文.doc_第1页
软件测试教学网站建设白盒测试毕业论文.doc_第2页
软件测试教学网站建设白盒测试毕业论文.doc_第3页
软件测试教学网站建设白盒测试毕业论文.doc_第4页
软件测试教学网站建设白盒测试毕业论文.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

软件测试教学网站建设白盒测试毕业论文目 录摘要. 1ABSTRACT.2第一章 白盒测试的介绍1.1白盒测试简介31.2白盒测试特点41.3白盒测试的依据和流程41.3.1白盒测试的依据.41.3.2白盒测试的流程.4第二章 白盒测试的方法2.1白盒测试的方法介绍.62.2基本路径测试法.62.3逻辑覆盖.62.4循环测试.102.5逻辑覆盖法与路径测试重点方法的比较.11第三章 白盒测试工具3.1白盒测试工具概述.123.2白盒测试工具的介绍.12第四章 软件测试教学网站需求分析4.1用户需求分析.144.2可行性需求分析.144.3模块功能需求分析.14第五章 教学网站相关技术和工具介绍5.1 JSP简介.165.2 Hibernate介绍.165.3 Struts. 175.4Myeclipse简介.175.5MySQL介绍.18第六章 软件测试教学网站概要设计.19第七章 软件测试教学网站详细设计.24结论.30致谢.31参考文献.32摘 要这几年,计算机软件开发技术发展迅速,软件越来越普遍的应用到各个领域和方面,应用规模越来越大,应用模式也越来越复杂,从而使得与软件密切相关的软件测试越来越重要。而在此之中,白盒测试的作用不容忽视。白盒测试是一种重要的测试方法,测试基于软件的源代码,在已知产品的内部工作过程的情况下,往往是对软件内部逻辑结构进行相关测试,关注程序实现的细节。因此,白盒测试对软件有很强的针对性,这使得白盒测试效率很高,可以帮助人们清楚的了解覆盖程度。该方法主要应用于单元测试和集成测试阶段。这也显示出来白盒测试在软件测试重的地位非常高。我所研究的课题有一部分就是建设一个软件测试的教学网站。近年来,随着网络教学的发展,国际信息化教育也慢慢偏向网络化,而教学网站是其形式之一。在本次教学网站建设我采用java语言编写,技术方面使用JSP,MVC三层架构,数据库采用MySQL。希望该教学网站能为我校软件测试网络教学提供一份力量。关键词:白盒测试、测试方法、教学网站建设 ABSTRACTWith the rapid development of computer technology, software is more and more widely applied to various fields and aspects of, application model is becoming more and more complex, increasingly high demand on the quality of the software, which makes is closely related with the software of software testing is more and more important.And in this, the role of white box testing can not be ignored.White box testing is an important test method, test based on the source code of the software, in the internal work processes of products known, mainly launched the testing of the internal structure of the program, details of the procedures for the implementation of the concern.Therefore, the white box testing is very targeted, the testing efficiency is higher, can help people clearly understand the degree of coverage.The method is mainly used in the unit testing and the integrated testing phase.This shows the importance of white box testing in the software testing, and I have studied the part of the research is to build a software testing teaching website.In recent years, along with the development of the network teaching, the international information education is also slowly biased to the network, and the teaching website is one of its forms.In the teaching website construction I use java language, the technology use JSP, struts, hibernate, etc., the database uses MySQL.It is hoped that this teaching website can provide a power for the teaching of the software of our schoolKeywords: white box testing, teaching website construction第一章 白盒测试的介绍1.1白盒测试简介白盒测试是把测试对象看做一个打开的盒子,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,白盒测试是在不同的地方检查程序状况,根据检测结果判断软件测试结果是否和预想的一样。白盒测试是检测软件的代码和内部逻辑结构等,而并非是检查产品的功能,所以,它对测试者的要求非常高,必须是要了解程序结构和工作过程的人才能够测试。这也使得白盒测试在前期就可以检测到许多错误,间接的节约了软件开发的成本。1.2白盒测试特点白盒测试的优点:(1) 能够进行白盒测试的人必须是了解程序的人,这样可以让测试者更为深入的了解程序代码、结构;(2) 基路径和覆盖法可以查询出程序的路径和分支。(3) 尽早的发现程序的错误;(4) 可以比较彻底的测试程序。(5) 最优化白盒测试的缺点:(1) 对于没有实现规格说明书的程序是无法进行程序内部欠缺部分的测试。(2) 程序的外部特性无法检测出来(3) 昂贵;(4) 程序中还有个别路径检测不到,容易出现敏感性错误。(5) 不验证规格说明书的正确性。白盒测试所遵循的原则:(1) 找出程序中的独立路径,全部都要被执行一次。(2) 所有逻辑值均需要测试真和假两种情况(3) 为了保证程序的有效性,一般要检测其内部结构是否正常。(4) 遇到循环时,必须尽最大可能运行完所有循环白盒测试重点检测的地方:(1) 单元测试:代码检查、逻辑覆盖(2) 集成测试:增加静态结构分析、静态质量度量。(3) 系统测试:根据黑盒测试结果,采用白盒测试。1.3白盒测试的依据和流程1.3.1白盒测试的依据白盒测试的主要依据有以下几点:软件产品的需求报告、产品的需求规格说明书、设计文档、软件的界面、编码规范、开发命名标准、软件产品设计文档的相关规范。1.3.2白盒测试的流程白盒测试流程分为两种,一种是界面对象流程,一种是业务对象流程。 (1) 界面对象测试流程界面对象测试流程的示意图如下图所示:DB Server端数据管理对象业务对象界面对象界面对象的优点:测试者对流程一览无余,可以直接的把数据输入。界面操作的缺点:在某些测试中,要进行多次数据的输入。(2) 业务对象测试流程 业务对象测试图:界面对象业务对象数据管理对象DB Server端业务对象是从底层开始测试,最底层的车市完了之后,再向上逐一进行测试。业务对象的优点:进行回归测试时,不需要再输入数据,执行一遍测试程序即可。业务对象的缺点:需要给中间层编写一个测试小程序,即根据程序中类的对象构造输入数据及将结果输出到控制台上。第二章 白盒测试的方法2.1白盒测试方法介绍白盒测试的优点是帮助软件测试人员增大代码的覆盖率、提高代码质量、发现代码中隐藏的问题。白盒测试方法中运用最广泛的是基本路径测试法和逻辑覆盖法,循环测试,下面重点介绍这三种测试方法。2.2基本路径测试法程序的所有路径作为一个集合,在这些路径集合中必然存在一个最短路径,这个最短路径称为基路径或独立路径。基路径一般的测试方法是先画出控制流图,然后在其基础之上解析环路复杂性,判断确立基路径,最后设计测试用例。基本路径测试方法主要步骤:(1)用详细设计作为参考,通过分析画出程序的控制流图。(2)通过控制流图 G计算出其圈复杂性V(G)。(3)确定独立路径集合。(4)测试用例生成,确保基本路径集中每条路径的执行。控制流图的圈复杂度V(G)计算方法介绍。方法一:圈复杂度V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量。方法二:圈复杂度V(G)为控制流程图中的区域数。方法三:从控制流图转化为连接矩阵,若图中某行含两个或两个以上项,则此行为一个判定结点。2.3逻辑覆盖逻辑测试法又称控制流覆盖,它的测试用例是根据程序的内部逻辑和编码设计出来的,目的是要测试程序中的语句、判定(控制流能分解为不同路径的程序点)、条件(形成判定的原子谓词)等。下面介绍几种逻辑覆盖方法。例 2.3 用C+实现简单的数字运算代码:dim a, b as integerdim c as doubleif (a0 and b0) thenc=c/aend ifif(a1 or c1) thenc=c+1end ifc=b+ca0 and b0c=c/a Y Na1 or c1c=c+1 Y Nc=b+c 图2.3 程序流程图2.3.1 语句覆盖语句覆盖也叫线覆盖面。它的作用在于,用大量的测试数据对程序进行测试,要求程序中的每个路径都被一条或多条数据执行过。例2.3使用a=4,b=4,c=8,的测试用例,按照路径 执行,程序段中的5个语句均执行,符合语句覆盖。但是,测试用例如果选择a=4,b=-4,c=8,程序则按照路径执行,则未能达到语句覆盖。语句覆盖测试的方法一般都是对显式语句进行测试,对一些隐藏的条件由于检测不出来,故而无法测试。若将例2.3中第一个逻辑运算符and误写成or, a=4,b=4,c=8,这组测试用例依然不能达到语句覆盖的要求,这是因为语句覆盖不能发现程序中的逻辑错误,它只管进行每个路径的测试,至于处理源代码,不是它的功能范围。所以语句覆盖是覆盖语句中的最弱逻辑覆盖,它无法检测出程序的内部结构,无法分辨出代码里的一些逻辑错误,所以导致它的覆盖率很低。2.3.2判定覆盖判定覆盖又称分支覆盖,判定覆盖的基本思想是指设计大量的测试用例,让程序中的每个if和while都让“真”值运行一次,再用“假”值运行一次,让判定的所有取值均被满足通过一次。判定覆盖设计例2.3的测试用例如表2.3.2所示表2.3.2 例2.3的判定覆盖测试用例测试用例a0 and b0a1 or c1执行路径a=1,b=1,c=5TTa=1,b=-2,c=-3FFa=1,b=1,c=-3TFa=1,b=-2,c=3FT判定覆盖作为语句覆盖的超集,由此可见判定覆盖要比语句覆盖的覆盖路径多得多。这也说明了判定覆盖是比语句覆盖更全的覆盖,是比语句覆盖更强的测试方法。判定语句基本上都是由很多个逻辑组合而成,判定覆盖的判定只是判断软件的最终结果,它还无法全部发现每个判定内部的取值条件。所以,判定覆盖也不是能够覆盖全部的路径的。2.3.3条件覆盖条件覆盖是设计测试用例,它让每个条件判断的值最少都被满足一次 。测试用例覆盖条件具体取值条件执行路径a=2,b=1,c=2T1,F2,T3,F4a0,b1,c(3)(4)(5)a=-1,b=2,c=3F1,T2,F3,T4a0,a1(1)(3)(4)(5)表2.3.3 例2.3的条件覆盖测试用例条件覆盖比判定覆盖的覆盖范围更广,不但增加了测试路径,还覆盖了那些符合判定情况的测试。不过条件覆盖一般是不考虑其判定结果的,但它会让每个条件至少一次为真。2.3.4条件判定覆盖条件判定覆盖就是设计了许许多多的测试用例,通过这些测试用例,让这些判定条件中的所有条件都可以至少执行一次取值,而且所有判断的可能结果至少都会被执行一次。测试用例覆盖条件执行路径a=2,b=1,c=5T1,T2,T3,T4(1)(2)(3)(4)(5)a=-1,b=-2,c=-3F1,F2,F3,F4(1)(3)(5)表2.3.4 例2.3的条件判定覆盖测试用例条件判定覆盖是集判定、条件覆盖于一身的,它同时满足两种覆盖标准,具有两者的简单性却没有两者的缺点。表面上,条件判定覆盖测试了所有条件的取值,但事实并非如此,并没有覆盖所有的true和false取值的条件组合情况,有时候在条件取值错误的情况下也会遗漏某些条件。为彻底的检查所有条件的取值,条件组合覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则,大大的增加了测试用例的数量,即便是这样,也不能完全保证所有的路径都被测试过,仍有可能有部分路径被遗漏。2.3.5路径覆盖路径覆盖就是要选择足够多的测试用例,它的目的是要让程序中所有的路径全部都至少被执行一次。测试用例覆盖组合执行路径a=2,b=1,c=5编号1,编号512345a=1,b=1,c=3编号1,编号81235a=-1,b=2,c=3编号3,编号71345a=-1,b=-2,c=-3编号4,编号8135表2.3.6 例2.3的路径覆盖测试路径覆盖比前面几种逻辑覆盖方法覆盖率都大,但随着程序代码复杂度的增加,测试工作量将呈指数增长。2.4循环测试循环结构是程序设计中运用最多的基本结构,由循环体及循环控制条件两部分组成。下面介绍三种循环测试。a.简单循环1 b.简单循环2 c.串接循环 d.嵌套循环2.4.1简单循环简单循环如上图a ,图b所示,考虑循环次数的边界值和接近边界值的情况,要考虑下面几种测试用例,我们假定n是最大循环次数。(1)零次循环:从循环入口直接跳到循环出口(2)一次循环:只有一次通过循环,用于查找循环初始值方面的错误。(3)二次循环:两次通过循环,用于查找循环初始值方面的错误。(4)m次循环:m次通过循环,其中mn,用于检查在多次循环时才能暴露的错误。(5)比最大循环少一次:即n-1次循环。(6)最大循环次数:n次通过循环。2.4.2嵌套循环嵌套循环如图d所示。如果要将简单循环的测试方法用于嵌套循环,这样对就是一个几何倍的叠加,需要的测试数将成倍增加。2.4.3串接循环串接循环又名并列循环,如上图c所示, 可以简化为两个单个循环来分别处理。不过,要是把这两个循环互相串联起来,如果发现第一个循环的循环计数是第二个循环的初始值,这就表示两个循环并不是相互独立的。2.5逻辑覆盖法与路径测试重点方法的比较方法判定覆盖条件覆盖条件组合覆盖基路径测试优点简单、无需细分每个判定增加了对条件判定的测试对程序进行比较彻底的测试测试用例清晰有效缺点大部分语句是由多个逻辑条件组合而成,若仅仅判断其组合条件的结果,而忽略每个条件的取值情况,必然会遗漏部分测试场景达到条件覆盖,需要足够多的测试用例,但条件覆盖还是达不到完全覆盖,这是由于AND和OR不同的组合效果造成的对所有可能条件进行测试,需要设计很多测试用例。有点像分支的方法,不能覆盖一些特定的条件,这些条件往往是容易出错的地方第三章 白盒测试工具 3.1白盒测试工具概述白盒测试工具一般都应用在需要极高的可靠性行业,例如航天软件、军事、导弹软件等。白盒测试工具主要是指能够测试软件内部的源代码的工具,可以实现代码的静态分析、动态测评、审评等功能。根据测试工具的不同原理,我们可以将白盒测试工具分为静态和动态两种测试工具。静态测试工具又有以下几种类型:代码覆盖率分析器和代码测量器、一致性检查、接口分析和类型分析。 动态测试工具一般采用“插桩”的方式,插入一些监测代码,用来统计程序运行时的数据常用的白盒测试工具有以下几种。3.1.1FindBugsFindBugs是静态代码测试工具,它是用Apache BCEL 库分析对比class文件,FindBugs的检测器被分为不同的类型,现做以介绍: 正确性:这种归类下的问题在某种情况下会导致bug,比如错误的强制 类型转换等。 最佳实践反例:这种类别下的代码违反了公认的最佳实 践标准 多线程正确性:关注于同步和多线程问题。 性能:潜在的性能问题。 安全:安全相关。高危: 3.1.2BoundsChecker介绍BoundsChecker是美国康博公司生产的一款白盒测试工具,主要用来测试与内存相关的问题,在学习BoundsChecker的功能之前,有必要先了解一下内存管理的相关知识。BoundsChecker只能在windows平台上运行,不能跨平台;BoundsChecker只能测试C/C+和Delphi,不能测试其他语言。BoundsChecker能检测的错误如下:(1)指针操作和内存、资源泄漏错误。比如:内存泄漏;资源泄漏;对指 针变量的延误等。(2)内存操作方面的错误。(3)API函数的兼容性。检查常见API函数的兼容性,观察其在不同操作系统中的运行情况。3.1.3 JunitJunit只是针对Java代码的一种测试工具,一般用于单元测试。 使用Junit的好处:可以划分开测试代码和产品代码。针对某个类测试代码通过较少改动便可以应用于另个类的测试可以实施增量开发。Junit是开源的,可以再次修改。可以方便的对Junit进行扩展。Junit的使用步骤:(1) 创建(2) 书写测试方法,提供类似于如下函数签名的测试方法:public void test( )。(3) 编译(4) 运行第四章 软件测试教学网站需求分析4.1用户需求分析该教学网站的用户分为两种:学生和老师。4.1.1学生需求分析在软件测试教学网站中,学生可以凭账号登录,进行个人信息查询和修改。网站中的文件资料模块可供学生下载学习资料。网站新增在线考试模块,学生点击在线考试,系统会随机选择10道选择题和5道判断题组合成一套试卷供学生做答,学生答完题后可在成绩查询页面查询自己的考试成绩,能及时的检测出学生对这些内容的掌握程度。4.1.2老师需求分析老师就是管理员,权限相比于学生要大很多。首先,老师可以添加管理员,修改自己的信息,对学生信息进行增、删、改、查。在文件管理模块中,老师可以上传文件资料、修改资料名字、删除资料。在试题管理模块,老师可以自己手动编写试题并设置试题相关参数,试题分为两大类,老师在不同试题模块上操作,试题也将录入到不同的题库中。最后,老师可以查看所有学生成绩并且可以删除和修改。4.2可行性需求分析经济可行性上分析,软件测试网站建设是我的毕设题目,硬件方面只需要一台PC,资料方面可以从图书馆或者网络上借阅java、jsp、网站设计和MySQL等方面的书籍。 技术可行性上,该网站是一个B/S架构,它的主要功能是教学网站上题库的建设,可以让学生们在线答题、查询测试分数,上传并下载学习资料,帮助学生了解学习软件测试方面的知识。开发可行性,该教学网站是用Java语言开发,所用到的技术有hibernate、strcuts、jsp等。开发平台为windows系统 ,使用myeclipse开发工具,用MySQL数据作为后台。4.3模块功能需求分析教学网站共有4大功能模块,分别是用户信息管理模块,试题管理模块,文件资料上传下载模块,在线考试模块。 4.3.1用户信息管理模块在本模块中,老师可以对自己的信息进行添加、删除、修改、查看。老师做为管理员可以对所有的学生信息进行管理。普通用户只能查看修改自己的个人信息。4.3.2试题管理模块老师做为管理员将试题手动输入到数据库中并设置每道试题相应的参数(选项、分数、答案等),将试题录入后还可以对试题进行管理(删除、修改)。学生没有权限录入试题。4.3.3文件上传下载只有老师有权限上传资料,老师可对上传的资料进行删除、修改操作,学生只有下载资料的权限。4.3.4在线考试模块学生可以点击在线考试功能,系统会自动分配出十道选择题和五道判断题组成一套试题供同学作答,答题完成后点击提交,可立即在成绩查询页面看到自己的测试成绩。该模块只有学生有权限。 第五章 教学网站相关技术和工具介绍5.1 JSP简介JSP技术是一种跨平台的动态网页技术,在静态页面中嵌入了Java代码片段,再由web服务器中的jsp引擎来进行编译并执行嵌入的Java代码,生成页面信息返回给用户。5.1.1 JSP的特点JSP的优势:(1)系统的多平台支持:基本上可以在任意环境中开发,在任意环境中部署。(3)可伸缩性强。(4)多样的开发工具。(5)可以将代码和网页显示分离展示出来。(6)开发页面十分简化。JSP的弱势:(1)产品复杂性较高。(2)JSP运行是用class常驻内存来完成的,虽然提高了响应速度,但要占用相当多的内存。5.1.2 JSP工作原理当用户第一次访问某个JSP页面时,Servlet都会去编译它,然后这个JSP就一直驻留在内存里了。所以访问JSP时,第一次总会有一定的延时,之后就没有了。接着执行Scriptlet并产生相应的输出,然后Servlet把显示发送到客户端。5.2 Hibernate介绍Hibernate是一个基于Java的开源的持久化中间件,对JDBC做了轻量封装。采用ORM映射机制,把SQL语句传给数据库,并把数据库返回结果封装成对象。内部封装了JDBC访问数据库的操作,为上层提供数据库访问API。 Hibernate的核心接口一共有5个,这5个核心接口在任何开发中都会用到。5.2.1Hibernate的特点优点:(1)以对象的形式操作数据,提高开发效率,不用关心数据库种类(换数据库只要修改数据库配置文件)。(2)它使用时只需要操纵对象。 (3)是单线程对象并且生存期很短。(4)应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。(5)它没有入侵性,即所谓的轻量级框架。缺点:(1)Hibernate不适合大批量的处理数据。(2)针对单一对象简单的增删改查,适合于Hibernate,而对于批量的修改、不适用。5.2.2Hibernate使用步骤(1)创建Hibernate配置文件,存储和数据库连接的相关信息,放在classes下。(2)创建持久化类(数据bean并实现Serializable接口)注意:Serializable接口不是必需的,但是在分布式的系统中,不同的进程之间传输时需要实现这个接口。(3)创建对象-关系-映射文件(ORM Object Relational Map)。(4)编写使用Hibernate API访问数据库。5.3 StrutsStruts是一个基于Sun J2EE平台的MVC架构,主要采用servlet和jsp技术实现的,由于struts能充分满足应用开发的需求,简单易用,敏捷迅速,在这几年一直备受瞩目。Struts把servlet、自定义标签和信息资源整合到一块去了,极大的节省了开发人员的时间,提高了效率,所以说struts是一个非常不错的应用框架。Struts框架提供的服务如下:(1)作为servlet的控制器。(2)提供大量的标签库。(3)提供了用于国际化的框架,利用不同的配置文件,可以帮助用户选择合适自己的语言。(4)提供了JDBC的实现。(5)有XML语法分析器。(6)文件下载机制。5.4Myeclipse简介Myeclipse是一个企业级的应用开发平台,通过使用Myeclipse可以消除工程开销,节省了通常花在项目预热、同步和软件发布上的时间,极大的提高我们的工作效率。它集成了几乎所有的JAVAEE环境,包含了完整的编码、测试和发布功能,本次毕业设计使用的编译器就是Myeclipse。第六章 软件测试教学网站概要设计6.1任务概述6.1.1目标完成网上考试系统及试题库的建设,能将word等形式的白盒测试试题导入网站试题库,客观题自动进行评估。老师能对学生进行管理,上传文档资料,学生能下载资料,在线考试等。6.1.2用户类型主要服务与老师和学生。6.1.3软件及环境软件名称:软件测试教学网站所需技术:Java语言或JSP熟练掌握运行环境:Windows CPU主频1G及以上内存:1G及以上6.2总体设计6.2.1系统功能学生能够在线考试并自动打分。FTP的文件上传及下载功能:类似于普通ftp的文件上传和下载功能。用户输入用户名,密码,连接服务器并上传或下载用户指定的文件。6.2.2时间特性要求本系统的速度必须在用户可接受的范围内,但是考虑到自身服务器的参数,速度可能会比一般网站慢些。6.2.3可靠性系统要有较高的可靠性。6.2.4输入输出要求用户可以输入服务器IP进入网站,也可输入网址进入。登录统一规定输入账号和密码。考试时会随机显示10道选择题和5道填空题。用户可根据资料的名称来进行下载。6.2.5数据管理能力要求可以记录用户最近使用过的用户名试题、资料能够稳定有序的存储在网站中6.2.6其他专门要求因为本网站是大众使用的,所以界面简单清新,各种功能一览无余,方面人们使用。本系统具有较高稳定性。软件测试教学网站添加管理员6.3功能图添加学生添加修改试题删除修改学生信息试题自动评分成绩查询在线考试成绩修改上传下载文档个人信息修改6.4处理流程(1)学生流程图:学生注册输入信息登陆信息查询信息修改 密码错误在线考试 下载资料成绩查询(2)管理员流程图:登陆 密码错误 学生管理成绩管理试题管理管理员信息添加修改删除创建试题添加修改修改删除修改试题6.5类图设计 学生 - 用户名- 密码- 电话- 专业- 地址 考试 选择试题()考试()查看成绩() 1 1 n n 1 n 文件 上传() 下载() 试题 出题() 修改-1() 阅卷() 修改-2() 管理员 - 用户名- 密码 删除() 修改() n 1 1 n 6.6接口设计6.6.1用户接口在网站界面这个模块,根据用户需求,我们做出了一个清新舒适的页面,整个界面简单易懂,很容易让人掌握使用。在页面美化上使用Dreamweaver网页设计工具直接拖曳出美观、简介、友善的用户接口。其中针对教务管理人员的界面要做到操作简单,易于管理。菜单层数最多不能超过4层。同时,运行出错时应以标准形式给出出错提示。6.6.2外部接口服务器程序上使用mysql,以做到对数据的保存。在网络接口方面,使用一种无差错的传输协议。 6.6.3内部接口1.用户:用户名,密码。 系统:打开该网页,根据用户的选择上传或下载资源。2. 用户:用户可以在线考试 系统:检索用户的答案,显示用户分数3.管理员:可以录入试题3. 用户:输入需要统计信息的资源类型 系统:统计资源信息并显示。 6.7.3运行时间在网站的需求分析中,一旦用户做出操作系统需要有较快的反应执行能力,运行时间尽量缩减到最小。其次是服务器的性能,这将影响对数据库访问时间即操作时间的长短,影响加大客户机操作的等待时间。第七章 软件测试教学网站详细设计7.1需求概述完成网上考试系统及试题库的建设,能将word等形式的白盒测试试题导入网站试题库,客观题自动进行评估。老师能对学生进行管理,上传文档资料,学生能下载资料,在线考试等。7.2模块设计图软件测试教学网站用户登录管理学生系统管理员系统题库管理资料管理资料管理成绩管理考题建设学生管理信息修改考试下载资料在线考试题库建设资料下载资料上传7.3各模块功能详细介绍(1)学生模块a) 每个学生都会有自己的账号和密码。b) 学生可随时修改个人的密码。c) 学生可以在上面下载word文件资料。d) 可以在线考试并查看考试结果。(2)管理员模块a) 对学生进行管理。b) 可以添加管理员,对管理员信息进行查看。c) 能够创建试题,对试题进行修改。d) 能够查看学生成绩。(3)题库管理模块a) 增加试题。b) 查询试题。c) 修改试题。d) 删除试题。e) 试题分数。(4)在线考试a) 组卷,管理员进行试卷添加。b) 答题,没有时间限制,做完题点击提交。c) 系统自动评分,学生提交试卷后,系统即时进行在线判卷,当场给出学生所得分数。(5)资料上传及下载a) 只有管理员有权上传、删除资料。b) 学生和管理员都能下载资料7.4数据流程图数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。数据流程图具有以下两个特性:(1)抽象性:表现在它完全舍去了具体的物质,只剩下资料的流动、加工处理与存储。(2)概括性:表现在它可以把信息中的各种不同业务处理过程联系起来,形成一个整体。数据流程图由以下四种基本元素组成,既外部实体、数据流、处理(功能)、资料存储,如图所示。数据的原点和终点 数据处理 数据存储 数据流图7.4:数据流程图所用符号每个模块用数据流程图来表示数据的来源,以及数据之间的关系。系统细节图见下列图:7.4.1学生管理系统细节图学生注册 注册信息学生登录学生信息 登录信息 学生信息修改 修改信息7.4.2考试系统细节图成绩查询自动评分学生答题试卷7.4.3题库管理细节图添加试题试题信息查询试题 修改试题删除试题7.4.4教学资料系统细节图资料发布资料下载教学资料资料维护7.5随机抽题模块设计说明7.5.1程序描述随机抽题是随机不重复地抽取学生选择的考试科目的题号,并将题号保存到数组。随机抽题抽取选择题题号,共5题,组成一套试题供考试使用。7.5.2功能模块名称:用户登录设计者:刘欢输入部分I处理描述P输出部分O用户选择想要参加的考试科目得选择题数据库的最大题号,在这些题号中随机取数。判断抽取的随机数所对应的题目是否是学生选择的考试科目、是否不重复、是否已经大于等于5。满足3个条件的数保存到数组。环抽取,直到抽满5道题目的题号为止。处理过程:填空题和判断题也同样采用的方法抽取。随机抽出5道选择题,并输出一套试卷。7.5.3流程逻辑生成试卷流程图开始抽取选择题保存到数组结束随机抽题流程图7.6学生查分模块设计说明7.6.1程序描述学生查分功能实现的是显示考生的成绩,并可以显示是在什么时候参加的考试。7.6.2功能模块名称:考生查分设计者:刘欢输入部分I处理描述P输出部分O考生选择“查分”。系统获取考生的学号;在数据库中查找该学号下的成绩信息;处理过程:显示考生的成绩。7.7试题管理模块设计说明7.7.1程序描述试题管理功能主要有选择题的添加,删除,修改;选择题的分值的修改。该模块实现的功能主要是定义不同的窗体,操作数据库,实现数据的添加,删除,修改。修改题目时,将要修改的题目显示在窗口,以节省修改题目的时间,并且题号和分值不能在此窗口中修改。7.7.2功能模块名称:试题管理设计者:刘欢输入部分I处理描述P输出部分Ol 试题信息及内容。l 试题分值。系统将新输入的试题存储到数据库中;系统将旧的试题删除;系统将用户的部分试题内容修改并更新数据库。系统将试题的分值修改。处理过程:添加试题执行;删除试题执行;修改试题内容执行;修改分值执行。l 试题库得到了更新。7.7.3流程逻辑开始进入选择题库进行增、删、改、查保存数据保存数据修改分值结束8.系统数据结构设计8.1逻辑结构设计要点逻辑结构: 用户信息表列名数据类型可否为空说明IDInt(11)Not null用户ID(主键)NameVarchar(10) Not null姓名PasswordInt(10)Not null密码Major Varchar(15)Null专业Telephone Varchar(15)Null电话AddressVarchar(30)Null地址 试题表 列名数据类型可否为空说明IDInt(11)Not null试题ID(主键)TitleVarchar(200)Not null题目OptionVarchar(200)Not null选项KeyVarchar(10)Not null答案MarkVarchar(10)Not null分数8.2物理结构设计用户信息:存放于数据库中。试题:是由管理员生成(自定义)长度为200管理员:具有一定权限的管理人员表中存储的是审核人的编码长度为30数量:试题、用户或是其他的数量类型为

温馨提示

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

最新文档

评论

0/150

提交评论