第一篇:QTP自帶的飛機訂票程序產(chǎn)品規(guī)格說明書
QTP自帶的飛機訂票程序
產(chǎn)品規(guī)格說明書
一.產(chǎn)品介紹
QTP是HP公司開發(fā)的功能自動化測試工具。相對于手工測試,QTP自動化測試比人工測試快得多,同時可以避免人工測試的錯誤,減輕了測試的工作量,給測試人來帶來了極大的便利。隨著測試技術(shù)的發(fā)展,自動化測試逐漸成為測試的一個重要測試工具。
二.產(chǎn)品面向的用戶群體
專業(yè)的測試人員、企業(yè)公司測試組以及測試團隊 三.產(chǎn)品應(yīng)當遵循的標準和規(guī)范
遵守軟件相關(guān)的標準、規(guī)范建立一套軟件測試的管理和評判體系,從根本上保證軟件測試的質(zhì)量,有一定的行業(yè)規(guī)范和操作規(guī)范,腳本生成簡單易懂,錯誤糾正符合常規(guī)測試人員的測試習(xí)慣,操作易于上手。
四.產(chǎn)品的功能簡介
QTP自帶的飛機訂票程序包括登錄、訂票、刪除等一系列功能操作,運用QTP自動化測試工具來進行登錄測試和訂票測試,通過檢查點來實現(xiàn)對各種測試用例的測試,同時可以對操作進行錄制和回放,并生成腳本,便于測試人員對產(chǎn)品進行檢查。
五.操作說明
QTP自帶的飛機訂票程序,可實現(xiàn)登錄測試和訂票測試。
QTP自帶的飛機訂票程序,小圖標為飛行圖標。如圖1-01
圖1-01
登錄模塊
打開后可以看到登錄界面,登錄界面——兩個文本框,三個按鈕 如圖1-02
圖1-02 Agent Name文本框
1.登錄框可以輸入的登錄名必須大于4個字符,小于10個字符。
當輸入的字符小于4個時,不能登錄成功
當輸入的字符大于10個時,則光標將移動到所輸入字符的初始端,如果此時繼續(xù)輸入字符,那么所輸入的字符將會逐漸覆蓋原先輸入的 字符
2.輸入的字符可以是數(shù)字,字母,漢字以及特殊符號。3.所輸入的字符均為明文,可以看得見。4.登錄名不固定可以自主輸入。
Password文本框
1.密碼框中可以輸入的字符可以是數(shù)字,字母,漢字以及特殊符號。2.密碼框中可以輸入的字符必須大于4個字符,最多只能有8個字符。3.所輸入的字符均加密不可見,用戶所看到的只是星號(*)。4.密碼固定為mercury,不區(qū)分大小寫。OK按鈕
登陸窗口中沒有輸入任何內(nèi)容,或者是只輸入密碼時,點擊此按鈕會提示。如圖1-03
圖1-03
2.當?shù)卿浢斎氲淖址∮?個時,點擊此按鈕會提示。如圖1-04
圖1-04 3.當輸入符合規(guī)格的登錄名時,并沒有輸入密碼時,點擊此按鈕會提示。如圖1-05
圖1-05 4.當輸入符合規(guī)格的登錄名,及任意輸入大于4個字符的密碼時,點擊按鈕會提示。如圖1-06
圖1-06 5.當輸入符合規(guī)格的登錄名,并輸入密碼長度小于4個字符時,點擊此按鈕會提示。如圖1-07
圖1-07 6.當在文本框中輸入的字符均不符合時,點擊此按鈕將會提示出以下警示框。如圖1-08
圖1-08 7.當輸入符合規(guī)格的登錄名,并輸入Help中所提示的密碼(不區(qū)分大小寫時,則會登錄成功。如圖1-09
圖1-09
Cancel按鈕
點擊此按鈕整個登錄窗口都會關(guān)閉,如果在點擊按鈕之前的路窗口 中輸入的有內(nèi)容,則將不會被保存。
Help按鈕
不論登錄窗口中是否輸入有字符,點擊此按鈕都會提示。如圖1-08
圖1-08
訂票模塊
登陸成功后可以看到訂票界面。如圖2-01
圖2-01
日期選擇
時間的格式為月/日/年,其中空格處必須輸入兩個數(shù)字,其他字符均不能識別。
當輸入的日期不符合常規(guī)或者輸入的數(shù)字不均為兩個時,點擊飛行班機圖標。如圖2-02,會出現(xiàn)提示框。如圖2-03
圖2-02
圖2-03
當輸入的日期時間過早,則會出現(xiàn)提示框。如圖2-04
圖2-04 當輸入的日期沒有對應(yīng)的航班,點擊飛行班機圖標時,則會出現(xiàn)對話框。如圖2-05
圖2-05 當輸入的時間有對應(yīng)的航班,點擊飛行班機圖標時,則會出現(xiàn)相應(yīng)對話框可供選擇具體航班。如圖2-06
圖2-06 起始地和目的地
均有下拉列表,可以自行選擇,但只能選擇下拉列表里所給出的地點。起始地 如圖2-07,目的地 如圖2-08。
圖2-07
圖2-08
當選擇相應(yīng)的航班,點擊飛行班機圖標時。對應(yīng)在訂票窗口中的航班號,登機時間,到達時間,航線,票數(shù),所價錢以及總計都會自動生成在對話框中。如圖2-09
圖2-09
種類選擇class 可以自行選擇 頭等艙first,經(jīng)濟艙economy,商務(wù)艙business,如圖2-10。同時票價會隨著選擇自行改動。
圖2-10
姓名填寫Name 在選票的同時可以輸入自己的姓名,如圖2-11
圖2-11
選擇所買票的張數(shù)點擊提交訂單Insert Order,則訂票成功,且自動生成訂單號,同時可以刪除訂單Delete Order。
快捷按鈕
訂票窗口不但可以訂票,同時可以查看某時間段的訂票比例圖。如圖2-12
圖2-12 查看Agents Order Report,在Agents Order Report 記錄著訂票人的信息,訂票信息,以及總?cè)藬?shù),總票數(shù)和總價。如圖2-13
圖2-13 菜單欄
可以根據(jù)自己的需要進行有機選擇和調(diào)整,進行新建、查看、添加、刪除等操作,同時對某些疑問可以在help中尋求幫助。
附:
登錄模塊中,當?shù)卿洿螖?shù)過多時,將會有警示框提示錯誤次數(shù)太多,不能再登錄了。
訂票模塊中,菜單欄和快捷圖形按鈕可實現(xiàn)的功能基本相同,都可以進行新建、查看、添加、刪除等操作,同時對某些疑可尋求幫助。
第二篇:QTP自帶的飛機訂票功能測試報告
QTP自帶的飛機訂票功能測試報告
課題名稱
飛機訂票系統(tǒng)功能測試報告 系/專 業(yè)
*******學(xué)院 班
級
***** 學(xué)
號
***** 學(xué)生姓名
*****
指導(dǎo)教師:*****
測試目標
了解熟悉QTP自動化測試工具及其基本功能,掌握QTP自動化測試的基本測試步驟,能運用QTP測試工具對系統(tǒng)進行簡單的自動化測試。在QTP測試中能寫出基本的腳本語言,以及能夠?qū)δ_本語句進行編寫,能夠測試登錄功能、訂票功能。其中有判斷訂票是否成功、添加檢查點及循環(huán)所有航班能否成功測試。
測試內(nèi)容
熟悉了解飛機訂票系統(tǒng)的基本運行流程,從登錄到訂票、查詢、刪除等一系列基本功能的操作,并能夠?qū)ζ渲械囊恍┕δ苓M行測試工作。此次飛機訂票系統(tǒng)測試內(nèi)容有登錄功能,其中登陸功能測試包含一個用戶能否正確登錄、設(shè)置參數(shù)可以進行多個用戶正確和錯誤的登錄進行測試。在訂票功能中有對訂票是否成功的測試、設(shè)置檢查點以及循環(huán)所有航班的測試。
測試原理分析
QTP主要采用的是GUI模擬人的操作。它在模擬人的操作時會通過錄制記錄操作的對象及所做的操作和順序,然后在回放時按照記錄順序操作這些對象。而在這個模擬的過程中最重要的莫過于界面對象控件的識別。
基本操作
第二步:點擊QTP的執(zhí)行文件
第二步:第一步完成后會出現(xiàn)下圖的對畫框,然后點擊”O(jiān)K”,如圖1-01;
圖1-01
第三步:選擇“Blank Test”選項,如圖1-02;
圖1-02
第四步:關(guān)閉右上角的對話框,選擇左上角的“Record”選項,如圖1-03;
圖1-03
第五步:對具體軟件程序的測試有兩種方法。第一種是錄制并且運行測試任何一個打開的基于Windows下的應(yīng)用程序,第二種是只是錄制和運行QTP軟件中打開的應(yīng)用程序。如圖1-04;
圖1-04
第六步:在“application”中點擊“+”按鈕選擇要執(zhí)行程序的文件,并點擊確定按鈕,開始錄制,如圖1-05;
圖1-05
登陸測試測試用例設(shè)計
針對登錄模塊的輸入條件:用戶名和密碼,有以下幾種情況: 1.當用戶什么也沒輸入,直接點OK按鈕,是否提示請輸入用戶名;
2.當用戶輸入正確的用戶名,沒輸入密碼,直接點擊OK按鈕,是否提示請輸入密碼;
3.對密碼進行驗證看是否設(shè)置輸入密碼的長度;
4.當輸入正確的用戶名和密碼時,點擊OK按鈕是否進入操作界面;
對登錄模塊進行測試時,盡可能全面的測試登陸功能的正常和異常情況:只要用戶名大于或等于4個字符,密碼是“mercury”,即可
登錄。
錄制與測試過
第一步:用QTP自動打開Flight Reservation系統(tǒng)的登陸界面,輸入用戶名和密碼,確定當前的操作,將訂票系統(tǒng)打開,登陸界面如圖2-01;
圖2-01 第二步:在QTP主界面中單擊“Record”,在登陸界面的文本框
中,輸入正確的用戶名和密碼,單擊“OK”按鈕,進入飛機訂票系統(tǒng)界面。在QTP主界面,單擊“Stop”按鈕,結(jié)束當前的錄制,如圖2-02;
圖2-02
錄制的腳本代碼為:
'寫一個循環(huán),讀取datatable的每一行測試用例 Dim i '定義變量i Dim outputvalue '定義變量實際得到的輸出 Dim istatus '定義變量希望得到的輸出
For i=1 to datatable.GetSheet(“Action1”).getrowcount '從第一行,讀到datatable的最后一行
Dialog(“Login”).WinEdit(“Agent Name:”).Set DataTable(“AgentName”, dtLocalSheet)Dialog(“Login”).WinEdit(“Password:”).SetSecure DataTable(“Password”, dtLocalSheet)Dialog(“Login”).WinButton(“OK”).Click Dialog(“Login”).Dialog(“Flight Reservations”).Static(“Agent name must be at least 4 characters long.”).Output CheckPoint(“Agent name must be at least 4 characters long.”)Dialog(“Login”).Dialog(“Flight Reservations”).WinButton(“確定”).Click outputvalue=datatable(“outmsg”,dtlocalsheet)'獲取該次循環(huán)的實際輸出 istatus=datatable(“status”,dtlocalsheet)'獲取該次循環(huán)的預(yù)期輸出
If outputvalue<>istatus Then Reporter.ReportEvent micFail,“登錄測試”,“實際的:”+outputvalue+“預(yù)期的:”+istatus+“不相同!” '報錯
else Reporter.ReportEvent micPass,“登錄測試”,“實際的:”+outputvalue+“預(yù)期的:”+istatus+“相同!” '報對 End If
datatable.GetSheet(“Action1”).setnextrow '獲取下一行測試用例 Next Dialog(“Login”).WinButton(“Cancel”).Click Dialog(“Login_2”).WinButton(“Cancel”).Click
測試結(jié)果
通過運用QTP對飛機訂票系統(tǒng)的測試,將已設(shè)計好的測試用例添加到QTP中,通過腳本的參數(shù)化設(shè)置,對測試用例進行自動化循環(huán)測試,如下圖2-03;
圖2-03 QTP對測試用例的自動化測試后,分別將可以登陸成功和不能登陸成功的測試用例進行測試,運行結(jié)果如圖2-04
圖2-04
訂票測試
訂票實例的前提是登錄訂票系統(tǒng)的成功,該實例是在訂票系統(tǒng)中進行訂票
操作:輸入航班日期、選擇起飛地、選擇目的地、選擇航班、輸入顧客姓名、輸入票的張數(shù)、選擇航班級別、單擊訂票按鈕,完成訂票功能。
錄制與測試過程
第一步:錄制腳本,選擇“Record”如圖(3-01);
圖3-01 第二步:在Agent Nname和Password中都輸入Mercury點擊“OK”按鈕,如圖3-02;
圖3-02 第三步:輸入飛機的時間、出發(fā)地、目的地,然后選擇“Flights”選擇航班,如圖3-03;
圖3-03
第四步:選擇要乘坐飛機的航班,然后點擊確定,如圖3-04;
圖3-04 第五步:輸入顧客的姓名、票數(shù)、票的類型、點擊“insert”,如圖3-05;
圖3-05 第六步:點擊“Stop”結(jié)束錄制過程,腳本錄制成功,如圖3-06;
圖3-06 錄制的腳本代碼為:
Dialog(“Login”).WinEdit(“Agent Name:”).Set “mercury” Dialog(“Login”).WinEdit(“Password:”).SetSecure “50d03c65bf584d4548c5df42c75a1b2ce70a1491” Dialog(“Login”).WinButton(“OK”).Click
Dim i '定義變量i
For i=1 to datatable.GetSheet(“Action1”).getrowcount '循環(huán)datatable中若干個測試用例 Window(“Flight
Reservation”).ActiveX(“MaskEdBox”).Type DataTable(“Date”, dtLocalSheet)Window(“Flight
Reservation”).WinComboBox(“Fly
From:”).Select DataTable(“FlyFrom”, dtLocalSheet)Window(“Flight
Reservation”).WinComboBox(“Fly
To:”).Select DataTable(“FlyTo”, dtLocalSheet)Window(“Flight Reservation”).WinButton(“FLIGHT”).Click ' 日期不同,起飛地不同,目的地不同,可選擇的航班是不一樣的 ' 為適應(yīng)這種不同,則需要從剛才現(xiàn)實的列表中隨機選擇一個 '則需要用到隨機函數(shù),首先要獲取列表框中的條目個數(shù)
ItemCount=Window(“Flight Table”).WinList(“From”).GetItemsCount SelectItem=RandomNumber(0,ItemCount)'從0~ItemCount中隨機選擇一個數(shù)目
Window(“Flight
Reservation”).Dialog(“Flights Reservation”).Dialog(“Flights Table”).WinList(“From”).Select SelectItem Window(“Flight Table”).WinButton(“OK”).Click Window(“Flight Reservation”).WinEdit(“Name:”).Set “l(fā)ixiao” Window(“Flight Reservation”).WinRadioButton(“Business”).Set Window(“Flight Reservation”).WinButton(“Insert Order”).Click Window(“Flight Reservation”).WinButton(“Button”).Click
datatable.GetSheet(“Action1”).setnextrow '讀取下一行 Next Window(“Flight Reservation”).Close
Reservation“).Dialog(”Flights
測試結(jié)果
通過運用QTP對飛機訂票系統(tǒng)的測試,將已設(shè)計好的測試用例添加到QTP中,通過腳本的參數(shù)化設(shè)置,對測試用例進行自動化循環(huán)測試,如下圖3-07;
圖3-07 QTP對測試用例的自動化測試后,對訂票參數(shù)的測試用例進行測試,測試結(jié)果如圖3-08
圖3-08 分析與建議
功能較少,但基本上滿足了飛機訂票的需求,但是建議一般用戶也能對系統(tǒng)進行訪問,查看自己的訂票。沒有連到外網(wǎng),只是在本機進行測試,建議在互聯(lián)網(wǎng)進行功能等測試。
飛機訂票系統(tǒng)測試小結(jié)
通過對QTP飛機訂票系統(tǒng)從需求分析到執(zhí)行測試,從錄制腳本到腳本分析結(jié)果,使得我對以前所學(xué)習(xí)的軟件測試方面的知識有了更好的理解,實踐中才能更深入的理解掌握知識。在此期間我了解和認識了軟件測試技術(shù)和QTP自動化測試工具,并且學(xué)習(xí)了QTP工具的使用?,F(xiàn)在已經(jīng)能很熟練的使用QTP測試工具。使用QTP可以加速測試的整個過程,并且建置完新版本的應(yīng)用程序后網(wǎng)站后,可以重復(fù)使用測試腳本進行測試。
第三篇:4 飛機訂票系統(tǒng)系統(tǒng)概要設(shè)計說明書
文檔編號: 版本號:V1.0
概要設(shè)計說明書
項目名稱
飛機訂票系統(tǒng) 項目負責人
何柳青 本文檔編寫者 李欣純 項目開發(fā)者 計算機081第二組
2010年11月7日 目錄
1.引言.....................................................................1
1.1 編寫目的......................................................................................................................................1 1.2 背景.............................................................................................................................................1 1.3 定義.............................................................................................................................................1 1.4參考資料.......................................................................................................................................1
2.任務(wù)概述...............................................................2
2.1目標...............................................................................................................................................2 2.2運行環(huán)境.......................................................................................................................................2
2.2.1設(shè)備........................................................................................................................2
2.2.2支持軟件................................................................................................................2 2.3需求概要.......................................................................................................................................2 2.4條件與限制...................................................................................................................................2 3.總體設(shè)計.................................................................3
3.1處理流程.......................................................................................................................................3 3.2總體結(jié)構(gòu)和模塊外部設(shè)計...........................................................................................................4
4.接口設(shè)計.................................................................4
4.1 硬件接口......................................................................................................................................4 4.2 軟件接口......................................................................................................................................4
5.數(shù)據(jù)結(jié)構(gòu)設(shè)計.............................................................5
5.1 邏輯結(jié)構(gòu)設(shè)計..............................................................................................................................5 5.2 物理結(jié)構(gòu)設(shè)計..............................................................................................................................5 5.3 數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系..............................................................................................................5
6.運行設(shè)計.................................................................5
6.1 運行模塊的組合..........................................................................................................................5 6.2 運行控制......................................................................................................................................5 6.3 運行時間......................................................................................................................................5
7.出錯處理設(shè)計.............................................................6
7.1 出錯輸出信息..............................................................................................................................6 7.2 出錯處理對策..............................................................................................................................6
8.安全保密設(shè)計.............................................................6 9.維護設(shè)計.................................................................6
1.引言
1.1 編寫目的
從該階段正式進入軟件的實際開發(fā)階段,本文檔將對《飛機訂票系統(tǒng)》的軟件功能進行描述。本階段的主要任務(wù)是把系統(tǒng)的功能需求分配給軟件結(jié)構(gòu),形成軟件的系統(tǒng)結(jié)構(gòu)圖。本概要設(shè)計說明書的目的就是進一步細化軟件設(shè)計階段得出的軟件總體概貌,把它加工成在程序細節(jié)上非常接近于源程序的軟件表示。本文檔的讀者是項目策劃、設(shè)計和評審人員。
1.2 背景
開發(fā)軟件名稱:飛機票訂系統(tǒng)。
//(1)項目任務(wù)提出者:中國民航及中國國際旅游開發(fā)公司。(2)項目開發(fā)者:何柳靑,陸銀琳,李欣純,單國英,阿依古麗
(3)項目與其他軟件,系統(tǒng)的關(guān)系:本項目采用客戶機/服務(wù)器原理,客戶端的程序是建立在Windows NT 系統(tǒng)上以Microsoft Visual C++為開發(fā)軟件的應(yīng)用程序,服務(wù)器端采用Linux 為操作系統(tǒng)的工作站,是采用Oracle 8的為開發(fā)軟件的數(shù)據(jù)庫服務(wù)程序。
1.3 定義
概要設(shè)計說明書中的專門術(shù)語有:數(shù)據(jù)結(jié)構(gòu)設(shè)計,總體設(shè)計,接口設(shè)計,運行設(shè)計,系統(tǒng)出錯處理設(shè)計。
1.4參考資料
《軟件工程導(dǎo)論》 清華大學(xué)出版社 張海藩 編著 《實用軟件工程》 清華大學(xué)出版社 鄭人杰 等 編著
《數(shù)據(jù)庫系統(tǒng)概論(第三版)》 高等教育出版社 薩師煊 王珊等編著 《實用軟件文檔寫作》 清華大學(xué)出版社 肖剛等 編著 《軟件工程》第3版 人民郵電出版社 張海藩等 編著 2.任務(wù)概述
2.1目標
該階段目的在于明確系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和軟件結(jié)構(gòu),此外總體設(shè)計還將給出內(nèi)部軟件和外部系統(tǒng)部分之間的接口定義,各個軟件模塊的功能說明,數(shù)據(jù)結(jié)構(gòu)的細節(jié)以及具體的裝配要求。
2.2運行環(huán)境
2.2.1設(shè)備
硬件最低要求:內(nèi)存128MB,硬盤20G以上PC機
2.2.2支持軟件
vc++.net 傳感器windows系列os 如 win98/me/2000pro server/xp/server2003/win7 2.3需求概要
系統(tǒng)主要的輸入輸出:
1.乘客通過登錄用戶界面輸入姓名和密碼,進行登錄,查詢信息等; 2.操作人員根據(jù)乘客的要求輸入信息到數(shù)據(jù)庫中進行相應(yīng)的查詢及修3.4.5.改;
操作人員或用戶登錄相應(yīng)的界面輸入基本信息,例如姓名,性別,年齡,身份證號等;
公告信息的輸出,公告信息的回復(fù);
航班具體情況的輸出,剩余票數(shù)的輸出,及臨時調(diào)整的輸出。
2.4條件與限制
為了評價該設(shè)計階段的設(shè)計表示的“優(yōu)劣程度”,必須遵循以下幾個準則:
(1)軟件設(shè)計應(yīng)當表現(xiàn)出層次結(jié)構(gòu),它應(yīng)巧妙地利用各個軟件部件之間的控制關(guān)系;
(2)設(shè)計應(yīng)當是模塊化的,即該軟件應(yīng)當從邏輯上被劃分成多個部件,分別實現(xiàn)各種特定功能和子功能;(3)設(shè)計最終應(yīng)當給出具體的模塊(例如子程序或過程),這些模塊就具有獨立的功能特性;
(4)應(yīng)當應(yīng)用在軟件需求分析期間得到的信息,采取循環(huán)反復(fù)的方法來獲得設(shè)計。
3.總體設(shè)計
3.1處理流程
系統(tǒng)的總體處理流程如下圖:
開始進入用戶登錄界面是否為后臺數(shù)據(jù)管理員NO YES是否訂票NOYES查看航班信息YESNO是否改簽NOYES查詢顯示航班信息YES是否修改退票改簽訂票修改信息NO結(jié)束圖3.1 流程圖 3.2總體結(jié)構(gòu)和模塊外部設(shè)計
模塊是軟件是軟件結(jié)構(gòu)的基礎(chǔ),軟件結(jié)構(gòu)的好壞完全由模塊的屬性體現(xiàn)出來,把軟件模塊化的目的是為了降低軟件復(fù)雜性,使軟件設(shè)計、測試、調(diào)試、維護等工作變得簡易,但隨著模塊數(shù)目的增加,通過接口連接這些模塊的工作量也隨之增加。
從系統(tǒng)的層次圖中可以看出,訂票以及退票的信息輸入輸出功能是由航班數(shù)據(jù)管理系統(tǒng)進行的。
飛機訂票系統(tǒng)登錄驗證乘客信息修改訂票管理航班信息查詢航班信息調(diào)整后臺管理員驗證用戶身份驗證乘客基本信息錄入乘客基本信息修改乘客票務(wù)信息修改乘客訂票改簽退票按時間查詢按目的地查詢按航班號查詢增加新航班修改原有航班刪除航班圖3.2系統(tǒng)層次圖
4.接口設(shè)計
4.1 硬件接口
本軟件不需要特定的硬件或硬件接口進行支持。
4.2 軟件接口
可以運行于Windows等操作系統(tǒng)之上。5.數(shù)據(jù)結(jié)構(gòu)設(shè)計
5.1 邏輯結(jié)構(gòu)設(shè)計
1.航空公司表:AIRLINE 2.客戶表CUSTOMER 3.飛機表PLANE 4.航線表LINE 5.航班表FLIGHT 6.訂票表BOOKTICKET 5.2 物理結(jié)構(gòu)設(shè)計
系統(tǒng)的物理結(jié)構(gòu)具體由數(shù)據(jù)庫來設(shè)計與生成的。
5.3 數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系
系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)由標準數(shù)據(jù)庫語言SQL生成。
6.運行設(shè)計
6.1 運行模塊的組合
具體軟件的運行模塊組合為程序多窗口的運行環(huán)境,各個模塊在軟件運行過程中能較好的交換信息,處理數(shù)據(jù)。
6.2 運行控制
軟件運行時有較友好的界面,基本能夠?qū)崿F(xiàn)用戶的數(shù)據(jù)處理要求。
6.3 運行時間
系統(tǒng)的運行時間基本可以達到用戶所提出來的要求。7.出錯處理設(shè)計
7.1 出錯輸出信息
用戶使用錯誤的數(shù)據(jù)或訪問沒有權(quán)限的數(shù)據(jù)后,系統(tǒng)給出提示:“對不起,你無法使用數(shù)據(jù),沒有權(quán)限!”而且用戶的密碼管理可以允許用戶修改自己的密碼,不允許用戶的匿名登錄。
7.2 出錯處理對策
由于數(shù)據(jù)在數(shù)據(jù)庫中已經(jīng)有備份,故在系統(tǒng)出錯后可以依靠數(shù)據(jù)庫恢復(fù)功能,并且依靠日志文件使系統(tǒng)再啟動,就算系統(tǒng)崩潰用戶的數(shù)據(jù)也不會丟失或遭到破壞。但有可能占用更多的數(shù)據(jù)存儲空間,權(quán)衡措施由用戶來決定。
8.安全保密設(shè)計
系統(tǒng)的系統(tǒng)用戶管理保證了只有授權(quán)的用戶才能進入系統(tǒng)進行數(shù)據(jù)操作,而且對一些重要的數(shù)據(jù),系統(tǒng)設(shè)置為只有最高權(quán)限的人員方可讀取或是操作。系統(tǒng)安全保密性較高。
9.維護設(shè)計
由于系統(tǒng)較小沒有加外加維護模塊,因為系統(tǒng)維護工作比較簡單,僅靠數(shù)據(jù)庫的一些基本維護。
第四篇:qtp測試飛機訂票使用DataTable參數(shù)化(實驗3
飛機訂票使用DataTable參數(shù)化(實驗III)
原理:通過關(guān)鍵字視圖可觀察到自動化測試腳本是由操作步驟與數(shù)據(jù)構(gòu)成的。如測試腳本在某個變量中重復(fù)使用,而該變量的值經(jīng)常需要根據(jù)具體測試需求進行變更。QT參數(shù)化可以實現(xiàn)無須打開測試腳本,直接改變量的值,提供了高效的維護測試腳本方式。主要過程包括:錄制實驗程序,使用DataTable進行參數(shù)化,同時使用RandomNumber實現(xiàn)參數(shù)化的正常運行和測試。初步掌所握QuickTest Professional的環(huán)境變量的使用,同時對Data Driver了解其概念。
一: 實現(xiàn)步驟
1.1:點擊安裝并QuickTest安裝步驟完成后,運行QuickTest Professional,出現(xiàn)如下界面,點擊Automation->Record and Run Setting,選擇紅框中的內(nèi)容。
1.2:將flight4b.exe打開,運行至此界面,確保錄制從這個階段開始
1.3插入一條訂票的記錄,注意記好num號,生成如下的測試過程,并運行回放該測試的結(jié)果,點擊run驗證“僅錄制預(yù)定機票的過程”
1.4:要求測試過程為全部pass
II.對預(yù)定機票中的數(shù)據(jù)進行參數(shù)化 2.1:在test用例中選中Fly From這個項
2.2:命名為Fly_from,點擊確定
2.3:,以此類推,對Fly_to進行參數(shù)化,命名后點擊OK
2.4參數(shù)如下紅框所示,手動添加進參數(shù),London Denver;London Frankfurt;也可以自已多添幾條,前提是機票預(yù)定系統(tǒng)里有這些地點即可。
2.5:出錯信息如附,因為手工添加參數(shù)后,QT并沒有識別到,所以我們下一步采用RandomNumber來實現(xiàn)
2.6:選擇Flight Table下的From,點擊# 5 2.7:選擇random Number
2.8:測試完成,參數(shù)化自動執(zhí)行Data table表中的參數(shù)。III:環(huán)境變量的使用
3.1使用正常的錄制過程,機票錄入系統(tǒng)界面彈出即可。點擊File-setting 6
3.2選擇用戶自定義
3.3按+號將用戶名添加入
3.4按下圖操作,選擇Environment
3.5選RUN驗證吧
要求:主要完成I、II部分,III部分作為體驗
完成將調(diào)試PASS的界面截圖,同時將測試腳本用例保存打包 班級+姓名+學(xué)號.RAR方式提交,同時將實驗報告(可以打?。┓绞缴辖徽n代表。
第五篇:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 飛機訂票系統(tǒng)
飛機訂票系統(tǒng)
1.需求分析
描述要求編程解決的問題。以無歧義的陳述說明程序設(shè)計的任務(wù),強調(diào)的是程序要做什么?明確規(guī)定:
(a)輸入的形式和輸入值的范圍;
(b)輸出的形式;
(c)程序所能達到的功能;
(d)測試數(shù)據(jù):包括正確的輸入及其輸出結(jié)果和含有錯誤的輸入及其輸出結(jié)果。
2.概要設(shè)計
給出程序要達到的具體的要求。描述解決相應(yīng)問題算法的設(shè)計思想。描述所設(shè)計程序的各個模塊(即函數(shù))功能。說明本程序中用到的所有抽象數(shù)據(jù)類型的定義、主程序的流程以及各程序模塊之間的層次(調(diào)用)關(guān)系。
3.詳細設(shè)計
實現(xiàn)概要設(shè)計中定義的所有數(shù)據(jù)類型,對每個操作只需要寫出流程或偽碼算法;對主程序和其他模塊也都需要寫出流程或偽碼算法(偽碼算法達到的詳細程度建議為:按照偽碼算法可以在計算機鍵盤直接輸入高級程序設(shè)計語言程序);畫出函數(shù)的調(diào)用關(guān)系圖。給出所使用的基本抽象數(shù)據(jù)類型,所定義的具體問題的數(shù)據(jù)類型,以及新定義的抽象數(shù)據(jù)類型。設(shè)計出良好的輸入輸出界面(清晰易懂)。
4.調(diào)試分析 內(nèi)容包括:
(a)調(diào)試過程中遇到的問題是如何解決的以及對設(shè)計與實現(xiàn)的回顧討論和分析;
(b)算法的時空分析(包括基本操作和其他算法的時間復(fù)雜度和空間復(fù)雜度的分析)和改進設(shè)想;
(c)經(jīng)驗和體會等。
5.用戶使用說明
說明如何使用你編寫的程序,詳細列出每一步的操作步驟。
6.測試結(jié)果
設(shè)計測試數(shù)據(jù),或具體給出測試數(shù)據(jù)。要求測試數(shù)據(jù)能全面地測試所設(shè)計程序的功能。列出你的測試結(jié)果,包括輸入和輸出。這里的測試數(shù)據(jù)應(yīng)該完整和嚴格,最好多于需求分析中所列。
7.測試情況:給出程序的測試情況,并分析運行結(jié)果
附錄(非必須,按照需要添加)
帶注釋的源程序??梢灾涣谐龀绦蛭募那鍐?。
需求分析
任務(wù):通過此系統(tǒng)可以實現(xiàn)如下功能: 錄入:
可以錄入航班情況(數(shù)據(jù)可以存儲在一個數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定)
查詢:
可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達城市,航班票價,票價折扣,確定航班是否滿倉); 可以輸入起飛抵達城市,查詢飛機航班情況;
訂票:(訂票情況可以存在一個數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班;
退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件;
客戶資料有姓名,證件號,訂票數(shù)量及航班情況,訂單要有編號。
概要設(shè)計
詳細設(shè)計
詳列函數(shù) void list(){
struct airline *info;
int i=0;
info=start;
printf(“起點城市t終點城市t航班號t起飛時間t降落時間t總票數(shù)t余票數(shù)n”);
while(i { display(info); info++; i++; } printf(“nn”);} 查詢函數(shù) void search(){ struct airline *info,*find(); char qiname[10]; char jiangname[10]; int i=0; info=start; printf(“請輸入要起飛城市的名稱:”); scanf(“%s”,qiname); printf(“請輸入要抵達城市的名稱:”); scanf(“%s”,jiangname); while(i { if(!strcmp(jiangname,info->jiang_name)) { break; } info++; i++; } if(i>=MAXSIZE) { printf(“沒有這條航線!n”); } else { printf(“起飛城市t降落城市t航班號t起飛時間t降落時間t總票數(shù)t余票數(shù)n”); display(info); } } struct airline *find(){ struct airline *info; char number[10]; int i=0; info=start; printf(“請輸入航班號:”); scanf(“%s”,number); while(i { if(!strcmp(number,info->air_num)) { return info; } info++; i++; } printf(“沒有這條航線!n”); return NULL;} 訂票函數(shù) void order(){ struct airline *info; char qiname[10]; char jiangname[10]; int amount; char name[10]; char id[30]; info=start; printf(“請輸入您的起飛城市:”); scanf(“%s”,qiname); printf(“請輸入您的降落城市:”); scanf(“%s”,jiangname); printf(“請輸入您需要的票數(shù):”); scanf(“%d”,&amount); int i=1; while(i<5) { if(!strcmp(info->qi_name,qiname)&&!strcmp(info->jiang_name,jiangname)) { if(amount<=info->ticket_left) { int i; printf(“請輸入您的姓名:”); scanf(“%s”,name); printf(“請輸入您的身份證號:”); scanf(“%s”,id); info->order=insertlink(info->order,amount,name,id); printf(“您的航班信息為:n”); display(info); for(i=0;i { printf(“%s的座位號是:%dn”,name,info->ticket_all-info->ticket_left+i+1); } info->ticket_left-=amount; printf(“訂票成功!n”); break; } else { info++; i++; } } else { info++; i++; } } } 退票函數(shù) void returnticket(){ struct airline *info; linklist *p1,*p2,*head; char name[10]; if(!(info=find())) { return; } head=info->order; p1=head; printf(“請輸入您的姓名:”); scanf(“%s”,name); while(p1!=NULL) { if(!strcmp(name,p1->name)) { break; } p2=p1; p1=p1->next; } if(p1==NULL) { printf(“您沒有訂過票!n”); return; } else { if(p1==head) { head=p1->next; } else { p2->next=p1->next; } info->ticket_left+=p1->tickets; printf(“%s退票成功!n”,p1->name); free(p1); } info->order=head;} 存儲結(jié)構(gòu) typedef struct passenger { char name[10]; int tickets; char id[30]; struct passenger *next;} linklist;typedef struct airline { char qi_name[10]; char jiang_name[10]; char air_num[10]; char qi_time[10]; char jiang_time[10]; int ticket_all; int ticket_left; linklist *order;} lineinfo;調(diào)試分析 查看航線信息 查詢航線 ① 輸入起飛城市 ② 輸入抵達城市 ③ 輸出航班信息 辦理訂票業(yè)務(wù) ① 查詢符合的航班 ② 查詢余票量 ③ 輸出航班信息 辦理退票業(yè)務(wù) 源代碼 #include char name[10]; int tickets; char id[30]; struct passenger *next;} linklist; typedef struct airline { char qi_name[10]; char jiang_name[10]; char air_num[10]; char qi_time[10]; char jiang_time[10]; int ticket_all; int ticket_left; linklist *order;} lineinfo; struct airline *start; void display(struct airline *info){ printf(“%st %10st %10st %10st %10st %5dt %5dn”,info->qi_name,info->jiang_name,info->air_num,info->qi_time,info->jiang_time,info->ticket_all,info->ticket_left);} void list(){ struct airline *info; int i=0; info=start; printf(“起點城市t終點城市t航班號t起飛時間t降落時間t總票數(shù)t余票數(shù)n”); while(i { display(info); info++; i++; } printf(“nn”);} void search(){ struct airline *info,*find(); char qiname[10]; char jiangname[10]; int i=0; info=start; printf(“請輸入要起飛城市的名稱:”); scanf(“%s”,qiname); printf(“請輸入要抵達城市的名稱:”); scanf(“%s”,jiangname); while(i { if(!strcmp(jiangname,info->jiang_name)) { break; } info++; i++; } if(i>=MAXSIZE) { printf(“沒有這條航線!n”); } else { printf(“起飛城市t降落城市t航班號t起飛時間t降落時間t總票數(shù)t余票數(shù)n”); display(info); } } struct airline *find(){ struct airline *info; char number[10]; int i=0; info=start; printf(“請輸入航班號:”); scanf(“%s”,number); while(i { if(!strcmp(number,info->air_num)) { return info; } info++; i++; } printf(“沒有這條航線!n”); return NULL;} linklist *insertlink(linklist *head,int amount,char name[],char id[]){ linklist *p1,*new1; p1=head; new1=(linklist*)malloc(sizeof(linklist)); strcpy(new1->name,name); new1->tickets=amount; new1->next=NULL; strcpy(new1->id,id); if(head==NULL) { head=new1; new1->next=NULL; } else { while(p1->next!=NULL) p1=p1->next; p1->next=new1; } return head;} void order(){ struct airline *info; char qiname[10]; char jiangname[10]; int amount; char name[10]; char id[30]; info=start; printf(“請輸入您的起飛城市:”); scanf(“%s”,qiname); printf(“請輸入您的降落城市:”); scanf(“%s”,jiangname); printf(“請輸入您需要的票數(shù):”); scanf(“%d”,&amount); int i=1; while(i<5) { if(!strcmp(info->qi_name,qiname)&&!strcmp(info->jiang_name,jiangname)) { if(amount<=info->ticket_left) { int i; printf(“請輸入您的姓名:”); scanf(“%s”,name); printf(“請輸入您的身份證號:”); scanf(“%s”,id); info->order=insertlink(info->order,amount,name,id); printf(“您的航班信息為:n”); display(info); for(i=0;i { printf(“%s的座位號是:%dn”,name,info->ticket_all-info->ticket_left+i+1); } info->ticket_left-=amount; printf(“訂票成功!n”); break; } else { info++; i++; } } else { info++; i++; } } } void returnticket(){ struct airline *info; linklist *p1,*p2,*head; char name[10]; if(!(info=find())) { return; } head=info->order; p1=head; printf(“請輸入您的姓名:”); scanf(“%s”,name); while(p1!=NULL) { if(!strcmp(name,p1->name)) { break; } p2=p1; p1=p1->next; } if(p1==NULL) { printf(“您沒有訂過票!n”); return; } else { if(p1==head) { head=p1->next; } else { p2->next=p1->next; } info->ticket_left+=p1->tickets; printf(“%s退票成功!n”,p1->name); free(p1); } info->order=head;} int menu_select(){ int c; char s[20]; printf(“ 訂票系統(tǒng)n”); printf(“-------------n”); printf(“ 1.查看航線信息 printf(” 2.查詢航線 printf(“ 3.辦理訂票業(yè)務(wù) printf(” 4.辦理退票業(yè)務(wù) printf(“ 5.退出系統(tǒng) printf(”-------------n“); do { printf(”請選擇(1-5):“); scanf(”%s“,s); c=atoi(s); } while(c<1||c>6); return c; n”);n“);n”);n“); n”); } int main(){ struct airline air[MAXSIZE]= { {“harbin”,“beijing”,“1”,“12:00”,“14:00”,30,30},{“harbin”,“shanghai”,“2”,“10:00”,“13:00”,20,20},{“harbin”,“beijing”,“3”,“13:30”,“10:00”,50,50},{“harbin”,“guangzhou”,“4”,“17:00”,“21:00”,50,50},{“harbin”,“dalian”,“5”,“14:00”,“17:00”,40,40} }; start=air; while(1) { system(“cls”); switch(menu_select()) { case 1: list(); break; case 2: search(); break; case 3: order(); break; case 4: returnticket(); break; case 5: exit(0); } getch(); } } 經(jīng)驗體會 1、通過設(shè)計飛機訂票系統(tǒng),加深了對鏈表的運用和理解。 2、通過多組測試數(shù)據(jù),發(fā)現(xiàn)了程序的問題,并做了調(diào)整、3、通過設(shè)計選擇菜單,對選擇結(jié)構(gòu)有更深刻的了解。