【正文】
參 考 文 獻(xiàn)[1] 劉正榮著.地震預(yù)報.修訂2版.北京:地震出版社,2008.[2] 熊翥著.地震數(shù)據(jù)處理應(yīng)用技術(shù).修訂2版.北京:石油工業(yè)出版社.2008.[3] 張國民,傅征祥,桂燮泰著.地震預(yù)報引論.北京:科學(xué)出版社,2008.[4] 陳宏峰著.中國地震仿真網(wǎng)格應(yīng)用系統(tǒng)的設(shè)計與開發(fā).北京:中國地震局地球物理研究所,2006.[5] 楊紅霞,趙改善著.21世紀(jì)的地震處理系統(tǒng).石油物探,2001,04.[6] 高少武,趙衛(wèi)峰,趙波,梁意文,陳世鴻著.計算機(jī)工程與設(shè)計.計算機(jī)出版社.2003,01.[7] :學(xué)位論文.湖南:湖南大學(xué)計算機(jī)系,2009.[8] 李莉,邵秀鳳著.實(shí)用JAVA語言程序設(shè)計.北京郵電大學(xué)出版社.2009,8.[9] 張海藩著.軟件工程導(dǎo)論.第四版.北京:清華大學(xué)出版社,2003.[10] 王森著.JAVA深度歷險.第1版.湖北:華中科技大學(xué)出版社.2002.[11] 高海茹主編.MySQL網(wǎng)絡(luò)數(shù)據(jù)庫技術(shù)精粹.北京:機(jī)械工業(yè)出版社.. [12] ,Nassar. Testing Java Swingbased application, IEEE Journals, 2003,8,15:14~19.[13] Bruce Eckel. Think in java, American:Prentice Hall PTR,2002.[14] Swain. M, Anderson, , , Swain, . Database programming using Java. New York:SoutheastCon, 2002.[15] , . SQL: a relational database language for fuzzy querying. IEEE Journals, 1995,3,1:1~17.附 錄 A 外文原文Testing Java Swingbased applicationAbstract— A Common method for GUI testing is the Capture and Replay (CR) technique. While monly used this technique can not be used until an Application Under Test (AUT) is pletely developed. In this paper we propose a specificationdriven approach to test GUIBased java programs as an alternative to the CR technique. We introduce a GUIevent test specification language based on XML from which an automated test engine is generated. The popularity of XML as a scripting language, its ease of use and its standard format have made writing a test script using our proposed specification language an easy task. Beside the ability to test AUT before being pletely developed we have implemented a visual editor that can generate the test specification file for an already existing AUT. The engine generates GUI events and captures event responses to automatically verify the results of the test cases which are written to a test log file. This approach supports Nversion testing, where each version of the application is intended to satisfy the same specification. Index Terms— GUI Testing, Testing Tools, XML, Graphical User Interfaces.I. INTRODUCTIONGRAPHICAL User Interface (GUI) has bee an important and accepted way of interacting with software leading to more and more plex GUIs. Although they make software easy to use from user’s perspective, they plicate the challenges in testing the correctness of a GUI [1].The main challenge is that GUIBased programs are eventdriven, where an event is triggered when the user interacts with the program through GUI, Common user interactions include moving or clicking the mouse, selecting a graphic object, typing into a text field, or closing a window. The fundamental difference between eventdriven programs and datadriven programs plicate test automation. Simple test automation involving input or output redirection that is adequate for datadriven programs will not suffice for GUIbased testing which requires a bination of data and event stimuli. Special tools are needed to simulate inputs and user actions that occur through the graphical user interface [2].With the monly used CR tools, a test designer interacts with the GUI of the AUT and all the events are recorded in a test script. The test script can later be replayed by the CR tool to recreate user interactions. CR tools are effective in savingthe development time of GUI test programs。但是整體來說還是能讓自己滿意的。經(jīng)過測試,軟件實(shí)現(xiàn)了預(yù)期目的,符合預(yù)計目標(biāo),而且數(shù)據(jù)處理準(zhǔn)確無誤。在A機(jī)上開啟局域網(wǎng)訪問接口,在B機(jī)上運(yùn)行軟件并將B設(shè)置為客戶端,在A、B機(jī)上分別再一次的按照上述方法測試并比照結(jié)果,記錄最終的測試情況。在“附錄C 程序測試列表”中列出了單機(jī)情況下的測試數(shù)據(jù)。如果為了表明程序是正確的而進(jìn)行測試,就會設(shè)計一些不易暴露錯誤的測試方案;相反,如果測試是為了發(fā)現(xiàn)程序中的錯誤,就會力求設(shè)計出最能暴露錯誤的測試方案。這和某些人通常想象的“測試是為了表明程序是正確的”,“成功的測試時沒有發(fā)現(xiàn)錯誤的測試”等等是完全相反的。什么是測試?它的目標(biāo)是什么?G. Myers給出了關(guān)于測試的一些規(guī)則,這些目標(biāo)也可以看作是測試的目標(biāo)或定義:●測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程;●好的測試方案實(shí)際可能發(fā)現(xiàn)迄今未使尚未發(fā)現(xiàn)的錯誤的測試方案;●成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試[12]。而且在軟件開發(fā)的過程中,每完成一個功能,便進(jìn)行一次功能測試和整體測試,確保了系統(tǒng)的整體性和低出錯率。5模塊測試測試是為了更好的完成項(xiàng)目所包含的功能,雖然測試并不能完全模擬實(shí)際發(fā)生的流程,但卻可以降低錯誤的發(fā)生頻率,提高軟件項(xiàng)目的穩(wěn)定性。在本程序中,我采用了導(dǎo)入第三方包的方案完成對數(shù)據(jù)庫的連接,通過這個包,可以完成程序?qū)?shù)據(jù)庫的直接連接。由于測量儀器在進(jìn)行格制調(diào)整操作之后,測量的數(shù)據(jù)會出現(xiàn)突變(數(shù)據(jù)曲線會顯示突然向上或向下移動),以此,為了保證數(shù)據(jù)的連續(xù)性,需要將突變后的數(shù)據(jù)與突變前的數(shù)據(jù)接齊,以東西形變數(shù)據(jù)為例,首先,由于格制調(diào)整時,測量的數(shù)據(jù)波動會很大,因而是不準(zhǔn)確的錯誤數(shù)據(jù),于是將格制調(diào)整時以及之前共計5分鐘內(nèi)的數(shù)據(jù)舍棄,記為“99999”,且記錄格制調(diào)整前第六分鐘與格制調(diào)整后第一分鐘的差值,存儲到gztz表中,并將之后的所有數(shù)據(jù)全部加上這一差值后存入xbbasic表中,這樣的操作相當(dāng)于將原始數(shù)據(jù)按照其突變的相反方向再一次突變,抵消由格制調(diào)整造成的測量數(shù)據(jù)錯誤。當(dāng)然這都是在服務(wù)器端開啟了MySQL的遠(yuǎn)程訪問接口的前提下才能進(jìn)行的。同樣,若存在bishe數(shù)據(jù)庫則連接test數(shù)據(jù)庫后先刪除bishe數(shù)據(jù)庫,在新建之,之后再連接上bishe數(shù)據(jù)庫,在其中建表,插入數(shù)據(jù)。實(shí)現(xiàn)這一方案也不難:將有可能出現(xiàn)的輸入列出,并規(guī)定當(dāng)出現(xiàn)這些輸入時,系統(tǒng)讀取的數(shù)據(jù)為指定的格式。如此,完成了本地文件想系統(tǒng)的導(dǎo)入。在導(dǎo)入形變數(shù)據(jù)的操作中,首先要考慮到的是如何將儀器測得的數(shù)據(jù)導(dǎo)入系統(tǒng)中處理。按鍵響應(yīng)是本系統(tǒng)的一個便捷式操作的亮點(diǎn),讓用戶在很多情況下,只需要鍵盤的簡單操作既可以完成某些可能用到鼠標(biāo)的功能。但是插入了圖片后,新的問題出現(xiàn)了,插入了背景圖片后,這個組件覆蓋了原有的面板中的所有組件,導(dǎo)致其他功能無法使用,最后幾經(jīng)周折,將這些組件設(shè)置為只在需要的時候加載,其他狀態(tài)下將其移除才基本解決了這一問題。JAVA的Swing組件雖然是一個GUI組件,但是沒有直接導(dǎo)入圖片到面板容器中的組件,為了美化界面,成功的插入圖片,我嘗試了許多方法,如在Jpanle中插入一段Applet小程序,在Jlabel中插入圖片,然后將Jlabel導(dǎo)入面板容器中,但是都失敗了,最后自定義了一個繼承于Jpanel的類,這是一個調(diào)用自身方法的類,將其實(shí)例化后,將會產(chǎn)生一個插入了本地圖片的容器,其中調(diào)用的方法為重寫的paintComponent (Graphics g)方法。另一種是在每次執(zhí)行用戶登錄操作時,將該用戶名寫出到D:/,每次執(zhí)行用戶登錄操作前,并將其登錄標(biāo)志設(shè)置為0,這樣的處理方式雖然也存在這漏洞,即當(dāng)用戶在A機(jī)上關(guān)閉系統(tǒng)時沒有進(jìn)行用戶退出操作,然后又到B機(jī)上登錄或注銷時,極有可能出現(xiàn)不能執(zhí)行該操作,但是由于主界面的打開關(guān)閉操作不涉及到連接數(shù)據(jù)庫,因此不會出現(xiàn)卡死的情況,而且考慮到用戶的實(shí)際使用情況(一人一機(jī),且一般情況下,服務(wù)器端不會開放局域網(wǎng)通訊接口),此方案的出錯概率不會比前者大。為了解決這一問題,我考慮了幾種方案:一種是每次用戶確認(rèn)關(guān)閉系統(tǒng)時,系統(tǒng)自動連接數(shù)據(jù)庫,并設(shè)置最近的在本機(jī)登錄的用戶的登錄標(biāo)志為0,這樣保證了在數(shù)據(jù)庫不出現(xiàn)異常,用戶正常關(guān)閉系統(tǒng)的情況下,則用戶在登錄標(biāo)志上絕對不會出錯。由于這些方法的闡述比較多,不便于在上面陳述,于是將這些方法的實(shí)現(xiàn)在此處歸納。圖4. 11 格制調(diào)整界面圖4. 12 設(shè)置輸入輸出路徑界面圖4. 13 刪除形變數(shù)據(jù)界面圖4. 14 格制調(diào)整確認(rèn)界面圖4. 15 輸入輸出設(shè)置確認(rèn)界面圖4. 16 確認(rèn)刪除形變數(shù)據(jù)界面圖4. 17 查看所有用戶信息界面圖4. 18 系統(tǒng)初始化界面圖4. 19 確認(rèn)初始化界面圖4. 20 系統(tǒng)初始化設(shè)置界面幫助模塊提供了一個可操作的界面,界面中,左邊是選擇區(qū),用戶點(diǎn)選想要查詢的Item,右邊顯示相應(yīng)的幫助文字。圖4. 10 防震減災(zāi)數(shù)據(jù)查詢界面所有的系統(tǒng)管理操作均需要系統(tǒng)管理員密碼,而且對于會修改影響系統(tǒng)運(yùn)行的關(guān)鍵數(shù)據(jù)的操作會有二次確認(rèn)的界面,只有系統(tǒng)管理員密碼正確且經(jīng)過二次確認(rèn)的操作才會被執(zhí)行。點(diǎn)擊功能區(qū)的“刪除當(dāng)前對象”按鈕,系統(tǒng)會先記錄你查詢到的值,然后將之刪除,重新連接數(shù)據(jù)庫,讀出當(dāng)前數(shù)據(jù),同時顯示在表格區(qū)中。點(diǎn)擊功能區(qū)的“排序”按鈕,系統(tǒng)會讀入用戶選擇的排序模式,以及以何種順序排序。圖4. 9 導(dǎo)入測震數(shù)據(jù)界面在形式上,辦公助手模塊與數(shù)據(jù)查詢模塊類似,但是辦公助手模塊中功能區(qū)包含了查找,更新和刪除三大功能,只要用戶權(quán)限滿足條件,則可以在該界面下執(zhí)行全部操作。形變數(shù)據(jù)的導(dǎo)入導(dǎo)出均是后臺進(jìn)行的,沒有可視化界面,但是操作成功后,都會有提示操作成功。點(diǎn)擊功能區(qū)的“返回”按鈕,系統(tǒng)將清空表格區(qū)的數(shù)據(jù),重新連接數(shù)據(jù)庫,讀出當(dāng)前數(shù)據(jù),同時顯示在表格區(qū)中,為用戶提供了一個實(shí)時監(jiān)控數(shù)據(jù)庫變化的接口。點(diǎn)擊功能區(qū)的“排序”按鈕,系統(tǒng)會讀入用戶選擇的排序模式,以及以何種順序排序。相對于形變數(shù)據(jù)的功能區(qū),測震數(shù)據(jù)的功能區(qū)多了一個排序選項(xiàng)(因?yàn)樾巫償?shù)據(jù)是按照日期時間自動排序的),方便用戶更直觀的分析地震數(shù)據(jù)。圖4. 2