在線測試設(shè)計_第1頁
在線測試設(shè)計_第2頁
在線測試設(shè)計_第3頁
在線測試設(shè)計_第4頁
在線測試設(shè)計_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

頁緒論研究背景及意義以在線教育系統(tǒng)和在線考試系統(tǒng)為主要內(nèi)容的教學管理系統(tǒng)作為一種新的教學方式已經(jīng)開始進入各大高校,對教育的發(fā)展形成新的推動力。到目前為止,全國主要高校的校園網(wǎng)絡都完成了初步的鋪設(shè)工作,學生隨時可以在校園、教室、寢室等地訪問校園網(wǎng)。相對于傳統(tǒng)教學模式的限制,網(wǎng)絡教學順應了個性化教學的發(fā)展,不再像傳統(tǒng)教學那樣受時間與空間的限制,同時網(wǎng)絡教學可以使得教學資源得到更大的共享,極大的降低了教育的成本,體現(xiàn)了教育的大眾化、終身化、多樣化和國際化的最終目的。教學管理是學校管理的核心內(nèi)容,隨著高校規(guī)模的擴大,學生人數(shù)的增多,課程的增設(shè),其復雜性和綜合性要求現(xiàn)代化的管理手段比較高,而我國一些高校對教學管理仍然沿用原始的機制,極大的浪費了人力物力。在信息化時代的今天,這種傳統(tǒng)的管理方法已經(jīng)被以計算機為基礎(chǔ)的信息管理系統(tǒng)所取代[1]。是的,比如都做過學生的我們來講,考試這個事情一定都不會陌生,而考試與考卷總是同行的,考卷又和評分不可分離,而與以往不同的是在互聯(lián)網(wǎng)軟件技術(shù)發(fā)達的今天,我們可以采取一種全新的、即時的、便捷的、高效的在線考試平臺來替代傳統(tǒng)的、紙質(zhì)的、手動批改的線下考試。對于以往的考試來說,從古至今都是采用紙質(zhì)試卷,筆墨作答的方式來給出我們的答案,老師作為出題者,將題交由印刷者印刷出試題卷,再分發(fā)給考生,考生做答完試卷,交由老師手動批改,核算得分,這一流程中,老師作為出卷人需要花費大量時間等待試卷印刷完成,考試完后需要花費大量時間修改試卷核算分數(shù),所以會造成大量寶貴的教學時間、休息時間和教學資源上的浪費、效率的降低,但是在互聯(lián)網(wǎng)技術(shù)如此發(fā)達的今天,我們不再僅限于紙質(zhì)的試題卷上了,我們可以采取一種線上的考試系統(tǒng)來完成這一過程。線上考試的靈活性更高,組織效率更高,老師不再手動改評試卷,而由軟件系統(tǒng)來自動測評試卷完成評分,從而節(jié)約很多的教育教學資源和大量的時間,不僅如此,在線考試系統(tǒng)更加輕松更加公平,能夠更快的完成考試這一環(huán)節(jié)的工作,降低考試帶來的環(huán)節(jié)復雜性,改善考試管理、學習水平、技能水平的要求。國內(nèi)外研究現(xiàn)狀國內(nèi)從上世紀90年代起,就開始逐步向有權(quán)威性的考試部門推行計算機在線考試的方式,但當時幾乎很難被社會認可。從上世紀末期,國內(nèi)許多全國范圍性的考試便已開始使用計算機來組織。從1994年開始的計算機軟件水平等級專業(yè)技術(shù)考試開始,到1996年起執(zhí)行的全國性非計算機專業(yè)等級考試等[2],到現(xiàn)在國內(nèi)的在線考試平臺多入牛毛,都標志著線上考試的逐步普及和使用常態(tài)化。國內(nèi)的比如考試酷、優(yōu)考試等在線考試網(wǎng)站都是被普遍使用的在線考試系統(tǒng),其中優(yōu)考試在技術(shù)上更加領(lǐng)先應用更廣,它結(jié)合了大數(shù)據(jù)的分析,廣泛用于員工培訓考核、競賽、??季毩?、認證考試等多種考試場景。優(yōu)考試采用基于B/S的系統(tǒng)架構(gòu),基于最新的多并發(fā)高性能的GO語言編寫,采用Mysql數(shù)據(jù)庫,可部署于Windows、Linux、Unix、Mac等各種操作系統(tǒng),可以在任意平臺諸如iPhone、Android、PC、iPad等設(shè)備上以相同的優(yōu)異體驗進行學習考試,滿足從簡單到復雜的各種環(huán)境下的測評、考試、學習等任務。從目前來看,線上考試更加趨于公平和公正,高效且客觀,因此國內(nèi)很多大型考試也在采用這種模式在推進考試事業(yè)的發(fā)展,比如CET4、CET6采用的就是建立題庫,然后計算機隨機抽題出卷,這種方式較為科學客觀。國外的互聯(lián)網(wǎng)技術(shù)發(fā)展狀況相比國內(nèi)更加靠前,在教育方面,國外的大學和社會部門都在實現(xiàn)通過網(wǎng)絡實現(xiàn)遠程教育,美國、日本、加拿大、英國等在該領(lǐng)域的發(fā)展較早,其發(fā)展模式也較為成熟,同時也受到了大量國家的借鑒。從1995年底,國外便開始出現(xiàn)了支持網(wǎng)上在線教學的系統(tǒng)和平臺。例如美國的NTU、英國的OPCollege等都是當時十分典型的網(wǎng)絡教育先驅(qū)示范點。此外,美國的ATA開創(chuàng)了一個以考試為核心的新型智能在線發(fā)展模式。該考試模式開創(chuàng)了計算機信息考試的里程,在該系統(tǒng)里集成了考試題型管理、試題加載管理、數(shù)字化考務管理、智能閱卷管理、成績統(tǒng)計分析管理等多項功能,實現(xiàn)了先進的計算機自動化考試管理模式,率先推行了先進的考試技術(shù)平臺[2],就比如大家熟知的“ACCA”(國際注冊會計師)就是采用的在線機考的方式來進行的。2012年“TOBEFL”(托福)這個被中國學子熟知的出國考試流程也改為了“IBT”網(wǎng)上考試。由此可見在線考試在很多年前已經(jīng)成為了一種趨勢,時至今日這種趨勢已經(jīng)不再叫趨勢,應該叫新的考試方式、教育考試中的一種基本模式了。且近年來,軟件開發(fā)的核心在往大數(shù)據(jù)方向發(fā)展,結(jié)合大數(shù)據(jù)技術(shù)、多線程、高并發(fā)技術(shù)來發(fā)展教育考試系統(tǒng)是當前需要發(fā)展的方向,以此提高數(shù)據(jù)處理和同時在線訪問數(shù)。論文研究特色選題很有意義,綜合分析成都工業(yè)學院的教學進程、教學特點,并設(shè)計實現(xiàn)一種貼合這些特點的在線測試系統(tǒng),很有意義。且系統(tǒng)本身采用B/S架構(gòu),這種架構(gòu)模式可以很好的去解決傳統(tǒng)紙質(zhì)考試的一些局限性。研究內(nèi)容系統(tǒng)的總體架構(gòu)課程在線測試平臺的基礎(chǔ)開發(fā)框架采用Spring、SpringMVC、Mybatis有機結(jié)合作為系統(tǒng)的大框架以及基礎(chǔ)框架(下文簡稱為SSM框架)。以SSM框架為一個基礎(chǔ)的模板,在構(gòu)建程序的時候就只需要將注意力放在業(yè)務代碼的實現(xiàn)上,幫助提高開發(fā)效率。系統(tǒng)架構(gòu)采用B/S模式,即(Browser/Server)的架構(gòu)模式實現(xiàn)頁面的展示和數(shù)據(jù)的傳輸。相關(guān)技術(shù)介紹B/S架構(gòu)B/S架構(gòu)是Browser/Server的簡稱。它的工作原理是通過瀏覽器Browser的解釋將頁面放置于前端進行展示,事務邏輯交給服務器Server來進行處理,只需要安裝有瀏覽器,用戶就能隨時隨地的訪問服務器的數(shù)據(jù),然后使用HTML文檔技術(shù)將數(shù)據(jù)結(jié)合頁面放在Browser進行展示,這樣可以將各種數(shù)據(jù)機制聯(lián)合起來。首先用戶于頁面進行動作發(fā)送服務請求,請求到達服務器,服務器啟動服務調(diào)用適當?shù)臉I(yè)務控制器訪問數(shù)據(jù)庫,再將數(shù)據(jù)結(jié)合頁面反饋給瀏覽器,生成響應頁面,完成整個服務過程。這種架構(gòu)對于Java這種跨平臺的語言而言,可以更好的管理軟件系統(tǒng),而且對于更新較多的系統(tǒng)而言,可以更加便捷,易于升級和維護。不僅如此,對于用戶的UI展示,可以做到更加的豐富和更強的交互性。SpringSpring意為“春”,它不僅給程序員帶來春天,還給程序系統(tǒng)帶來了春天。它是為了降低企業(yè)級開發(fā)的難度與復雜度誕生的一種開源輕量級框架,是一款軟件半成品。它的主要作用就是實現(xiàn)系統(tǒng)各種層級間的分離,將各個層級進行模塊化的劃分,使得在開發(fā)系統(tǒng)的時候能夠像搭積木一般將各個模塊進行結(jié)合。Spring框架主要有兩個核心,控制反轉(zhuǎn)IoC、面向切面編程(AOP),它像一個大管家一樣管理著整個程序,降低對象和各個組件之間的耦合性。IoC是將創(chuàng)建對象的控制權(quán)反轉(zhuǎn)給Spring,可以更好的管理對象的生命周期,所以說Spring是一個大管家。AOP可以進行事務的集中處理,將重復的代碼進行提煉,然后織入到各個切面的切點中,完成代碼的邏輯增強。Spring也是整合其他框架的整合組件,可以將SpringMVC和Mybatis串聯(lián)起來。Spring的特點有:(1)輕量級:輕量級是針對重量級容器(EJB)來說的,Spring的核心包就不到1M大小,而使用Spring的核心包所需的資源也很小,所以可以在小型設(shè)備中使用。(2)非入侵式:Spring目標是一個非入侵式的服務框架。原因是所有框架都是提供大量的功能供用戶去使用,從而簡化開發(fā)時間和成本,但由于大量的使用了框架的API,使應用程序和框架發(fā)生了大量的依賴性,無法從框架中獨立出來,更加無法使程序組件在其他程序中使用。(3)容器:Spring提供了容器功能,容器可以管理對象的生命周期、對象與對象間的關(guān)系、我們可以通過編寫XML來設(shè)置對象關(guān)系和初始值,這樣容器在啟動之后,所有的對象都直接可以使用,不用編寫任何編碼來產(chǎn)生對象。Spring有兩種不同的容器:Bean工廠以及應用上下文。Spring部分核心jar包及其作用介紹:(1)SpringAOP:Spring的面向切面編程,提供AOP(面向切面編程)的實現(xiàn)。(2)SpringAspects:Spring提供的對AspectJ框架的整合。(3)SpringBeans:SpringIOC的基礎(chǔ)實現(xiàn),包含訪問配置文件。創(chuàng)建和管理bean等,所有應用都能用到。(4)SpringContext:在基礎(chǔ)IOC功能上提供擴展服務,此外還提供許多企業(yè)級服務的支持。有郵件服務、任務調(diào)度。JNDI定位,EJB集成、遠程訪問、緩存以及多種規(guī)圖層框架的支持。(5)SpringCore:Spring的核心工具包,其他包依賴此包。(6)Springexpression:Spring表達式語言。(7)SpringJDBC:對JDBC的簡單封裝。SpringMVCSpringMVC是一種基于Spring實現(xiàn)了WebMVC設(shè)計模式的請求驅(qū)動類型的輕量級Web框架,使用了MVC的架構(gòu)模式思想,將Web層進行解耦,并管理應用所需的生命周期,為簡化日常開發(fā),提供了很大便利。SpringMVC提供了總開關(guān)DispatcherServlet,請求處理映射器(HandlerMapping)和處理適配器(HandlerAdapter),視圖解析器(ViewResolver)進行視圖管理,動作處理器Controller接口(包含ModelAndView,以及處理請求響應對象請求和響應),配置靈活,支持文件上傳,數(shù)據(jù)簡單轉(zhuǎn)化等強大功能。它的工作原理是首先請求到達核心控制器dispatcherServlet,dispatcherServlet會判斷請求后綴是否滿足格式要求,如果滿足格式要求,會查詢handlerMapping,查找對應的handler,調(diào)用handlerAdapter進行參數(shù)綁定等適配工作,之后調(diào)用具體的handler進行業(yè)務邏輯處理,返回一個ModelAndView對象給dispatcherServlet,dispatcherServlet調(diào)用viewResolver進行視圖解析渲染,然后返回給客戶端。MybatisMybatis是一個支持普通sql查詢,存儲過程和高級映射的優(yōu)秀持久層框架。Mybatis消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及對結(jié)果集的檢索封裝,Mybatis可以使用簡單的xml或注解用于配置原始映射,將接口和Java的POJO(PlainOldJavaObjects,普通的Java對象)映射成數(shù)據(jù)庫中的記錄。它的工作原理是先通過xml解析、反射,最后通過動態(tài)代理機制來生成mapper接口的實現(xiàn)類對象,xml文件中namespace的值就等于mapper接口的類路徑、sql標簽的id值就等于mapper接口的方法名。例如一個插入語句:<insertid=“isAddClass”parameterType=“com.online.exam.po.ClassInfo”>INSERTINTOClassInfoVALUES(NULL,#{className},#{grade.gradeId},#{teacher.teacherId})</insert>這里id屬性的值就代表了DAO層接口中定義的CRUD方法名,parameterType代表參數(shù)類型,insert語句放在標簽<insert>內(nèi)部這樣一種xml文件定義的標簽格式。AjaxAjax是AsynchronousJavaScriptandXML的簡稱,意為異步javascript和xml,是一種與服務器交換數(shù)據(jù)并更新部分網(wǎng)頁的技術(shù),也是一種藝術(shù),不用重新加載整個頁面。在原生javascriptajax的基礎(chǔ)上,在前臺頁面中嵌入JqueryAjax技術(shù),更加減少了代碼量,一般在頁面結(jié)合動作事件來觸發(fā),達到一個動態(tài)刷新頁面的效果。很簡單的一個運用例子,在進行網(wǎng)頁登錄的時候需要驗證賬號密碼,當用戶填寫完成賬號和密碼之后,會進行點擊登錄按鈕的操作,那么在登錄按鈕上綁定一個單擊事件,然后通過這個事件去觸發(fā)一個ajax請求,將賬號或密碼往后臺進行發(fā)送,后臺業(yè)務處理機制接收到此參數(shù),進行業(yè)務邏輯處理,然后進行數(shù)據(jù)庫訪問,到數(shù)據(jù)庫中做一個查詢動作,然后返回結(jié)果給ajax,然后在ajax回調(diào)函數(shù)中進行結(jié)果接收,以此返回給用戶,如果沒有找到此賬號相關(guān)的信息,就提示賬號不存在來完成賬號的驗證過程。系統(tǒng)分析可行性分析技術(shù)可行性分析利用現(xiàn)有的軟件開發(fā)技術(shù),可以構(gòu)建出系統(tǒng)的基礎(chǔ)架構(gòu),并進行業(yè)務邏輯的實現(xiàn)??梢栽谝欢ǖ钠谙迌?nèi)完成整個系統(tǒng)的構(gòu)建與實現(xiàn),所以在本文研究范疇內(nèi)系統(tǒng)的實現(xiàn)是具有技術(shù)可行性的。操作可行性分析系統(tǒng)開發(fā)中包含大量的交互動作,通過用戶的操作進行系統(tǒng)的業(yè)務流程周轉(zhuǎn),并和用戶進行交互,在操作上是可以給與用戶反饋的,具有高度可操作性。經(jīng)濟可行性分析擬采用的技術(shù),從經(jīng)濟角度分析,成本是在一定的小范圍內(nèi)并且可估的,因為現(xiàn)有的技術(shù)在網(wǎng)絡或書籍中有大量的介紹,相似的簡單系統(tǒng)中實現(xiàn)起來成本是可估可控的,在本文研究范疇內(nèi)系統(tǒng)的實現(xiàn)是具有經(jīng)濟可行性的。需求分析功能需求分析1.學生:(1)學生登錄:通過賬號,密碼進行系統(tǒng)的登錄;(2)參與考試:學生登錄系統(tǒng)以后可以參加需要完成的考試;(3)查詢歷史考試情況:學生登錄系統(tǒng)后可以查看歷史考試情況以及對歷史考試題目的回顧;2.教師:(1)查看基本信息:查看包括班級信息及學生基本信息;(2)試題管理:對試題進行添加、刪除、修改、查詢以及分類;(3)試卷管理:包括對試卷添加、刪除、修改、查詢,以及對試卷題目的添加修改;(4)考試安排:查詢待考信息以及添加和刪除考試安排;(5)以往考試查詢:查詢以往的考試信息;3.管理員:(1)教師的基本功能:管理員的權(quán)限是在教師基礎(chǔ)上添加了與系統(tǒng)管理有關(guān)的權(quán)限,管理員本身也可以擔任老師;(2)班級管理:對班級進行添加、刪除、修改、查詢及老師分配等;(3)教師管理:對老師信息的查詢、修改、刪除、查詢等;(4)基本信息管理:對年級的管理和對科目的管理,分別包括查詢、修改、刪除、查詢操作;根據(jù)系統(tǒng)功能分析,將整個系統(tǒng)的功能模塊規(guī)劃為如下的功能模塊圖:用例分析(1)學生用例:(2)教師用例:(3)管理員用例:系統(tǒng)設(shè)計總體設(shè)計課程在線測試平臺主要采用B/S架構(gòu),在頁面方面主要引用Bootstrap前端框架進行頁面上的展示,SSM框架為后臺基礎(chǔ)框架進行開發(fā),采用MVC的模式,在頁面中觸發(fā)請求到達控制器,控制器進行業(yè)務邏輯處理,將數(shù)據(jù)反饋給頁面,整個邏輯較為清晰。前端UI展示方面,主要還是以JSP頁面為基礎(chǔ),結(jié)合Bootstrap框架進行前端展示,調(diào)用JavaScript代碼進行一些前臺的業(yè)務處理和動態(tài)交互,CSS代碼進行部分頁面效果調(diào)整,Jquery庫文件進行元素操作。后臺主要使用MVC設(shè)計模式和SSM框架進行業(yè)務處理、數(shù)據(jù)訪問和視圖渲染。根據(jù)設(shè)計好的數(shù)據(jù)表通過逆向工程生成實體類,業(yè)務處理接口和Mapper文件,很大程度上減輕開發(fā)的難度。概要設(shè)計課程在線測試平臺采用的架構(gòu)是B/S模式,使用Java語言開發(fā),所以在部署上可以采用Linux系統(tǒng)等多種系統(tǒng)進行部署,且工程整體占用的空間不大,對系統(tǒng)本身的性能要求不高,服務器只需具備必要的環(huán)境,如JDK、JRE、Tomcat服務器、Mysql數(shù)據(jù)庫等必要的工具即可。外部直接訪問服務器提供給用戶的接口便可以進行數(shù)據(jù)訪問和資源訪問,用戶可自行進行交互,而交互的結(jié)果是對數(shù)據(jù)的改變,并且最終由頁面進行呈現(xiàn)。系統(tǒng)最終劃分成兩個獨立的端系統(tǒng),前臺學生端系統(tǒng)和后臺教師管理系統(tǒng)。前臺學生端系統(tǒng)主要用于開放學生登錄和教師登錄的用戶接口,學生的考試中心和考試歷史查看;后臺教師端管理系統(tǒng)主要用于對基礎(chǔ)信息的管理、學生的管理、試卷的管理、試題的管理、考試安排管理等。詳細設(shè)計表4-1學生端功能表模塊名稱功能簡述學生登錄學生輸入個人賬號和密碼進行登錄,進入學生端主頁考試中心參加安排好的考試考試記錄查看已參加的考試歷史,成績試卷等表4-2教師端功能表模塊名稱功能簡述教師登錄教師使用賬號進行登錄年級管理管理員對班級信息的CRUD,普通教師查看班級信息科目管理管理員對科目信息的CRUD,普通教師查看科目信息班級管理管理員對班級信息的CRUD,普通教師查看班級信息教師管理管理員對教師信息的CURD,教師查看教師信息但只能修改本人信息學生管理管理員對學生信息的CRUD,教師對學生信息的修改刪除試卷管理管理員對試卷信息的CRUD,試卷的題目編輯,教師對對試卷信息的CRUD,試卷的題目編輯試題管理管理員對試題信息的CRUD,教師對試題信息的CRUD考試安排管理管理員對代考信息的CRUD,教師對代考信息的CRUD以往考試信息管理員對考試記錄信息的CRUD,教師對考試記錄信息的CRUD數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫選擇數(shù)據(jù)庫選用MySQL數(shù)據(jù)庫作為開發(fā)的基礎(chǔ)數(shù)據(jù)庫。MySQL數(shù)據(jù)庫是目前在企業(yè)級中小型項目開發(fā)所用到主流輕量級關(guān)系型數(shù)據(jù)庫,采用結(jié)構(gòu)化查詢語言。MySQL數(shù)據(jù)庫現(xiàn)屬Oracle公司管理,具有體積小,速度快的優(yōu)點,且開源免費,對比Oracle公司的另一款Oracle數(shù)據(jù)庫的話,Oracle相比MySQL主要用于重量級的開發(fā)。MySQL數(shù)據(jù)庫還支持事務管理,事務處理可以維護數(shù)據(jù)庫的完整性,保證成批的SQL語句要么全部執(zhí)行,要么全部不執(zhí)行。MySQL支持SQL的GROUPBY和ORDERBY子句,支持聚合函數(shù),支持多種開發(fā)語言,符合在線測試平臺的數(shù)據(jù)操作要求,所以選用MySQL作為基礎(chǔ)數(shù)據(jù)庫。數(shù)據(jù)表設(shè)計首先,信息世界中包含的基本概念有兩個,實體和聯(lián)系。(1)實體(entity)客觀存在并可相互區(qū)別的事物稱為實體。實體可以是具體的人、事、物,也可以是抽象的概念或聯(lián)系。例如:一個學生、一門課、一個供應商、一個部門、一本書、一位讀者等都是實體。(2)聯(lián)系(relationship)在現(xiàn)實世界中,事物內(nèi)部以及事物之間是有聯(lián)系的,這些聯(lián)系在信息世界中反映為實體內(nèi)部的聯(lián)系和實體之間的聯(lián)系。實體內(nèi)部的聯(lián)系通常是組成實體的各屬性之間的聯(lián)系。兩個實體型之間的聯(lián)系可以分為3類,一對一聯(lián)系(1:1);一對多聯(lián)系(1:n);多對多聯(lián)系(m:n)。概念模型是對信息世界建模,所以概念模型應該能夠方便、準確地表示信息世界中的常用概念。概念模型的表示方法很多,其中最為常用的是實體-聯(lián)系(Entity-RelationshipApproach)方法簡記為E-R表示法。該方法用E-R圖來描述現(xiàn)實世界的概念模型,稱為實體-聯(lián)系模型,簡稱E-R模型。根據(jù)數(shù)據(jù)流程分析,課程在線測試系統(tǒng)的全局E-R模型如圖所示。根據(jù)設(shè)計規(guī)劃的主要實體有:教師/管理員、學生、班級、試題、科目、試卷、考試。各個實體,根據(jù)實體信息,數(shù)據(jù)庫表的設(shè)計主要由班級信息表classinfo,課程信息表courseinfo,考生答案表examchooseinfo,考試記錄表examhistoryinfo,試卷信息表exampaperinfo,考試安排表examplaninfo,試卷題目信息中間表examsubjectmiddleinfo,年級信息表gradeinfo,學生表studentinfo,題目信息表subjectinfo,教師信息表teacherinfo構(gòu)成。班級信息表classinfo主要存儲班班級id、級名、年級id、教師id等信息。課程信息表courseinfo主要存儲課程id、課程名、年級id等信息。考生答案表examchooseinfo主要存儲答案id、考生id、試卷id、課程id、答案等信息。考試記錄表examhistoryinfo主要存儲考試記錄id、考生id、試卷id、得分等信息。試卷信息表exampaperinfo存儲試卷名、題目數(shù)、考試計時、總分、適用年級等信息??荚嚢才疟韊xamplaninfo主要存儲安排id、學科id、班級id、試卷id、考試時間等信息。試卷題目信息中間表examsubjectmiddleinfo主要存儲試卷id和包含的題目id信息,年級信息表gradeinfo主要存儲年級id年級名稱等信息。學生表studentinfo主要存儲學生id、學生姓名的信息,題目信息表subjectinfo主要存儲題目的id、答案、分數(shù)、試題類型、難度等一些信息。教師信息表teacherinfo主要存儲教師id、教師姓名等信息。表4-3班級信息表classinfo字段類型長度是/否可以為null注釋classIdint11否班級id主鍵classNamevarchar50否班級名稱gradeIdint11否年級idteacherIdint11是教師id表4-4課程信息表courseinfo字段類型長度是/否可以為null注釋courseIdint11否課程id主鍵courseNamevarchar50否課程名gradeIdint11是年級id表4-5考生答案表examchooseinfo字段類型長度是/否可以為null注釋chooseIdint11否答案id主鍵studentIdint11否學生idexamPaperIdint11否試卷idsubjectIdint11否題目idchooseResultvarchar500否答案表4-6考試記錄表examhistoryinfo字段類型長度是/否可以為null注釋historyIdint11否記錄id主鍵studentIdint11否學生idexamPaperIdint11否試卷idexamScoreint11是得分表4-7試卷信息表exampaperinfo字段類型長度是/否可以為null注釋examPaperIdint11否試卷id主鍵examPaperNamevarchar50否試卷名subjectNumint11否題目數(shù)量examPaperTimeint11否試卷作答時間examPaperScoreint11否總分gradeIdint11否年級idexamPaperEasyint11是難度表4-8考試安排表examplaninfo字段類型長度是/否可以為null注釋examPlanIdint11否考試安排id主鍵courseIdint11否課程idclassIdint11否年級idexamPaperIdint11否試卷idbeginTimedatetime0否開始時間表4-9試卷題目信息中間表examsubjectmiddleinfo字段類型長度是/否可以為null注釋esmIdint11否考試安排id主鍵examPaperIdint11否試卷idsubjectIdint11否題目id表4-10年級信息表gradeinfo字段類型長度是/否可以為null注釋gradeIdint11否年級id主鍵gradeNamevarchar50否年級名稱表4-11學生表studentinfo字段類型長度是/否可以為null注釋studentIdint11否學生id主鍵studentNamevarchar32否學生姓名studentAccountvarchar64否學生登錄賬號studentPwdvarchar32否學生登錄密碼classIdint11否班級id表4-12題目信息表subjectinfo字段類型長度是/否可以為null注釋subjectIdint11否題目id主鍵subjectNamevarchar500否題目題干optionAvarchar500否選項AoptionBvarchar500否選項BoptionCvarchar500否選項CoptionDvarchar500否選項DrightResultvarchar500否正確答案subjectScoreint11否題目分數(shù)subjectTypeint11是題目類型courseIdint11否課程idgradeIdint11否年級idsubjectEasyint11是題目難度表4-13教師信息表teacherinfo字段類型長度是/否可以為null注釋teacherIdint11否教師id主鍵teacherNamevarchar10是教師姓名teacherAccountvarchar10是教師登錄賬號teacherPwdvarchar10是教師登錄密碼系統(tǒng)實現(xiàn)功能實現(xiàn)首頁首頁模塊如下圖所示,也是學生登錄后的主頁面,左上角的考試中心及考試歷史,只有學生登錄后方可以使用。學生登錄如下圖為學生登錄時的彈框,分別有前端js與后端java對表單進行驗證,學生通過輸入正確的賬號信息與密碼方可進入考試系統(tǒng)。表5-1學生登錄核心代碼@RequestMapping(value="/studentLogin",method=RequestMethod.POST)

publicModelAndViewstudentLogin(StudentInfostudent,HttpServletRequestrequest){

ModelAndViewmodel=newModelAndView();

StudentInfologinStudent=studentInfoService.getStudentByAccountAndPwd(student.getStudentAccount());

("學生"+loginStudent+"有效登錄");

if(loginStudent==null||!student.getStudentPwd().equals(loginStudent.getStudentPwd())){

model.setViewName("reception/suc");

model.addObject("success","密碼錯誤");

returnmodel;

}

request.getSession().setAttribute("loginStudent",loginStudent);

model.setViewName("reception/suc");

model.addObject("success","登錄成功");

returnmodel;

}教師登錄如下圖所示,為老師的登錄界面,分別有前端js與后端java對表單進行驗證,教師通過輸入正確的賬號和密碼才能登陸教師后臺界面。部分核心代碼:表5-2教師登錄部分核心代碼/***教師登錄

*@paramteacherAccount

*@paramrequest

*@return

*/

@RequestMapping(value="/teacherlogin",method=RequestMethod.POST)

publicStringteacherLogin(@RequestParam("teacherAccount")StringteacherAccount,HttpServletRequestrequest){

if(teacherAccount==null||"".equals(teacherAccount)){

logger.error("教師賬號為空");

request.setAttribute("error","登錄信息有誤");

return"/error";

}

("教師"+teacherAccount+"登錄");

//獲取當前登錄教師

TeacherInfoteacherInfo=teacherInfoService.getTeacherByAccount(teacherAccount);

if(teacherInfo==null){

logger.error("教師賬號為空");

request.setAttribute("error","賬號不存在!");

return"/error";

}

StringteacherPwd=request.getParameter("teacherPwd");

if(!teacherInfo.getTeacherPwd().equals(teacherPwd)){

logger.error("密碼錯誤");

request.setAttribute("error","密碼錯誤!");

return"/error";

}

//將當前登錄教師后臺權(quán)限存入Session

request.getSession().setAttribute("adminPower",teacherInfo.getAdminPower());

request.getSession().setAttribute("loginTeacher",teacherInfo);

return"redirect:admin/index.jsp";

}教師端基本信息(1)年級管理此處以基本信息作為例子簡述實現(xiàn)思路,基本信息模塊有年級管理和科目管理,年級管理主要是查看年級的信息,對gradeinfo表做CRUD操作,包含年級編號。主要的實現(xiàn)思路是,在頁面中單擊年級管理的連接發(fā)送請求,請求到達后臺控制器GradeInfoController映射到對應請求地址“/grades”,進行業(yè)務處理調(diào)用相應的service方法,通過dao層訪問數(shù)據(jù)庫獲取到數(shù)據(jù),然后定義ModelAndView對象添加屬性并設(shè)置返回的視圖,最后返回ModelAndView對象,由此對象將數(shù)據(jù)帶入頁面進行遍歷展示,科目管理、班級管理模塊、教師管理模塊主要也是查看科目信息和教師信息,實現(xiàn)方式同年級管理的實現(xiàn)思路。下圖為年級管理,對于普通老師來說只能看到列表而不能看到相應的操作選項,也就是操作后的“添加”,以及每行信息后面的修改和刪除;當具有管理員權(quán)限的老師(以下簡稱管理員)進行操作是添加、刪除、編輯。本系統(tǒng)中其它一些頁面也會使用類似的方法,同一前端頁面會根據(jù)用戶權(quán)限顯示也稍有區(qū)別,以此來減少前端代碼的冗余。下圖為以管理員身份登錄并添加年級時的頁面,只需要正確的輸入年級名稱點擊提交即可完成年級的添加。部分核心代碼:表5-3年級管理部分核心代碼@RequestMapping(value="/grade",method=RequestMethod.)StringisAddGrade(GradeInfograde,HttpServletRequestrequest){("添加年級"+grade);if(grade==null){logger.error("年級"+grade+"為空");request.setAttribute("error","年級添加失敗,請稍后再試!");"error";}row=gradeInfoService.isAddGrade(grade);if(row<1){logger.error("年級添加失敗");request.setAttribute("error","年級添加失敗,請稍后再試!");"error";}"redirect:grades";}(2)科目管理下圖為科目管理頁面,對于普通老師僅能進行查看,對于管理員可以進行相應的操作,包括添加、修改和刪除。部分核心代碼:表5-4科目管理部分核心代碼@RequestMapping(value="/course/course",method=RequestMethod.)StringisUpdateOrAddCourse(@RequestParam(value="courseId",required=false)IntegercourseId,@RequestParam(value="isupdate",required=false)IntegerisUpdate,@RequestParam("courseName")StringcourseName,@RequestParam("gradeId")IntegergradeId){CourseInfocourse=newCourseInfo();course.setCourseId(courseId);course.setCourseName(courseName);GradeInfograde=newGradeInfo();grade.setGradeId(gradeId);course.setGrade(grade);//修改if(isUpdate!=null){("修改科目"+course+"的信息");row=courseInfoService.isUpdateCourse(course);}//添加else{("添加科目"+course+"的信息");row=courseInfoService.isAddCourse(course);}"redirect:/courses";}班級管理下圖為班級管理頁面,對于普通教師來說只能查看班級信息,包括班級名稱、所屬年級及班主任姓名,而不能進行相關(guān)操作。而管理員可對班級進行添加、修改以及刪除操作。教師管理下圖為教師管理界面,教師管理頁面可以查看所有教師的信息,對于普通教師而言可以查看所有教師的信息,但能查看自己的密碼以及對自己賬號的信息進行修改。而管理員則可以修改和刪除所有教師的信息,也僅有管理員能夠添加新的教師。下圖為管理員添加教師時的界面,管理員需要選擇教師權(quán)限,填寫教師姓名、賬戶以及密碼來完成教師的添加。學生管理學生管理可以查看所有學生信息。下圖為所有學生頁面,教師及管理員都可對查看所有學生信息,和對學生的信息進行修改以及刪除操作。下圖為對學生信息的修改操作,教師可以修改學生的班級、姓名以及登錄密碼。試卷管理試卷管理可以查看所有試卷信息。下圖為所有試卷頁面,教師及管理員都可對查看所有試卷的基本信息,和試卷的修改、刪除以及查看試卷試題、添加試題和自動生成試卷功能。同時教師及管理員也可以直接添加新的試卷。部分核心代碼:表5-5試卷信息獲取部分核心代碼@RequestMapping("/examPapers")ModelAndViewgetCourses(@RequestParam(value="gradeId",required=false)IntegergradeId,@RequestParam(value="startPage",required=false,defaultValue="1")IntegerstartPage,@RequestParam(value="pageShow",required=false,defaultValue="10")IntegerpageShow){("獲取試卷集合gradeId="+gradeId+",startPage="+startPage+",pageShow="+pageShow);ModelAndViewmodel=newModelAndView();model.setViewName("/admin/examPapers");if(gradeId!=null){grade.setGradeId(gradeId);examPaper.setGrade(grade);}Map<String,Object>map=newHashMap<String,Object>();//計算當前查詢起始數(shù)據(jù)索引startIndex=(start1)*pageShow;map.put("examPaper",examPaper);map.put("startIndex",startIndex);map.put("pageShow",pageShow);List<ExamPaperInfo>examPapers=newExamPaperInfoService.getExamPapers(map);model.addObject("examPapers",examPapers);//獲取試卷總量examPaperTotal=examPaperInfoService.getExamPpaerTotal();//計算總頁數(shù)pageTotal=1;if(examPaperTotal%pageShow==0){pageTotal=examPaperTotal/pageShow;}else{pageTotal=examPaperTotal/pageShow+1;}model.addObject("pageTotal",pageTotal);model.addObject("pageNow",startPage);model;}下圖為添加試卷的頁面,教師需要選擇試卷的難易程度、所屬年級以及填寫試卷名稱和考試時長來完成試卷的創(chuàng)建。下圖為添加試題到試卷的操作,教師考試手動的從題庫里選擇相應的試題添加的對應的試卷中。當然也可以使用系統(tǒng)提供的生成試題功能,通過設(shè)定數(shù)量、難度等信息由系統(tǒng)自動為試卷添加題目。部分核心代碼:表5-6試卷編輯部分核心代碼@RequestMapping(value="/handAdd",method={RequestMethod.,RequestMethod.})isHandAddSubjectToExamPaper(@RequestParam(value="examPaperId")IntegerexamPaperId,HttpSessionsession,HttpServletResponseresponse)throwException{//添加試題總分統(tǒng)計scoreSum=0;//添加試題總量統(tǒng)計subjectSum=0;Map<String,Object>map=newHashMap<String,Object>();map.put("examPaperId",examPaperId);ArrayList<Integer>subjectIds=newArrayList<Integer>();//試題信息List<String>ids=(List<String>)session.getAttribute("ids");session.removeAttribute("ids");if(ids!=null){(Stringis:ids){//分割試題編號和分數(shù)String[]idAndScore=is.split(",");subjectIds.add(Integer.(idAndScore[0]));//累加試題分數(shù)scoreSum+=Integer.(idAndScore[1]);//累加試題數(shù)量subjectSum+=1;}/**需要添加試題集合*/map.put("subjectIds",subjectIds);}{logger.error("試題集合為空,不能進行添加試題操作!");response.getWriter().print("需要添加的試題為空,操作失?。?);}("添加試題集合到試卷"+examPaperId);//總分和題目數(shù)量信息Map<String,Object>scoreWithNum=newHashMap<String,Object>();scoreWithNum.put("subjectNum",subjectSum);scoreWithNum.put("score",scoreSum);scoreWithNum.put("examPaperId",examPaperId);/**修改試卷總分*/examPaperInfoService.isUpdateExamPaperScore(scoreWithNum);/**修改試卷試題總量*/examPaperInfoService.isUpdateExamPaperSubjects(scoreWithNum);/**添加試題到試卷中*/esmService.isAddESM(map);response.getWriter().print("試題已成功添加到試卷中!");}試題管理試題管理可以查看所有試題信息。下圖為所有試題頁面,教師及管理員都可查看所有試題的基本信息,以及對相應的試題進行修改。同時教師及管理員也可以直接添加新的試題。下圖展示了教師添加新題目的界面,首先教師需要選擇添加的題型,并且在下方所對應的編輯欄里輸入對應的題目信息。其次在同頁面中填寫對應的難易程度、所屬科目、所屬年級以及題目分值信息來完成新題目的添加。部分核心代碼:表5-7添加試題核心代碼@RequestMapping(value="/addSubject",method=RequestMethod.)addSubject(SubjectInfosubject,HttpServletResponseresponse)throwIOException{if(subject!=null){subject.setSubjectName(trimChar(subject.getSubjectName()));subject.setRightResult(trimChar(subject.getRightResult()));subject.setOptionA(trimChar(subject.getOptionA()));subject.setOptionB(trimChar(subject.getOptionB()));subject.setOptionC(trimChar(subject.getOptionC()));subject.setOptionD(trimChar(subject.getOptionD()));}row=subjectInfoService.isAddSubject(subject);response.getWriter().print("試題添加成功!");}考試安排管理考試安排管理可查詢待考信息。下圖為待考信息頁面,教師可以查看所有的代考信息,并且可以對一些考試的安排進行修改和刪除,同時也可以添加新的考試安排。部分核心代碼:表5-8考試安排部分核心代碼/***預添加**/@RequestMapping("/preAddep")ModelAndViewpreAddep(){ModelAndViewmodel=newModelAndView();model.setViewName("admin/examPlanedit");//獲取所有班級信息List<ClassInfo>classes=classInfoService.getClasses();model.addObject("classes",classes);//獲取所有科目信息List<CourseInfo>courses=courseInfoService.getCourses();model.addObject("courses",courses);//獲取所有的試卷信息--純凈的List<ExamPaperInfo>examPapers=examPaperInfoService.getExamPapersClear();model.addObject("examPapers",examPapers);model;}/***添加待考信息*examPlan考試安排記錄信息**/@RequestMapping(value="examPlan",method=RequestMethod.)StringisAddExamPlan(ExamPlanInfoexamPlan){("添加待考記錄:"+examPlan);examPlanInfoService.isAddExamPlan(examPlan);"redirect:examPlans";}以往考試信息以往考試信息可以查看所有考生的所有考試的記錄,除了試卷名稱、試卷總分、考試分數(shù)、考生名稱之外,還可以查看考試詳情,從而看到考試答題的實際情況。下圖為以往考試信息的所有記錄頁面。下圖為某一考生某次考試的詳細信息,可以在頁面中看到所有試卷信息、考生答題信息以及正確答案信息。部分核心代碼:表5-9考試歷史查看部分核心代碼@RequestMapping("/historys")ModelAndViewexamHistorys(){List<ExamHistoryInfo>historys=examHistoryPaperService.getExamHistoryToTeacher();ModelAndViewmodel=newModelAndView("admin/examHistorys");("教師查詢歷史考試信息SIZE"+historys.size());model.addObject("historys",historys);model;}學生端考試中心如下圖為學生登錄后在考試中心中查看到的與自己相關(guān)的所有考試安排,并且能在開考時間后進入考試,來完成相應的考試。如下圖為進入考試后的界面,整個頁面分為左右兩個部分,左邊為題目以及答題區(qū),右邊則是答題剩余時間以及題目列表,在題目列表中黃色的題目為已經(jīng)作答過的題目,紅色的題目為正在作答的題目,綠色的題目為還未作答的題目。一旦考試時間達到后,試卷就會強制自動提交。部分核心代碼:表5-10答題部分核心代碼@RequestMapping(value="/choose",method=RequestMethod.)examChooseHandler(@RequestParam("studentId")IntegerstudentId,@RequestParam("examPaperId")IntegerexamPaperId,@RequestParam("subjectId")IntegersubjectId,@RequestParam(value="index",required=)Integerindex,@RequestParam("chooseAswer")StringchooseAswer,HttpServletResponseresponse)throwIOException{("考生"+studentId+"在試卷"+examPaperId+"中試題"+subjectId+"選擇了答案"+chooseAswer+"序號"+index);//判斷該考生是否已經(jīng)選擇過該試題Map<String,Object>map=newHashMap<String,Object>();map.put("studentId",studentId);map.put("examPaperId",examPaperId);map.put("subjectId",subjectId);examChoose=examChooseInfoService.getChooseWithIds(map);("考生是否選擇過試題"+subjectId+""+examChoose+"(NULL-否)");if(examChoose==null){("考生"+studentId+"尚未選擇試題"+subjectId+"添加選擇記錄答案"+chooseAswer);map.put("chooseResult",chooseAswer);/**添加選擇記錄*/examChooseInfoService.addChoose(map);}if(examChoose.getChooseId()!=&&examChoose!=){("考生"+studentId+"已經(jīng)選擇試題"+subjectId+"修改選擇記錄答案"+examChoose.getChooseResult()+"更新為"+chooseAswer);/**如果選擇了和上次相同的答案,則不做修改操作*優(yōu)化--判斷選擇了相同答案則不發(fā)出請求*/if(!chooseAswer.equals(examChoose.getChooseResult())){examChoose.setChooseResult(chooseAswer);/**當前選擇答案和之前選擇答案不同修改答案記錄*/examChooseInfoService.updateChooseWithIds(examChoose);}else{("考生選擇了相同答案,不做修改操作");}}else{response.getWriter().print("f");}response.getWriter().print("t");}考試歷史如下圖為學生登錄后在考試歷史中查看到的與自己相關(guān)的所有考試歷史信息,并且能夠查詢相應的考試結(jié)果及答案信息。系統(tǒng)測試測試目的及意義系統(tǒng)測試的目的是模擬現(xiàn)實中系統(tǒng)在運行工作的條件下與預先的需求做對比,檢查軟件系統(tǒng)的工作環(huán)境是否正確,發(fā)現(xiàn)軟件系統(tǒng)中與需求矛盾的地方,不僅如此,系統(tǒng)測試還能檢驗系統(tǒng)的健壯性和合理性,通過系統(tǒng)的運行狀況和測試結(jié)果檢驗系統(tǒng)的漏洞和缺陷以完善系統(tǒng)。系統(tǒng)測試接口測試接口測試是測試系統(tǒng)接口組件的一種方式且成本相對較低,通常通過接口返回的數(shù)據(jù)來檢查數(shù)據(jù)的交互是否符合預期結(jié)果,以此來檢驗接口的數(shù)據(jù)傳遞性是否正確,這樣能提前發(fā)現(xiàn)代碼邏輯上的一些問題,以提高系統(tǒng)的質(zhì)量,設(shè)計接口測試用例的出發(fā)點是要驗證接口實現(xiàn)的功能與性能指標與接口設(shè)計文檔的一致性,同時測試接口具有良好的容錯機制,能在接收到各種異常輸入數(shù)據(jù)時做到:返回對錯誤定位具有良好參考意義的錯誤碼,屏蔽底層錯誤信息,同時接口測試用例需要暴露接口代碼更多的代碼缺陷,以這個出發(fā)點為導向。(1)測試工具:postman(2)測試設(shè)計:對于返回的是數(shù)據(jù)的請求接口,將訪問地址進行梳理,然后對接參數(shù)進行模擬請求發(fā)送,查看預期結(jié)果和測試結(jié)果是否相同。(3)測試用例:表6-1教師賬號信息驗證用例測試功能對教師賬號信息進行驗證測試目的檢測教師信息驗證返回的數(shù)據(jù)是否正確編號用例數(shù)據(jù)預測結(jié)果實際結(jié)果測試狀態(tài)1URL:http://localhost:8080/OnlineExamSSM/validateTeacher11與預期結(jié)果一致2URL:http://localhost:8080/OnlineExamSSM/validateTeacher11與預期結(jié)果一致3URL:http://localhost:8080/OnlineExamSSM/validateTeacher123456123456與預期結(jié)果一致4URL:http://localhost:8080/OnlineExamSSM/validateTeacher123123與預期結(jié)果一致表6-2試題刪除驗證用例測試功能對試題進行刪除測試測試目的檢測在模擬請求的情況下查看能否刪除指定的試題編號用例數(shù)據(jù)預測結(jié)果實際結(jié)果測試狀態(tài)1URL:http://localhost:8080/OnlineExamSSM/delSubjecttt與預期結(jié)果一致2URL:http://localhost:8080/OnlineExamSSM/delSubject返回400請求錯誤網(wǎng)頁400請求錯誤網(wǎng)頁與預期結(jié)果一致3URL:http://localhost:8080/OnlineExamSSM/delSubjectff與預期結(jié)果一致4URL:http://localhost:8080/OnlineExamSSM/delSubject返回400請求錯誤網(wǎng)頁400請求錯誤網(wǎng)頁與預期結(jié)果一致表6-3試卷查詢用例測試功能對試卷進行條件查詢測試目的檢測在模擬請求的情況下能否返回正確的試卷信息編號用例數(shù)據(jù)預測結(jié)果實際結(jié)果測試狀態(tài)1URL:http://localhost:8080/OnlineExamSSM/getESM返回id為21的試卷信息Id=21的試卷信息與預期結(jié)果一致2URL:http://localhost:8080/OnlineExamSSM/delSubject返回課程名為Java的試卷信息courseName=Java的試卷信息與預期結(jié)果一致表6-4班級信息獲取用例測試功能獲取指定年級下的班級信息測試目的檢測在模擬請求的情況下查看能否返回正確的班級信息編號用例數(shù)據(jù)預測結(jié)果實際結(jié)果測試狀態(tài)1URL:http://localhost:8080/OnlineExamSSM//gradeclass/gradeId返回班級對象的集合返回班級對象的集合與預期結(jié)果一致表6-5移除試卷中的某個試題用例測試功能移除試卷中的某個試題測試目的檢測在模擬請求的情況下移除某個試題,查看能否返回正確的結(jié)果信息編號用例數(shù)據(jù)預測結(jié)果實際結(jié)果測試狀態(tài)1URL:http://localhost:8080/OnlineExamSSM/removeSubjectFromPapertt與預期結(jié)果一致2URL:http://localhost:8080/OnlineExamSSM/removeSubjectFromPaperff與預期結(jié)果一致表6-6添加某個試題到試卷中用例測試功能向試卷中添加指定試題測試目的檢測在模擬請求的情況下查看能否添加成功并返回正確結(jié)果信息編號用例數(shù)據(jù)預測結(jié)果實際結(jié)果測試狀態(tài)1URL:http://localhost:8080/OnlineExamSSM/getChooseSubIdtt與預期結(jié)果一致2URL:http://localhost:8080/OnlineExamSSM/getChooseSubIdff與預期結(jié)果一致(4)問題報告:以上用例對于可返回數(shù)據(jù)的接口進行了簡單測試,對于出現(xiàn)的可能情況進行了測試,在預期結(jié)果和實際結(jié)果的對比中未出現(xiàn)太大的差異,說明接口實現(xiàn)正確獲取數(shù)據(jù)。單元測試單元測試(unittesting),是指對軟件中的最小可測試單元進行檢查和驗證。對于單元測試中單元的含義,一般來說,要根據(jù)實際情況去判定其具體含義,如C語言中單元指一個函數(shù),Java里單元指一個類,圖形化的軟件中可以指一個窗口或一個菜單等??偟膩碚f,單元就是人為規(guī)定的最小的被測功能模塊。單元測試是在軟件開發(fā)過程中要進行的最低級別的測試活動,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試。(1)測試工具:eclipse引入Junit-4.9.jar包支持(2)測試設(shè)計:使用Test注解創(chuàng)建單元測試方式對數(shù)據(jù)庫進行訪問,查看是否能夠進行讀寫操作(3)測試用例:表6-7用例1測試模塊年級管理模塊測試目的檢查年級信息模塊的功能正確性測試功能預測結(jié)果實際結(jié)果測試狀態(tài)添加年級信息創(chuàng)建對象封裝信息調(diào)用服務方法,返回數(shù)據(jù)庫影響行數(shù)1數(shù)據(jù)庫影響行數(shù)=1成功年級信息修改創(chuàng)建對象封裝信息調(diào)用服務方法,返回數(shù)據(jù)庫影響行數(shù)1數(shù)據(jù)庫影響行數(shù)=1成功年級信息刪除創(chuàng)建對象封裝信息調(diào)用服務方法,返回數(shù)據(jù)庫影響行數(shù)1數(shù)據(jù)庫影響行數(shù)=1成功年級信息查詢直接查詢和條件查詢,返回的為GradeInfo集合返回為List<GradeInfo>成功表6-8用例2測試模塊班級管理模塊測試目的檢查班級信息模塊的功能正確性測試功能預測結(jié)果實際結(jié)果測試狀態(tài)添加班級信息創(chuàng)建對象封裝信息調(diào)用服務方法,返回數(shù)據(jù)庫影響行數(shù)1數(shù)據(jù)庫影響行數(shù)=1成功班級信息修改創(chuàng)建對象封裝信息調(diào)用服務方法,返回數(shù)據(jù)庫影響行數(shù)1數(shù)據(jù)庫影響行數(shù)=1成功班級信息刪除創(chuàng)建對象封裝信息調(diào)用服務方法,返回數(shù)據(jù)庫影響行數(shù)1數(shù)據(jù)庫影響行數(shù)=1成功班級信息查詢直接查詢和條件查詢,返回的為ClassInfo集合返回為List<ClassInfo>成功表6-9用例3測試模塊教師管理模塊測試目的檢查教師信息模塊的功能正確性測試功能預測結(jié)果實際結(jié)果測試狀態(tài)添加教師信息創(chuàng)建對象封裝信息調(diào)用服務方法,返回數(shù)據(jù)庫影響行數(shù)1數(shù)據(jù)庫影響行數(shù)=1成功教師信息修改創(chuàng)建對象封裝信息調(diào)用服務方法,返回數(shù)據(jù)庫影響行數(shù)1數(shù)據(jù)庫影響行數(shù)=1成功教師信息刪除創(chuàng)建對象封裝信息調(diào)用服務方法,返回數(shù)據(jù)庫影響行數(shù)1數(shù)據(jù)庫影響行數(shù)=1成功教師信息查詢直接查詢和條件查詢,返回的為TeacherInfo集合返回為List<TeacherInfo>成功表6-10用例4測試模塊學生管理模塊測試目的檢查學生信息模塊的功能正確性測試功能預測結(jié)果實際結(jié)果測試狀態(tài)添加學生信息創(chuàng)建對象封裝信息調(diào)用服務方法,返回數(shù)據(jù)庫影響行數(shù)1數(shù)據(jù)庫影響行數(shù)=1成功學生信息修改創(chuàng)建對象封裝信息調(diào)用服務方法,返回數(shù)據(jù)庫影響行數(shù)1數(shù)據(jù)庫影響行數(shù)=1成功學生信息刪除創(chuàng)建對象封裝信息調(diào)用服務方法,返回數(shù)據(jù)庫影響行數(shù)1數(shù)據(jù)庫影響行數(shù)=1成功學生信息查詢直接查詢和條件查詢,返回的為StudentInfo集合返回為List<StudentInfo>成功表6-11用例5測試模塊試卷管理模塊測試目的檢查試卷信息模塊的功能正確性測試功能預測結(jié)果實際結(jié)果測試狀態(tài)添加試卷信息創(chuàng)建對象封裝信息調(diào)用服務方法,返回數(shù)據(jù)庫影響行數(shù)1數(shù)據(jù)庫影響行數(shù)=1成功試卷信息修改創(chuàng)建對象封裝信息調(diào)用服務方法,返回數(shù)據(jù)庫影響行數(shù)1數(shù)據(jù)庫影響行數(shù)=1成功試

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論