HTML5知識查詢系統(tǒng)的設(shè)計研究_第1頁
HTML5知識查詢系統(tǒng)的設(shè)計研究_第2頁
HTML5知識查詢系統(tǒng)的設(shè)計研究_第3頁
HTML5知識查詢系統(tǒng)的設(shè)計研究_第4頁
HTML5知識查詢系統(tǒng)的設(shè)計研究_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

HTML5警務(wù)知識查詢系統(tǒng)的設(shè)計與實現(xiàn)》摘要本文檔的目的是進一步定制軟件開發(fā)的細節(jié),并使軟件開發(fā)工作更加具體。是用戶的軟件,軟件開發(fā)人員和分析師初始規(guī)則有一個共同的理解,它說明了產(chǎn)品的功能需求、性能需求和數(shù)據(jù)需求,清楚地識別每個函數(shù)的實現(xiàn)過程,實際背景和范圍,提供客戶解決問題或達到所需的條件或能力,提供測量和基準。HTML5提供了各種各樣的標記,極大地促進了開發(fā)人員的開發(fā)。關(guān)鍵字:HTML5,網(wǎng)站開發(fā),軟件設(shè)計AbstractThepurposeofthisdocumentistofurthercustomizethesoftwaredevelopmentdetailsandtomakethesoftwaredevelopmentworkmorespecific.Istheuserofthesoftware,softwaredevelopersandanalystsinitialruleshaveacommonunderstanding,itillustratesthefeaturesoftheproductrequirements,performancerequirements,anddatarequirements,clearlyidentifytherealizationprocessofeachfunction,practicalbackgroundandscope,providecustomersolveaproblemormeettherequiredconditionsorability,providesthemeasureandbenchmark.HTML5providesavarietyoftagsthatgreatlyfacilitatethedevelopmentofdevelopers.Keywords:HTML5,websitedevelopment,softwaredesign.目錄摘要 2Abstract 3一、背景和意義 51.1TML超文本標記語言 51.2語言概述 51.3規(guī)范標準 51.4有關(guān)約定. 5二HTML與網(wǎng)站開發(fā) 62.1網(wǎng)站服務(wù)器 62.2應(yīng)用環(huán)境 62.2.1瀏覽器求 62.2.2服務(wù)器響應(yīng) 72.3HTML5的新特性 82.3.1新的文檔類型(NewDoctype) 82.3.2腳本和鏈接無需type 82.3.3更加語義化的元素 82.3.4占位符(Placeholder) 82.3.5Audio和Video支持 92.3.6離線&存儲 92.3.7HTML5canvas 92.4.HTML5在公安工作中的應(yīng)用現(xiàn)狀 92.5.一個HTML5警務(wù)知識查詢系統(tǒng) 9二、系統(tǒng)的設(shè)計(UML圖,模塊、時序圖,功能函數(shù)的表格) 102.1.模塊劃分 102.1.1用戶管理 102.1.2色管理 102.1.3礎(chǔ)數(shù)據(jù)管理 102.1.4限管理 102.1.5備管理 102.1.6管理 102.2.用戶界面的設(shè)計 102.3.系統(tǒng)功能設(shè)計 11三、系統(tǒng)的實現(xiàn) 123.1.開發(fā)環(huán)境 123.2.用戶界面的實現(xiàn) 123.4.測試(黑盒、白盒) 143.4.1白盒測試 143.4.2黑盒測試 19四、總結(jié)與展望 211.橫向 212.縱向 213.公安意義 22一、背景和意義1.1TML超文本標記語言超文本標記語言,標準通用標記語言下的一個應(yīng)用?!俺谋尽本褪侵疙撁鎯?nèi)可以包含圖片、鏈接,甚至音樂、程序等非文字元素。超文本標記語言的結(jié)構(gòu)包括“頭”部分(英語:Head)、和“主體”部分(英語:Body),其中“頭”部提供關(guān)于網(wǎng)頁的信息,“主體”部分提供網(wǎng)頁的具體內(nèi)容。1.2語言概述在WWW上的一個超媒體文檔稱之為一個頁面(page)。作為一個組織或個人在萬維網(wǎng)上開始點的頁面稱為主頁Homepage,或首頁,主頁中通常包括有指向其他相關(guān)頁面或其他節(jié)點的指針(超級鏈接)。在邏輯上將視為一個整體的一系列頁面的有機集合稱為網(wǎng)站(Website或Web)。Web頁面也就是通常所說的網(wǎng)頁,在這里不作區(qū)分。1.3規(guī)范標準HTML之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點就是一種URL指針,通過激活(點擊)它,可使瀏覽器方便地獲取新的網(wǎng)頁。這也是HTML獲得廣泛應(yīng)用的最重要的原因之一。由此可見,網(wǎng)頁的本質(zhì)就是HTML,通過結(jié)合使用其他的Web技術(shù)(如:腳本語言、CGI、組件等),可以創(chuàng)造出功能強大的網(wǎng)頁。因而,HTML是Web編程的基礎(chǔ),也就是說萬維網(wǎng)是建立在超文本基礎(chǔ)之上的。1.4有關(guān)約定.在編輯HTML文件和使用有關(guān)標記符時有一些約定或默認的要求。(1)文本標記語言源程序的文件擴展名默認使用htm或html。在使用文本編輯器時,注意修改擴展名。而常用的圖像文件的擴展名為gif和jpg。(2)HTML源程序為文本文件,其列寬可不受限制,即多個標記可寫成一行,甚至整個文件可寫成一行;若寫成多行,瀏覽器一般忽略文件中的回車符(標記指定除外);對文件中的空格通常也不按源程序中的效果顯示。完整的空格可使用特殊符號“ (注意此字母必須小寫,方可空格)”表示非換行空格,如需換行可以輸入<br/>;表示文件路徑時使用符號“/”分隔,文件名及路徑描述可用雙引號也可不用引號括起。(3)標記符中的標記元素用尖括號括起來,如:"<"">",帶斜杠的元素表示該標記說明結(jié)束;大多數(shù)標記符必須成對使用,以表示作用的起始和結(jié)束;標記元素忽略大小寫,即與作用相同,但完整的空格可使用特殊符號“ (注意此字母必須小寫,方可空格)”;許多標記元素具有屬性說明,可用參數(shù)對元素作進一步的限定,多個參數(shù)或?qū)傩皂椪f明次序不限,其間用空格分隔即可;一個標記元素的內(nèi)容可以寫成多行。(4)標記符號,包括尖括號、標記元素、屬性項等必須使用半角的西文字符,而不能使用全角字符。(5)HTML注釋由驚嘆號表示,注釋內(nèi)容由符結(jié)束。注釋內(nèi)容可插入文本中任何位置。任何標記若在其最前插入驚嘆號,即被標識為注釋,不予顯示。二HTML與網(wǎng)站開發(fā)2.1網(wǎng)站服務(wù)器網(wǎng)站服務(wù)器(WebsiteServer)是指在互聯(lián)網(wǎng)數(shù)據(jù)中心中存放網(wǎng)站的服務(wù)器。網(wǎng)站服務(wù)器主要用于網(wǎng)站的互聯(lián)網(wǎng)中的發(fā)布、應(yīng)用,是網(wǎng)絡(luò)應(yīng)用的基礎(chǔ)硬件設(shè)施。部署網(wǎng)站服務(wù)器一般都是在IDC服務(wù)商租用或者托管服務(wù)器,也可以自己托管機房。24小時維護、1-3個工作日上架。部署網(wǎng)站服務(wù)器根據(jù)使用用戶的地域分布選擇合適的IDC域名注冊查詢服務(wù)商,比如:網(wǎng)站主要用做國際貿(mào)易,網(wǎng)上下單,那就選擇有國際帶寬出口IDC服務(wù)商(香港、上海國際帶寬充足)。服務(wù)器軟件,服務(wù)器軟件工作在客戶端-服務(wù)器或瀏覽器-服務(wù)器的方式,有很多形式的服務(wù)器,常用的包括:文件服務(wù)器(FileServer)-如Novell的NetWare。數(shù)據(jù)庫服務(wù)器(DatabaseServer)-如Oracle數(shù)據(jù)庫服務(wù)器,MySQL,PostgreSQL,MicrosoftSQLServer等2.2應(yīng)用環(huán)境網(wǎng)站服務(wù)器可根據(jù)網(wǎng)站應(yīng)用的需要,部署搭建ASP/JSP/.NET/PHP等應(yīng)用環(huán)境。流行兩種環(huán)境一種是Linux+Apache(Nginx)+Mysql+Php也就是LAMP/LNMP環(huán)境;另一種是WINDOWS+IIS+ASP/.NET+MSSQL環(huán)境。LAMP為現(xiàn)在使用最廣的服務(wù)器環(huán)境,它運行在Linux系統(tǒng)下,穩(wěn)定、安全,Apache是最著名的開源網(wǎng)頁服務(wù)器,Mysql也是最著名的一種開源關(guān)系型數(shù)據(jù)庫,而PHP是一門流行的開源腳本語言,能處理用戶的動態(tài)請求。[2]Windows+IIS+ASP/.NET+MSSQL憑借其極強的易用性,也贏得了許多站長的青睞,Windows是著名的可視化操作系統(tǒng),而IIS是運行在Windows上的Web服務(wù)器,可使用ASP/.NET兩種編程語言開發(fā),現(xiàn)在應(yīng)用最廣的就是ASP.NET。2.2.1瀏覽器求首先瀏覽器會解析域名對應(yīng)的IP地址。瀏覽器會首先搜索瀏覽器自身的DNS緩存,如果瀏覽器自身緩存找不到則會查看系統(tǒng)的DNS緩存,如果找到且沒有過期則停止搜索解析到此結(jié)束.而如果本機沒有找到DNS緩存,則瀏覽器會發(fā)起一個DNS的系統(tǒng)調(diào)用,就會向本地配置的首選DNS服務(wù)器發(fā)起域名解析請求(通過的是UDP協(xié)議向DNS的53端口發(fā)起請求,這個請求是遞歸的請求,也就是運營商的DNS服務(wù)器必須得提供給我們該域名的IP地址),運營商的DNS服務(wù)器首先查找自身的緩存,找到對應(yīng)的條目,且沒有過期,則解析成功。如果沒有找到對應(yīng)的條目,則有運營商的DNS代我們的瀏覽器發(fā)起迭代DNS解析請求,它首先是會找根域的DNS的IP地址(這個DNS服務(wù)器都內(nèi)置13臺根域的DNS的IP地址),找打根域的DNS地址,就會向其發(fā)起請求(請問這個域名的IP地址是多少???),根域發(fā)現(xiàn)這是一個頂級域com域的一個域名,于是就告訴運營商的DNS我不知道這個域名的IP地址,但是我知道com域的IP地址,你去找它去,于是運營商的DNS就得到了com域的IP地址,又向com域的IP地址發(fā)起了請求(請問這個域名的IP地址是多少?),com域這臺服務(wù)器告訴運營商的DNS我不知道這個域名的IP地址,但是我知道這個域的DNS地址,你去找它去,于是運營商的DNS又向這個域名的DNS地址(這個一般就是由域名注冊商提供的,像萬網(wǎng),新網(wǎng)等)發(fā)起請求,這個時候域的DNS服務(wù)器一查,誒,果真在我這里,于是就把找到的結(jié)果發(fā)送給運營商的DNS服務(wù)器,這個時候運營商的DNS服務(wù)器就拿到了這個域名對應(yīng)的IP地址,并返回給Windows系統(tǒng)內(nèi)核,內(nèi)核又把結(jié)果返回給瀏覽器,終于瀏覽器拿到了對應(yīng)的IP地址,該進行一步的動作了。發(fā)起TCP的3次握手拿到域名對應(yīng)的IP地址之后,User-Agent(一般是指瀏覽器)會以一個隨機端口(1024<端口<65535)向服務(wù)器的WEB程序(常用的有httpd,nginx等)80端口發(fā)起TCP的連接請求。這個連接請求(原始的http請求經(jīng)過TCP/IP4層模型的層層封包)到達服務(wù)器端后(這中間通過各種路由設(shè)備,局域網(wǎng)內(nèi)除外),進入到網(wǎng)卡,然后是進入到內(nèi)核的TCP/IP協(xié)議棧(用于識別該連接請求,解封包,一層一層的剝開),還有可能要經(jīng)過Netfilter防火墻(屬于內(nèi)核的模塊)的過濾,最終到達WEB程序(本文就以Nginx為例),最終建立了TCP/IP的連接。2.2.2服務(wù)器響應(yīng)將單機連成網(wǎng)絡(luò),如將A與B連成網(wǎng)絡(luò),則可以使它們之間提供服務(wù),如A向B提供服務(wù)。常見的服務(wù)是文件共享,F(xiàn)TP文件下載等。我們把提供(響應(yīng))服務(wù)的計算機稱作服務(wù)器(Server),接受(請求)服務(wù)的計算機稱作客戶機(Client),也叫工作站(Workstations)??蛻魴C/服務(wù)器程序的工作原理如圖2所示。服務(wù)器和客戶機的角色可以轉(zhuǎn)換。一臺計算機,可以對自己提供服務(wù),這時它既是服務(wù)器,也是客戶機。如,計算機A把自己的文件夾a共享,然后在網(wǎng)絡(luò)上找到A,則可以下載a,即自己對自己提供了服務(wù),自己請求并響應(yīng)了服務(wù)??蛻魴C/服務(wù)器的這種計算機間的協(xié)作方式,稱為C/S方式,或C/S架構(gòu)。C/S程序分為兩部分:服務(wù)器端和客戶機端,分別稱為服務(wù)器端程序(或服務(wù)程序)和客戶端程序(或客戶程序)。對于客戶端程序,對每一個客戶機,也都要分別安裝,這一點與單機程序的分發(fā)相同,也很麻煩。但是,安裝好了客戶端程序后,就可以通過通信線路與服務(wù)器交互,或通過服務(wù)器,與其他客戶機通信。典型的例子是大家常用的聊天程序QQ。2.3HTML5的新特性2.3.1新的文檔類型(NewDoctype)HTML5簡化了文檔類型的聲明方式。HTML5的聲明方式為:<!DOCTYPEhtml>。而之前的文檔類型的聲明方式是非常復(fù)雜,并且難以記憶的,比如XHTML1.0的文檔類型是:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd">2.3.2腳本和鏈接無需type在HTML4或XHTML中,你需要用下面的幾行代碼來給你的網(wǎng)頁添加CSS和JavaScript文件。<linkrel="stylesheet"href="stylesheet.css"type="text/css"/><scripttype="text/javascript"src="script.js"></script>而在HTML5中,你不再需要指定type屬性。因此,代碼可以簡化如下:<linkrel="stylesheet"href="stylesheet.css"/><scriptsrc="script.js"></script>2.3.3更加語義化的元素HTML5新增的一些更具有語義化的新標簽來替代<div>標簽,但它們并不提供額外的功能。這些新增的標簽是:<article>、<section>、<aside>、<hgroup>、<header>,<footer>、<nav>、<time>、<mark>等。2.3.4占位符(Placeholder)在HTML4或XHTML中,一般需要用JavaScript來給文本框添加占位符。比如:通過腳本設(shè)置,當用戶開始輸入時,文本框中的文字就消失。而在HTML5中,新增的“placeholder”功能可以很簡單的解決這個問題。2.3.5Audio和Video支持在HTML5之前,網(wǎng)頁通常需要依靠第三方插件來渲染音頻。而在HTML5中,<audio>元素被引進來后,我們可以使用audio元素來渲染音頻。在HTML5中,不僅新增渲染音頻的元素,同時也新增了支持視頻的元素video。2.3.6離線&存儲IndexedDB是一個為了能夠在客戶端存儲可觀數(shù)量的結(jié)構(gòu)化數(shù)據(jù),并且在這些數(shù)據(jù)上使用索引進行高性能檢索的API。雖然DOM存儲對于存儲少量數(shù)據(jù)是非常有用的,但是它對大量結(jié)構(gòu)化數(shù)據(jù)的存儲就顯得力不從心了。IndexedDB則提供了這樣的一個解決方案。2.3.7HTML5canvas<canvas>是HTML5新增的元素,可使用JavaScript腳本來繪制圖形。例如:畫圖,合成照片,創(chuàng)建動畫甚至實時視頻處理與渲染。2.4.HTML5在公安工作中的應(yīng)用現(xiàn)狀在移動設(shè)備開發(fā)HTML5應(yīng)用只有兩種方法,要不就是全使用HTML5的語法,要不就是僅使用JavaScript引擎。JavaScript引擎的構(gòu)建方法讓制作手機網(wǎng)頁游戲成為可能。由于界面層很復(fù)雜,已預(yù)訂了一個UI工具包去使用。純HTML5手機應(yīng)用運行緩慢并錯漏百出,但優(yōu)化后的效果會好轉(zhuǎn)。盡管不是很多人愿意去做這樣的優(yōu)化,但依然可以去嘗試。HTML5手機應(yīng)用的最大優(yōu)勢就是可以在網(wǎng)頁上直接調(diào)試和修改。原生應(yīng)用的開發(fā)人員可能需要花費非常大的力氣才能達到HTML5的效果,不斷地重復(fù)編碼、調(diào)試和運行,這是首先得解決的一個問題?,F(xiàn)在html5的應(yīng)用已經(jīng)相當廣泛,未來移動互聯(lián)網(wǎng)都需要用到html5開發(fā)應(yīng)用,當前html5在各行各業(yè)中運用交為廣泛,但是在公安系統(tǒng)中使用任然較少,所以本次設(shè)計為公安系統(tǒng)添加不少方便。2.5.一個HTML5警務(wù)知識查詢系統(tǒng)當我們接受到畢業(yè)設(shè)計后,在項目運行的全過程中充滿了不確定因素,只有有效的運用項目管理的科學(xué)和藝術(shù),才有可能使項目取得成功。對以上方面要想達到有效的管理水平,必須有一套科學(xué)的管理方法,但是即使有了科學(xué)的管理方法,由于項目干系人之間的溝通、協(xié)作不到位,往往達不到預(yù)期的結(jié)果。鑒于這種情況我們開發(fā)一套項目管理協(xié)作支撐系統(tǒng),旨在為項目干系人提供一個交流、協(xié)作以及項目的進度跟蹤監(jiān)控、項目的質(zhì)量控制、項目相關(guān)資源的管理的軟件平臺,從而提高項目管理水平,實現(xiàn)了工作的協(xié)同化、提高了工作效率。二、系統(tǒng)的設(shè)計(UML圖,模塊、時序圖,功能函數(shù)的表格)2.1.模塊劃分2.1.1用戶管理菜單:系統(tǒng)管理--用戶管理--警員管理描述:警員管理是將所有該系統(tǒng)的用戶信息錄入系統(tǒng),包括警員編號(唯一,系統(tǒng)登錄使用警員編號,密碼默認為1,用戶首次登錄之后自行修改密碼)、姓名、部門、所屬轄區(qū);2.1.2色管理菜單:系統(tǒng)管理--用戶管理--角色管理描述:角色管理是創(chuàng)建角色、添加角色成員、修改角色權(quán)限;2.1.3礎(chǔ)數(shù)據(jù)管理菜單:系統(tǒng)管理--基礎(chǔ)數(shù)據(jù)描述:基礎(chǔ)數(shù)據(jù)管理包括系統(tǒng)中需要的樓宇數(shù)據(jù)、社區(qū)數(shù)據(jù)、部門數(shù)據(jù)的錄入修改;2.1.4限管理菜單:系統(tǒng)管理--權(quán)限管理描述:系統(tǒng)所有權(quán)限,暫時可不關(guān)系2.1.5備管理菜單:警務(wù)報備--報備管理描述:警務(wù)報備管理,系統(tǒng)主要功能之一,添加入口是菜單節(jié)點是“報備管理”;節(jié)點“報備明細”、“報備報表”是查詢?nèi)肟冢蝗霊艄芾淼韧?.1.6管理菜單:入戶管理--入戶管理描述:入戶管理,系統(tǒng)主要功能之一,添加入口是菜單節(jié)點是“入戶錄入”;節(jié)點“入戶報表”是查詢?nèi)肟冢?.2.用戶界面的設(shè)計本頁面用于用戶登錄,包含兩個文本框,登錄、注冊按鈕管理員:輸入管理員用戶名,用戶名長度限制10-20位密碼:密文用戶點擊登錄,后臺進行用戶名和密碼驗證,正確:正常登錄,并進入默認頁面錯誤:彈窗提示用戶:用戶名或密碼錯誤,請重新輸入!2.3.系統(tǒng)功能設(shè)計用戶:管理員。點擊項目計劃信息查看。進入后臺界面后,點擊人員系統(tǒng)下面的人員信息查看,可以進行相應(yīng)的操作。三、系統(tǒng)的實現(xiàn)3.1.開發(fā)環(huán)境HTML5是用于取代1999年所制定的HTML4.01和XHTML1.0標準的HTML標準版本,現(xiàn)在仍處于發(fā)展階段,但大部分瀏覽器已經(jīng)支持某些HTML5技術(shù)。HTML5有兩大特點:首先,強化了Web網(wǎng)頁的表現(xiàn)性能。其次,追加了本地數(shù)據(jù)庫等Web應(yīng)用的功能。廣義論及HTML5時,實際指的是包括HTML、CSS和JavaScript在內(nèi)的一套技術(shù)組合。它希望能夠減少瀏覽器對于需要插件的豐富性網(wǎng)絡(luò)應(yīng)用服務(wù)(plug-in-basedrichinternetapplication,RIA),如AdobeFlash、MicrosoftSilverlight,與OracleJavaFX的需求,并且提供更多能有效增強網(wǎng)絡(luò)應(yīng)用的標準集。3.2.用戶界面的實現(xiàn)實現(xiàn)這個界面非常簡單,以前就學(xué)過靜態(tài)網(wǎng)頁的開發(fā),雖然學(xué)的不精,但還是懂一些的。這次主要是實現(xiàn)對用戶名,密碼的驗證,即驗證用戶名和密碼是否為空3.3.腳本實現(xiàn)與主要代碼<linkhref="./css/login.css"rel="stylesheet"type="text/css"><scripttype="text/javascript">functionloginClick(){varname=document.login.username.value;varpwd=document.login.password.value;if(name==null||name.length==0){alert("用戶名不能為空!");return;}if(pwd==null||pwd.length==0){alert("密碼不能為空!");return;}document.login.submit();}</script></head><body><tableclass="login_tb1"><tralign="center"valign="middle"><tdheight="100%"><tableclass="login_tb2"cellSpacing=0cellPadding=0border=0align="center"><trvalign="middle"><tdclass="login_td1"colSpan=2><fontface="黑體"size="4px"color="#196ed1">警務(wù)知識查詢系統(tǒng)—用戶登錄</font></td></tr><tr><tdwidth="203"><imgheight="200"width="202"src="./images/login_Page/loginPage_02.jpg"alt="此處顯示登錄圖片"/></td><tdclass="login_td2"><formaction="LoginJsp.jsp"name="login"method="post"><table><tr><tdwidth="66"height="20"class="login_td">登錄名:</td><tdwidth="115"height="20"class="login_td"><inputclass="login_input"type="text"name="username"></td><td></td></tr><tr><tdheight="20"class="login_td">密碼:</td><tdheight="20"class="login_td"><inputtype="password"name="password"class="login_input"></td><td></td></tr></table></form></td></tr><tr><tdcolSpan=2style="background-image:url(images/login_Page/loginPage_04.jpg)"height=56align="center"class="login_td>版權(quán)所有</td></tr></table></td></tr></table>3.4.測試(黑盒、白盒)軟件測試(英語:SoftwareTesting),描述一種用來促進鑒定軟件的正確性、完整性、安全性和質(zhì)量的過程。換句話說,軟件測試是一種實際輸出與預(yù)期輸出之間的審核或者比較過程。軟件測試的經(jīng)典定義是:在規(guī)定的條件下對程序進行操作,以發(fā)現(xiàn)程序錯誤,衡量軟件質(zhì)量,并對其是否能滿足設(shè)計要求進行評估的過程。軟件測試分為黑盒測試和白盒測試兩種。3.4.1白盒測試白盒測試又稱結(jié)構(gòu)測試、透明盒測試、邏輯驅(qū)動測試或基于代碼的測試。白盒測試是一種測試用例設(shè)計方法,盒子指的是被測試的軟件,白盒指的是盒子是可視的,你清楚盒子內(nèi)部的東西以及里面是如何運作的。"白盒"法全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進行測試。"白盒"法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測試數(shù)據(jù)。貫穿程序的獨立路徑數(shù)是天文數(shù)字。采用什么方法對軟件進行測試呢?常用的軟件測試方法有兩大類:靜態(tài)測試方法和動態(tài)測試方法。其中軟件的靜態(tài)測試不要求在計算機上實際執(zhí)行所測程序,主要以一些人工的模擬技術(shù)對軟件進行分析和測試;而軟件的動態(tài)測試是通過輸入一組預(yù)先按照一定的測試準則構(gòu)造的實例數(shù)據(jù)來動態(tài)運行程序,而達到發(fā)現(xiàn)程序錯誤的過程。在動態(tài)分析技術(shù)中,最重要的技術(shù)是路徑和分支測試。下面要介紹的六種覆蓋測試方法屬于動態(tài)分析方法。測試方法白盒測試的測試方法有代碼檢查法、靜態(tài)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、路徑覆蓋和程序變異。白盒測試法的覆蓋標準有邏輯覆蓋、循環(huán)覆蓋和基本路徑測試。其中邏輯覆蓋包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。六種覆蓋標準發(fā)現(xiàn)錯誤的能力呈由弱到強的變化:1.語句覆蓋每條語句至少執(zhí)行一次。2.判定覆蓋每個判定的每個分支至少執(zhí)行一次。3.條件覆蓋每個判定的每個條件應(yīng)取到各種可能的值。4.判定/條件覆蓋同時滿足判定覆蓋條件覆蓋。5.條件組合覆蓋每個判定中各條件的每一種組合至少出現(xiàn)一次。6.路徑覆蓋使程序中每一條可能的路徑至少執(zhí)行一次。要求1.保證一個模塊中的所有獨立路徑至少被使用一次。2.對所有邏輯值均需測試true和false。3.在上下邊界及可操作范圍內(nèi)運行所有循環(huán)。4.檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性。目的通過檢查軟件內(nèi)部的邏輯結(jié)構(gòu),對軟件中的邏輯路徑進行覆蓋測試;在程序不同地方設(shè)立檢查點,檢查程序的狀態(tài),以確定實際運行狀態(tài)與預(yù)期狀態(tài)是否一致。特點依據(jù)軟件設(shè)計說明書進行測試、對程序內(nèi)部細節(jié)的嚴密檢驗、針對特定條件設(shè)計測試用例、對軟件的邏輯路徑進行覆蓋測試。實施步驟1.測試計劃階段:根據(jù)需求說明書,制定測試進度。2.測試設(shè)計階段:依據(jù)程序設(shè)計說明書,按照一定規(guī)范化的方法進行軟件結(jié)構(gòu)劃分和設(shè)計測試用例。3.測試執(zhí)行階段:輸入測試用例,得到測試結(jié)果。4.測試總結(jié)階段:對比測試的結(jié)果和代碼的預(yù)期結(jié)果,分析錯誤原因,找到并解決錯誤。優(yōu)缺點優(yōu)點1.迫使測試人員去仔細思考軟件的實現(xiàn)2.可以檢測代碼中的每條分支和路徑3.揭示隱藏在代碼中的錯誤4.對代碼的測試比較徹底5.最優(yōu)化缺點1.昂貴2.無法檢測代碼中遺漏的路徑和數(shù)據(jù)敏感性錯誤3.不驗證規(guī)格的正確性局限但即使每條路徑都測試了仍然可能有錯誤??赡艹霈F(xiàn)的情況如下:窮舉路徑測試決不能查出程序違反了設(shè)計規(guī)范,即程序本身是個錯誤的程序。窮舉路徑測試不可能查出程序中因遺漏路徑而出錯。窮舉路徑測試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯誤。工具挑選白盒測試主要用在具有高可靠性要求的軟件領(lǐng)域,例如:軍工軟件、航天航空軟件、工業(yè)控制軟件等等。白盒測試工具在選購時應(yīng)當主要是對開發(fā)語言的支持、代碼覆蓋的深度、嵌入式軟件的測試和測試的可視化等。語言支持白盒測試工具是對源代碼進行的測試,測試的主要內(nèi)容包括詞法分析與語法分析、靜態(tài)錯誤分析、動態(tài)檢測等。但是對于不同的開發(fā)語言,測試工具實現(xiàn)的方式和內(nèi)容差別是較大的。測試工具主要支持的開發(fā)語言包括:標準C、C++、VisualC++、Java和VisualJ++等。覆蓋深度從覆蓋源程序語句的詳盡程度分析,邏輯覆蓋標準包括以下不同的覆蓋標準:語句覆蓋、判定覆蓋、條件覆蓋、條件判定組合覆蓋、多條件覆蓋和修正判定條件覆蓋。1.語句覆蓋為了暴露程序中的錯誤,程序中的每條語句至少應(yīng)該執(zhí)行一次。因此語句覆蓋(StatementCoverage)的含義是:選擇足夠多的測試數(shù)據(jù),使被測程序中每條語句至少執(zhí)行一次。語句覆蓋是很弱的邏輯覆蓋。2.判定覆蓋比語句覆蓋稍強的覆蓋標準是判定覆蓋(DecisionCoverage)。判定覆蓋的含義是:設(shè)計足夠的測試用例,使得程序中的每個判定至少都獲得一次“真值”或“假值”,或者說使得程序中的每一個取“真”分支和取“假”分支至少經(jīng)歷一次,因此判定覆蓋又稱為分支覆蓋。3.條件覆蓋在設(shè)計程序中,一個判定語句是由多個條件組合而成的復(fù)合判定。為了更徹底地實現(xiàn)邏輯覆蓋,可以采用條件覆蓋(ConditionCoverage)的標準。條件覆蓋的含義是:構(gòu)造一組測試用例,使得每一判定語句中每個邏輯條件的可能值至少滿足一次。4.多條件覆蓋。多條件覆蓋也稱條件組合覆蓋,它的含義是:設(shè)計足夠的測試用例,使得每個判定中條件的各種可能組合都至少出現(xiàn)一次。顯然滿足多條件覆蓋的測試用例是一定滿足判定覆蓋、條件覆蓋和條件判定組合覆蓋的。5.修正條件判定覆蓋。修正條件判定覆蓋是由歐美的航空/航天制造廠商和使用單位聯(lián)合制定的“航空運輸和裝備系統(tǒng)軟件認證標準”,在國外的國防、航空航天領(lǐng)域應(yīng)用廣泛。這個覆蓋度量需要足夠的測試用例來確定各個條件能夠影響到包含的判定的結(jié)果。它要求滿足兩個條件:首先,每一個程序模塊的入口和出口點都要考慮至少要被調(diào)用一次,每個程序的判定到所有可能的結(jié)果值要至少轉(zhuǎn)換一次;其次,程序的判定被分解為通過邏輯操作符(and、or)連接的布爾條件,每個條件對于判定的結(jié)果值是獨立的。不同的測試工具對于代碼的覆蓋能力也是不同的,通常能夠支持修正條件判定覆蓋的測試工具價格是極其昂貴的。嵌入式測試對于嵌入式軟件的測試,我們還需要一方面進一步考慮測試工具對于嵌入式操作系統(tǒng)的支持能力,例如DOS、Vxworks、Neculeus、Linux和WindowsCE等;另一方面還需要考慮測試工具對于硬件平臺的支持能力,包括是否支持所有64/32/16位CPU和MCU,是否可以支持PCI/VME/CPCI總線。可視化白盒測試是工作量巨大并且枯燥的工作,可視化的設(shè)計對于測試來說是十分重要的。在選購白盒測試工具時,應(yīng)當考慮該款測試工具的可視化是否良好,例如:測試過程中是否可以顯示覆蓋率的函數(shù)分布圖和上升趨勢圖,是否使用不同的顏色區(qū)分已執(zhí)行和未執(zhí)行的代碼段顯示分配內(nèi)存情況實時圖表等,這些對于測試效率和測試質(zhì)量的提高是具有很大的作用的。測試方法白盒測試的測試方法中運用最為廣泛的是基本路徑測試法。基本路徑測試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計測試用例的方法。設(shè)計出的測試用例要保證在測試中程序的每個可執(zhí)行語句至少執(zhí)行一次。在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計測試用例。包括以下4個步驟和一個工具方法:1.程序的控制流圖:描述程序控制流的一種圖示方法。2.程序圈復(fù)雜度:McCabe復(fù)雜性度量。從程序的環(huán)路復(fù)雜性可導(dǎo)出程序基本路徑集合中的獨立路徑條數(shù),這是確定程序中每個可執(zhí)行語句至少執(zhí)行一次所必須的測試用例數(shù)目的上界。3.導(dǎo)出測試用例:根據(jù)圈復(fù)雜度和程序結(jié)構(gòu)設(shè)計用例數(shù)據(jù)輸入和預(yù)期結(jié)果。4.準備測試用例:確?;韭窂郊械拿恳粭l路徑的執(zhí)行。工具方法1.圖形矩陣:是在基本路徑測試中起輔助作用的軟件工具,利用它可以實現(xiàn)自動地確定一個基本路徑集。2.程序的控制流圖:描述程序控制流的一種圖示方法。3.圓圈稱為控制流圖的一個結(jié)點,表示一個或多個無分支的語句或源程序語句。流圖只有二種圖形符號:1.圖中的每一個圓稱為流圖的結(jié)點,代表一條或多條語句。2.流圖中的箭頭稱為邊或連接,代表控制流,任何過程設(shè)計都要被翻譯成控制流圖。在將程序流程圖簡化成控制流圖時,應(yīng)注意:1.在選擇或多分支結(jié)構(gòu)中,分支的匯聚處應(yīng)有一個匯聚結(jié)點。2.邊和結(jié)點圈定的區(qū)域叫做區(qū)域,當對區(qū)域計數(shù)時,圖形外的區(qū)域也應(yīng)記為一個區(qū)域。步驟基本路徑測試法的步驟:第一步:畫出控制流圖流程圖用來描述程序控制結(jié)構(gòu)。可將流程圖映射到一個相應(yīng)的流圖(假設(shè)流程圖的菱形決定框中不包含復(fù)合條件)。在流圖中,每一個圓,稱為流圖的結(jié)點,代表一個或多個語句。一個處理方框序列和一個菱形決測框可被映射為一個結(jié)點,流圖中的箭頭,稱為邊或連接,代表控制流,類似于流程圖中的箭頭。一條邊必須終止于一個結(jié)點,即使該結(jié)點并不代表任何語句(例如:if-else-then結(jié)構(gòu))。由邊和結(jié)點限定的范圍稱為區(qū)域。計算區(qū)域時應(yīng)包括圖外部的范圍。第二步:計算圈復(fù)雜度圈復(fù)雜度是一種為程序邏輯復(fù)雜性提供定量測度的軟件度量,將該度量用于計算程序的基本的獨立路徑數(shù)目,為確保所有語句至少執(zhí)行一次的測試數(shù)量的上界。獨立路徑必須包含一條在定義之前不曾用到的邊。有以下三種方法計算圈復(fù)雜度:流圖中區(qū)域的數(shù)量對應(yīng)于環(huán)型的復(fù)雜性;給定流圖G的圈復(fù)雜度V(G),定義為V(G)=E-N+2,E是流圖中邊的數(shù)量,N是流圖中結(jié)點的數(shù)量;給定流圖G的圈復(fù)雜度V(G),定義為V(G)=P+1,P是流圖G中判定結(jié)點的數(shù)量。第三步:導(dǎo)出測試用例根據(jù)上面的計算方法,可得出四個獨立的路徑。(一條獨立路徑是指,和其他的獨立路徑相比,至少引入一個新處理語句或一個新判斷的程序通路。V(G)值正好等于該程序的獨立路徑的條數(shù)。)路徑1:4-14路徑2:4-6-7-14路徑3:4-6-8-10-13-4-14路徑4:4-6-8-11-13-4-14根據(jù)上面的獨立路徑,去設(shè)計輸入數(shù)據(jù),使程序分別執(zhí)行到上面四條路徑。3.4.2黑盒測試黑盒測試概述黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,它是在已知產(chǎn)品所應(yīng)具有的功能,通過測試來檢測每個功能是否都能正常使用,在測試時,把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試方法主要有等價類劃分、邊值分析、因—果圖、錯誤推測等,主要用于軟件確認測試?!昂诤小狈ㄖ塾诔绦蛲獠拷Y(jié)構(gòu)、不考慮內(nèi)部邏輯結(jié)構(gòu)、針對軟件界面和軟件功能進行測試。“黑盒”法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進行測試。白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗程序中的每條通路是否都有能按預(yù)定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅(qū)動、基路測試等,主要用于軟件驗證?!鞍缀小狈ㄈ媪私獬绦騼?nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進行測試。“白盒”法是窮舉路徑測試。軟件人員使用白盒測試方法,主要想對程序模塊進行如下的檢查:1.對程序模塊的所有獨立的執(zhí)行路徑至少測試一次;2.對所有的邏輯判定,取“真”與取“假”的兩種情況都至少測試一次;3.在循環(huán)的邊界和運行界限內(nèi)執(zhí)行循環(huán)體;4.測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等。具體包含的邏輯覆蓋有:–語句覆蓋–判定覆蓋–條件覆蓋–判定-條件覆蓋–條件組合覆蓋–路徑覆蓋。白盒測試技術(shù)(WhiteBoxTesting):深入到代碼一級的測試,使用這種技術(shù)發(fā)現(xiàn)問題最早,效果也是最好的。該技術(shù)主要的特征是測試對象進入了代碼內(nèi)部,根據(jù)開發(fā)人員對代碼和對程序的熟悉程度,對有需要的部分進行在軟件編碼階段,開發(fā)人員根據(jù)自己對代碼的理解和接觸所進行的軟件測試叫做白盒測試。這一階段測試以軟件開發(fā)人員為主,在JAVA平臺使用Xunit系列工具進行測試,Xunit測試工具是類一級的測試工具對每一個類和該類的方法進行測試。黑盒測試技術(shù)(BlackBoxTesting):黑盒測試的內(nèi)容主要有以下幾個方面,但是主要還是功能部分。主要是覆蓋全部的功能,可以結(jié)合兼容,性能測試等方面進行,根據(jù)軟件需求,設(shè)計文檔,模擬客戶場景隨系統(tǒng)進行實際的測試,這種測試技術(shù)是使用最多的測試技術(shù)涵蓋了測試的方方面面,可以考慮以下方面:1.正確性(Correctness):計算結(jié)果,命名等方面。2.可用性(Usability):是否可以滿足軟件的需求說明。3.邊界條件(BoundaryCondition):輸入部分的邊界值,就是使用一般書中說的等價類劃分,試試最大最小和非法數(shù)據(jù)等等。4.性能(Performance):正常使用的時間內(nèi)系統(tǒng)完成一個任務(wù)需要的時間,多人同時使用的時候響應(yīng)時間在可以接受范圍內(nèi)。J2EE技術(shù)實現(xiàn)的系統(tǒng)在性能方面更是需要照顧的,一般原則是3秒以下接受,3-5秒可以接受,5秒以上就影響易用性了。如果在測試過程中發(fā)現(xiàn)性能問題,修復(fù)起來是非常艱難的,因為這常常意味著程序的算法不好,結(jié)構(gòu)不好,或者設(shè)計有問題。因此在產(chǎn)品開發(fā)的開始階段,就要考慮到軟件的性能問題5.壓力測試(Stress):多用戶情況可以考慮使用壓力測試工具,建議將壓力和性能測試結(jié)合起來進行。如果有負載平衡的話還要在服務(wù)器端打開監(jiān)測工具,查看服務(wù)器CPU使用率,內(nèi)存占用情況,如果有必要可以模擬

溫馨提示

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

最新文檔

評論

0/150

提交評論