2. 測試概要
2.1 測試採用的標準及技術
如表1、表2、表3所示。
表1 開始/中斷/完成測試
開始/中斷/完成測試 |
標準說明 |
開始測試標準
|
硬件環境可用且系統軟件正確安裝完成 |
中斷測試標準 |
安裝無法完成或程序的文檔有相當多的失誤或系統異常 |
完成測試標準 |
完成測試計劃中的測試規劃並達到測試質量的目標,並由胡良,李紅亮確認 |
表2 測試技術
測試技術 |
說明 |
編寫測試用例
|
在產品編碼階段編寫測試用例 |
單元測試 |
對具體模塊或函數進行測試 |
集成測試 |
檢測模塊集成後的系統是否達到需求 |
系統測試 |
對業務流程及數據流的處理是否符合標準,系統對業務流的處理是否存在邏輯不嚴謹和錯誤以及是否存在不合理的標準及要求 |
表3 測試類型
開始/中斷/完成測試 |
標準說明 |
功能測試
|
根據《圖書銷售系統需求規格說明書》和《圖書銷售系統系統設計說明書》,檢查產品是否正確實現了功能 |
邊界值測試 |
選擇邊界數據進行測試,確保系統功能正常,程序無異常 |
界面測試 |
檢查界面是否美觀合理 |
文檔測試 |
檢查文檔是否足夠、描述是否合理 |
2.2 單元測試(各類函數)
利用Visual Studio 2012中自帶的單元測試功能進行單元測試,測試各個類中的函數。按要求輸入,測試與預期結果是否吻合,如果不吻合,則單元測試結果,將顯示失敗或其他錯誤信息,若成功則單元測試結果將顯示“通過”,如表4所示。
表4 單元測試
序號 |
測試函數名 |
函數功能 |
是否成功 |
是否更正 |
1 |
AddButton_OnLButtonUp |
添加管理員對話框的確認按鈕按下後,系統獲取用戶輸入的賬號以及密碼文本,並向管理員列表中添加新的記錄 |
是 |
/ |
2 |
LoginButton_OnLButtonUp |
登陸窗體對話框的登陸按鈕被按下後,系統會更具登陸類型(管理員或者用戶)自動檢測和匹配用戶輸入賬號以及密碼,成功則執行登陸操作,錯誤則給出提示 |
是 |
/ |
3 |
OnInitControl |
程序初始化函數,系統啓動時加載本地計算機信息時初始化載入動畫,並對所有的工作頁面進行隱藏和初始化 |
是 |
/ |
4 |
OnActiveTabChanged |
工作頁面切換函數,通過用戶選擇的頁面按鈕,激活按鈕對應的工作區域和頁面 |
否 |
是 |
5 |
intrueBut_OnLButtonUp |
庫存調撥函數,當庫存調撥窗體的確認按鈕被按下時,系統檢測用戶輸入的調撥數量文本,搜索和匹配倉庫列表中的入庫圖書信息,在起始倉庫以及目標倉庫之間進行庫存調撥,更新調撥後的庫存數據 |
是 |
/ |
6 |
updateprice_button_OnLButtonUp |
圖書調價函數,當圖書調價窗體的確認按鈕被按下時,系統自動檢測用戶輸入的新的銷售價格,搜索和匹配櫃檯圖書列表中對應的Item並對其的銷售價格進行修改 |
是 |
/ |
2.3 集成測試
本系統的集成測試重點是工作頁面的跳轉和切換是否正確,以及頁面間參數的傳送是否正確。
對於頁面間的跳轉測試,主要測試點擊本系統中的各個主功能按鍵的時候是否跳轉和切換到指定的頁面。對於參數的傳遞,主要測試頁面間傳遞參數所產生的結果是否正確。
2.4 系統測試
針對圖書銷售系統,按照《圖書銷售系統需求規格說明書》中的功能模塊設計,爲系統的各項功能設計測試方案,其中對數據要求不高的功能只是提出了大致的測試要求,但對於幾項數據正確性要求比較高的功能我們按照等價類劃分的方法,設計了測試用例。對於每個測試用例,均以清晰的表格形式記錄了測試結果(通過或者不通過)、發現問題、測試人員及測試時間。
對於性能測試、按照《圖書銷售系統需求規格說明書》對性能的要求,設計了性能測試的表格。按照這個表格對系統中比較重要的幾項性能需求進行了測試。每項測試同功能測試一樣均記錄了發現問題、測試結果、測試人員及測試時間。
3. 單元測試
3.1 管理員添加函數測試
測試添加管理員事件處理代碼文件AddAdminWnd.lua下的函數AddButton_OnLButtonUp(self)
AddAdminWnd.lua事件處理代碼在\View\layout目錄下的文件夾中
函數聲明如下:function AddButton_OnLButtonUp(self)
函數預期實現的功能:添加管理員對話框的確認按鈕按下後,系統獲取用戶輸入的賬號以及密碼文本,並向管理員列表中添加新的記錄。
輸入:運行圖書銷售系統,點擊上層主要功能按鈕進入基礎信息管理頁面,在切換的工作區間中點擊下層功能按鈕“管理員信息”,點擊切換的三層子功能按鈕“添加管理員”,在彈出的管理員添加窗體中輸入管理員的賬號以及密碼。
local ID = self:GetOwner():GetUIObject("Admin_ID_text"):GetText()
local PSW = self:GetOwner():GetUIObject("Admin_PSW_text"):GetText()
期望輸出:
如果不存在相同賬號名的管理員賬號,則添加成功,更新管理員信息列表:
AdminInfoItem:GetControlObject("Admin_ID"):SetText("管理員賬號: "..ID)
AdminInfoItem:GetControlObject("Admin_PSW"):SetText("管理員密碼: "..PSW)
如果賬號名重複,則輸出異常信息:
XLMessageBox("賬號已存在,請重新輸入")
測試結果:通過
3.2 系統登陸函數測試
測試用戶或者管理員進行系統登陸的事件處理代碼文件LoginWnd.lua下的函數LoginButton_OnLButtonUp(self)
LoginWnd.lua事件處理代碼在\View\layout目錄下的文件夾中
函數聲明如下:function LoginButton_OnLButtonUp(self)
函數預期實現的功能:登陸窗體對話框的登陸按鈕被按下後,系統會更具登陸類型(管理員或者用戶)自動檢測和匹配用戶輸入賬號以及密碼,成功則執行登陸操作,錯誤則給出提示。
輸入:運行圖書銷售系統,點擊主界面下方工作區的右側用戶賬號信息、本地計算機系統信息以及時鐘綜合顯示區域中的系統登陸按鈕,在彈出的系統登陸窗體中選擇登陸的類型(管理員登陸或者用戶登陸),待界面以及登陸模式切換完成後,輸入對應類型的賬號密碼。
listbox4_itemLayout:GetChildByIndex(var -1):GetControlObject("Adm
in_ID"):GetText():match(" (.*)")
listbox4_itemLayout:GetChildByIndex(var - 1):GetControlObject("Adm
in_PSW"):GetText():match(" (.*)")
Listbox5_itemLayout:GetChildByIndex(var -1):GetControlObject("Use
r_ID"):GetText():match(" (.*)")
Listbox5_itemLayout:GetChildByIndex(var - 1):GetControlObject("Use
r_PSW"):GetText():match(" (.*)")
期望輸出:
系統根據用戶登陸類型,檢索對應的管理員或者用戶賬號列表,匹配成功則登陸成功: Login_type_flag:SetTextureID("Logining_app_admin")
Login_info_type:SetText("賬號類型:管理員")
Login_info_name:SetText("賬 號:"..ID_text)
Login_type_flag:SetTextureID("Logining_app_user")
Login_info_type:SetText("賬號類型:用戶")
Login_info_name:SetText("賬 號:"..ID_text)
匹配失敗,則輸出異常信息:
XLMessageBox("管理員賬號或者密碼錯誤")
測試結果:通過,界面數據信息更新顯示成功
3.3 系統初始化函數測試
測試圖書銷售系統運行初始化事件處理代碼文件MainWnd.xml.lua下的函數OnInitControl(self)
MainWnd.xml.lua事件處理代碼在\View\layout目錄下的文件夾中
函數聲明如下:function OnInitControl(self)
函數預期實現的功能:程序初始化函數,系統啓動時加載本地計算機信息時初始化載入動畫,並對所有的工作頁面進行隱藏和初始化。
輸入:運行圖書銷售系統,在主界面顯示之前系統自動獲取本地計算機的基礎信息,將得到的信息進行初始化,將計算機基礎信息以及時鐘信息顯示到主界面工作區的右側信息集合區域中。數據輸入動作由C#端的程序代碼(MyClass.cs)與LUA腳本交互執行。
C#端:
public string GetComputerName()
public string GetSystemType()
public string GetCpuID()
public string GetTotalPhysicalMemory()
public string GetNetCardIP()
public string GetDate()
LUA端:
local myClassFactory = XLGetObject("HelloBolt.NET.MyClass.Factory")
local myClass = myClassFactory:CreateInstance()
local computername = myClass:GetComputerName()
local systemtype = myClass:GetSystemType()
local cpuid = myClass:GetCpuID()
local physicalmemory = myClass:GetTotalPhysicalMemory()
local netcardip = myClass:GetNetCardIP()
local dateinfo = myClass:GetDate()
期望輸出:
軟件系統對應區域的數據更新以及顯示:
computername_control:SetText("計算機名:"..computername)
systemtype_control:SetText("系統型號:"..systemtype)
cpuid_control:SetText("cpu序列號:"..cpuid)
physicalmemory_control:SetText("物理內存:"..physicalmemory.." B")
測試結果:通過,界面數據信息顯示成功
3.4 功能按鈕激活函數測試
測試主要功能按鈕響應事件處理代碼文件MainWnd.xml.lua下的函數OnActiveTabChanged(self)
MainWnd.xml.lua事件處理代碼在\View\layout目錄下的文件夾中
函數聲明如下:function OnActiveTabChanged(self)
函數預期實現的功能:工作頁面切換函數,通過用戶選擇的頁面按鈕,激活按鈕對應的工作區域和頁面。
輸入:運行圖書銷售系統,點擊上層主要功能按鈕進入各個不同的工作區域和頁面管理。
local baseinfoButton = ownerTree:GetUIObject("baseinfo.button")
local kucunButton = ownerTree:GetUIObject("kucun.button") local priceButton = ownerTree:GetUIObject("price.button") local infosearchButton = ownerTree:GetUIObject("infosearch.button") local sellButton = ownerTree:GetUIObject("sell.button")
InfoManagePanel:GetVisible() InfoManagePanel:GetChildrenVisible()
StorageManagePanel:GetVisible(false)
StorageManagePanel:GetChildrenVisible()
PriceManagePanel:GetVisible()
PriceManagePanel:GetChildrenVisible()
SearchManagePanel:GetVisible()
SearchManagePanel:GetChildrenVisible()
SellManagePanel:GetVisible()
SellManagePanel:GetChildrenVisible()
期望輸出:
如果baseinfoButton被激活onActive
InfoManagePanel顯示狀態爲true
StorageManagePanel顯示狀態爲false
PriceManagePanel顯示狀態爲false
SearchManagePanel顯示狀態爲false
SellManagePanel顯示狀態爲false
測試結果:
由主功能按鈕的狀態激活帶動的界面顯示和隱藏出錯,造成工作區間界面重疊,十分混亂。
查找原因:
實際的LUA語句:
SellManagePanel:SetVisible(true)
SellManagePanel:SetChildrenVisible(true)
在baseinfoButton按鈕激活的狀態下,銷售管理工作頁面的狀態顯示配置錯誤,true應該修改爲false。
重新構建單元測試:
輸入:
baseinfoButton:IsonActive(true)
Local x1 = InfoManagePanel:GetVisible()
Local x2 = StorageManagePanel:GetVisible()
Local x3 = PriceManagePanel:GetVisible()
Local x4 = SearchManagePanel:GetVisible()
Local x5 = SellManagePanel:GetVisible()
輸出:
x1 = true
x1 = false
x1 = false
x1 = false
x1 = false
測試結果:通過
3.5 庫存轉移函數測試
測試添加管理員事件處理代碼文件StorageToStorageWnd.lua下的函數intrueBut_OnLButtonUp(self)
AddAdminWnd.lua事件處理代碼在\View\layout目錄下的文件夾中
函數聲明如下:function intrueBut_OnLButtonUp(self)
函數預期實現的功能:庫存調撥函數,當庫存調撥窗體的確認按鈕被按下時,系統檢測用戶輸入的調撥數量文本,搜索和匹配倉庫列表中的入庫圖書信息,在起始倉庫以及目標倉庫之間進行庫存調撥,更新調撥後的庫存數據。
輸入:運行圖書銷售系統,點擊上層主要功能按鈕進入庫存管理頁面,在切換的工作區間中點擊下層功能按鈕“圖書入庫”,在彈出的倉庫列表中選擇起始倉庫,彈出對應的圖書列表,點擊圖書item上的“庫存調撥”按鈕,在彈出的調撥配置窗口中選擇轉移模式(倉庫到倉庫間的轉移或者倉庫到櫃檯的轉移),選擇前者系統會彈出目標倉庫列表,點擊倉庫彈出庫存調撥信息配置窗口,輸入需要轉移的圖書數量。
startstorage_item:GetControlObject("inStoragenum"):SetValue(300)
local number_text = 100
Local startinStorageNumber = startstorage_item:GetControlObject("i
nStoragenum"):GetValue()
Local reachinStorageNumber = startstorage_item:GetControlObject("i
nStoragenum"):GetValue()
期望輸出:
如果轉移的庫存數量不超過起始倉庫的庫存數量,則操作成功,更新起始倉庫以及目標倉庫的庫存數量。
startinStorageNumber = 200
reachinStorageNumber = 100
測試結果:通過
3.6 圖書調價函數測試
測試櫃檯圖書銷售價格調整事件處理代碼文件SellTableBookItem.lua下的函數updateprice_button_OnLButtonUp(self)
SellTableBookItem.lua事件處理代碼在\View\layout目錄下的文件夾中
函數聲明如下:function updateprice_button_OnLButtonUp(self)
函數預期實現的功能:圖書調價函數,當圖書調價窗體的確認按鈕被按下時,系統自動檢測用戶輸入的新的銷售價格,搜索和匹配櫃檯圖書列表中對應的Item並對其的銷售價格進行修改。
輸入:運行圖書銷售系統,點擊上層主要功能按鈕進入價格管理頁面,在切換的工作區間中點擊下層功能按鈕“圖書調價”,在彈出的櫃檯列表中選擇目標圖書所在的銷售櫃檯,此時會彈出櫃檯對應的圖書列表,點擊圖書item上的圖書調價按鈕即可在彈出的對話框窗體中配置新的銷售價格。
ownerTree:GetUIObject("newPrice_text"):SetText(“89.50”)
Lcoal sellprice = ownerTree:GetUIObject("Price_text"):GetText(“89.
50”)
期望輸出:
如果輸入爲浮點數或者不爲0開頭的整數,正系統驗證用戶的輸入爲合法輸入,執行調價操作。
sellprice = 89.50
測試結果:通過
4. 集成測試
本系統的集成測試重點是頁面和工作區間的跳轉和切換,以及頁面間的參數傳遞是否正確。對於頁面切換的測試,主要測試點擊本系統中的各個頁面對應的主要功能按鈕是否能跳轉到對應的工作區域中,能否實現各個工作區間不相互影響,對於參數傳遞的測試,主要測試頁面間傳遞參數產生的結果是否正確。
4.1 頁面及工作區域切換測試
下面根據圖書銷售系統列出各個工作區域跳轉的測試結果(如表5所示)。
表5 界面切換測試結果
編號 |
切換按鈕名稱 |
所在界面 |
測試結果 |
測試人 |
測試時間 |
1 |
系統登陸按鈕 |
客戶端登陸界面(Login.Wnd) |
通過 |
|
2014/4/18 |
2 |
基礎信息管理 |
管理員信息管理主界面(InfoManage.Panel) |
通過 |
|
2014/4/18 |
3 |
庫存管理 |
管理員庫存管理主界面(StoragManage.Panel) |
通過 |
|
2014/4/18 |
4 |
圖書價格管理 |
管理員價格管理主界面(PriceManage.Panel) |
通過 |
|
2014/4/18 |
5 |
信息查詢管理 |
管理員查詢主界面(SearchManage.Panel) |
通過 |
|
2014/4/18 |
6 |
圖書銷售管理 |
用戶購買退貨操作主界面(SellManage.Panel) |
通過 |
|
2014/4/18 |
4.2 參數傳遞測試
下面根據圖書銷售系統列出子功能界面的參數傳遞的測試結果(如表6所示)。參數傳遞主要測試的是工作區域間切換的新工作區域依賴於所傳遞參數的頁面切換。
表6 子功能區域切換參數傳遞測試結果
編號 |
參數傳遞按鈕 |
所在界面 |
預期結果 |
發現問題 |
測試結果 |
測試人 |
測試時間 |
1 |
系統登陸按鈕 |
系統登陸界面(Login.Wnd) |
賬號輸入框以及密碼輸入框均爲空白 |
|
通過 |
|
2014/4/18 |
2 |
櫃檯管理按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
顯示櫃檯列表集合 |
|
通過 |
|
2014/4/18 |
3 |
添加櫃檯按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
顯示添加櫃檯信息配置窗體 |
|
通過 |
|
2014/4/18 |
4 |
刪除櫃檯按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
更新當前櫃檯列表,刪除所選櫃檯item |
|
通過 |
|
2014/4/18 |
5 |
倉庫管理按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
顯示倉庫列表集合 |
|
通過 |
|
2014/4/18 |
6 |
添加倉庫按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
顯示添加倉庫信息配置窗體 |
|
通過 |
|
2014/4/18 |
7 |
刪除倉庫按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
更新倉庫列表,刪除所選倉庫Item |
|
通過 |
|
2014/4/18 |
8 |
圖書信息按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
顯示登記圖書信息列表 |
|
通過 |
|
2014/4/18 |
9 |
添加圖書按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
彈出圖書信息添加配置窗體,窗體中各項文本爲空白文本 |
|
通過 |
|
2014/4/18 |
10 |
修改圖書信息按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
彈出圖書信息配置窗體,窗體中的各項文本爲當前的圖書信息文本 |
|
通過 |
|
|
11 |
刪除圖書信息按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
更新圖書信息列表,刪除所選的圖書item |
|
通過 |
|
2014/4/18 |
12 |
用戶信息按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
顯示用戶賬號信息列表 |
|
通過 |
|
2014/4/18 |
13 |
刪除用戶按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
更新用戶賬號信息列表,刪除所選的用戶Item |
|
通過 |
|
2014/4/18 |
14 |
添加用戶按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
彈出用戶信息添加窗體,窗體的賬號名稱以及賬號密碼文本爲空白 |
|
通過 |
|
2014/4/18 |
15 |
管理員信息按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
顯示管理員賬號信息列表 |
|
通過 |
|
2014/4/18 |
16 |
添加管理員按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
彈出管理員賬號添加窗體,窗體的賬號名稱以及賬號密碼文本爲空白 |
|
通過 |
|
2014/4/18 |
17 |
刪除管理員按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
更新管理員賬號信息列表,刪除所選管理員item |
|
通過 |
|
2014/4/18 |
18 |
圖書入庫按鈕 |
管理員庫存管理主界面(StoragManage.Panel)) |
顯示倉庫信息列表 |
|
通過 |
|
2014/4/18 |
19 |
圖書調價按鈕 |
管理員價格管理主界面(PriceManage.Panel) |
顯示櫃檯信息列表 |
|
通過 |
|
2014/4/18 |
20 |
圖書定價按鈕 |
管理員價格管理主界面(PriceManage.Panel) |
顯示倉庫信息列表 |
|
通過 |
|
2014/4/18 |
21 |
入庫查詢按鈕 |
管理員查詢主界面(SearchManage.Panel) |
顯示圖書入庫事件的記錄信息列表 |
|
通過 |
|
2014/4/18 |
22 |
入庫退貨查詢按鈕 |
管理員查詢主界面(SearchManage.Panel) |
顯示圖書入庫退貨事件的記錄信息列表 |
|
通過 |
|
2014/4/18 |
23 |
銷售查詢按鈕 |
管理員查詢主界面(SearchManage.Panel) |
顯示圖書銷售事件的記錄信息列表 |
|
通過 |
|
2014/4/18 |
24 |
銷售退貨查詢 |
管理員查詢主界面(SearchManage.Panel) |
顯示圖書銷售退貨事件的記錄信息列表 |
尚未實現 |
不通過 |
|
2014/4/18 |
25 |
銷售退貨按鈕 |
用戶購買退貨操作主界面(SellManage.Panel) |
顯示當前登錄用戶的購買圖書列表 |
尚未實現 |
不通過 |
|
2014/4/18 |
26 |
圖書購買按鈕 |
用戶購買退貨操作主界面(SellManage.Panel) |
顯示櫃檯信息列表 |
|
通過 |
|
2014/4/18 |
下面根據圖書銷售系統列出主要工作界面參數傳遞的測試結果(如表7所示)。參數傳遞主要測試的是工作區域間切換的新工作區域依賴於所傳遞參數的頁面切換。
表7 主要工作區域切換參數傳遞測試結果
編號 |
參數傳遞按鈕 |
所在界面 |
預期結果 |
發現問題 |
測試結果 |
測試人 |
測試時間 |
1 |
基礎信息功能按鈕 |
管理員信息管理主界面(InfoManage.Panel) |
顯示基礎信息功能下的各個子功能按鍵以及工作區域 |
|
通過 |
|
2014/4/18 |
2 |
庫存信息功能按鈕 |
管理員庫存管理主界面(StoragManage.Panel) |
顯示庫存信息管理功能下的各個子功能按鍵以及工作區域 |
|
通過 |
|
2014/4/18 |
3 |
價格信息功能按鈕 |
管理員價格管理主界面(PriceManage.Panel) |
顯示價格信息管理功能下的各個子功能按鍵以及工作區域 |
|
通過 |
|
2014/4/18 |
4 |
信息查詢功能按鈕 |
管理員查詢主界面(SearchManage.Panel) |
顯示信息查詢管理功能下的各個子功能按鍵以及工作區域 |
|
通過 |
|
2014/4/18 |
5 |
圖書銷售管理按鈕 |
用戶購買退貨操作主界面(SellManage.Panel) |
顯示圖書銷售管理功能下的各個子功能按鍵以及工作區域 |
|
通過 |
|
2014/4/18 |
5. 系統測試
系統測試時按照貼近實際的場景進行部署後對系統進行的一系列嚴格有效的測試。它主要包括兩個方面,一是功能測試,二是性能測試。
5.1 對功能的測試
下面根據《圖書銷售系統設計說明書》所列出的各個功能模塊,對於有些與數據表內的數據項直接相關,且數據項對其了性有較高的要求的功能模塊,在功能測試設計表(表8)之後進行了較爲詳細的測試,以契合這些模塊對數據正確性的高要求。
表8 功能測試設計表
編號 |
功能名稱 |
功能描述 |
輸入/需要 |
輸出/結果 |
發現問題 |
測試結果 |
測試人 |
測試時間 |
1 |
登入登出 |
圖書銷售系統的相關用戶以及管理員的登陸 |
用戶賬號名稱,密碼,登陸類型 |
成功登入系統或顯示出錯信息 |
見後表 |
|
|
|
2 |
添加櫃檯 |
爲系統添加銷售櫃檯item(重名拒絕) |
櫃檯名稱 |
更新櫃檯信息列表 |
無 |
通過 |
|
2014/4/18 |
3 |
刪除櫃檯 |
從櫃檯信息列表中刪除對應的櫃檯item |
單擊櫃檯item控件上的刪除按鈕 |
更新櫃檯信息列表,刪除對應櫃檯item |
無 |
通過 |
|
2014/4/18 |
4 |
添加倉庫 |
爲系統添加倉庫item(重名拒絕) |
倉庫名稱 |
更新倉庫列表添加新的倉庫Item |
無 |
通過 |
|
|
5 |
刪除倉庫 |
從倉庫信息列表彙總刪除對應的倉庫Item |
單擊倉庫Item控件上的刪除按鈕 |
更新倉庫信息列表,刪除對應的倉庫item |
無 |
通過 |
|
2014/4/18 |
6 |
添加圖書 |
爲系統登記可用圖書(登記後的圖書方可入庫) |
圖書名稱,圖書編號,圖書作者,出版社,登記價格,圖書種類 |
更新可入庫的圖書信息列表 |
見後表 |
|
|
|
7 |
修改圖書信息 |
可以修改登記後的圖書的具體信息 |
圖書名稱,圖書編號,圖書作者,出版社,登記價格,圖書種類(可單選多選) |
更新對應圖書item的各項修改信息 |
無 |
通過 |
|
2014/4/18 |
8 |
刪除圖書信息 |
可以刪除登記在冊的圖書 |
單擊圖書Item控件上的刪除按鈕 |
更新登記圖書信息的列表,刪除選中的圖書item |
無 |
通過 |
|
2014/4/18 |
9 |
添加用戶 |
爲系統添加可以登錄的用戶(拒絕重複賬號) |
用戶賬號,用戶密碼 |
更新用戶信息列表 |
無 |
通過 |
|
2014/4/18 |
10 |
刪除用戶 |
刪除可以登錄系統的用戶賬號 |
點擊用戶item控件上的刪除按鈕 |
更新用戶賬號信息列表 |
無 |
通過 |
|
2014/4/18 |
11 |
添加管理員 |
爲系統添加可以登錄管理的管理員賬號 |
管理員賬號,管理員密碼 |
更新管理員賬號信息列表 |
無 |
通過 |
|
2014/4/18 |
12 |
圖書入庫 |
可以爲先前建立的各個倉庫中添加圖書庫存 |
入庫倉庫item,入庫圖書item,入庫數量 |
更新倉庫的入庫圖書列表,爲入庫查詢列表添加新的入庫記錄 |
無 |
通過 |
|
2014/4/18 |
13 |
入庫退貨 |
可以爲圖書入庫的倉庫進行圖書的退貨 |
入庫倉庫item,倉庫庫存圖書item,退貨數量 |
更新倉庫的庫存信息,爲入庫退貨查詢列表添加新的入庫退貨記錄 |
無 |
通過 |
|
2014/4/18 |
14 |
庫存轉移(調撥) |
可以實現倉庫間以及倉庫與櫃檯間的庫存調撥(倉庫與櫃檯的轉移,圖書需要定價) |
起始倉庫名稱,目標倉庫名稱或者目標櫃檯名稱,要進行轉移的起始倉庫的圖書item,轉移數量 |
更新起始倉庫以及目標倉庫或者目標櫃檯的庫存信息 |
無 |
通過 |
|
2014/4/18 |
15 |
圖書定價 |
爲入庫又尚未確定銷售價格的圖書進行定價 |
倉庫名稱,倉庫入庫圖書Item,價格(定價過的圖書無法再次定價) |
爲入庫的圖書添加“定價”的標籤,並修改價格 |
無 |
通過 |
|
2014/4/18 |
16 |
圖書調價 |
爲已經定價的圖書進行銷售價格的調整 |
櫃檯名稱,櫃檯圖書item,新的銷售價格 |
更新櫃檯圖書的銷售價格 |
無 |
通過 |
|
2014/4/18 |
17 |
入庫查詢 |
顯示圖書入庫事件的相關信息記錄 |
單擊入庫查詢按鈕 |
顯示圖書入庫記錄列表 |
無 |
通過 |
|
2014/4/18 |
18 |
入庫退貨查詢 |
顯示記錄圖書入庫退貨事件的相關信息記錄 |
單擊入庫退貨查詢按鈕 |
顯示入庫退貨記錄列表 |
無 |
通過 |
|
2014/4/18 |
19 |
銷售查詢 |
顯示圖書銷售事件的相關信息記錄 |
單擊銷售查詢按鈕 |
顯示圖書銷售記錄列表 |
尚未實現 |
不通過 |
|
2014/4/18 |
20 |
銷售退貨查詢 |
顯示用戶銷售退貨時間的相關信息記錄 |
單擊銷售退貨查詢按鈕 |
顯示銷售退貨記錄列表 |
尚未實現 |
不通過 |
|
2014/4/18 |
21 |
圖書購買 |
用戶可以通過該功能從銷售櫃檯的圖書列表中進行圖書的購買 |
單擊圖書購買按鈕 |
顯示櫃檯列表,櫃檯圖書列表以及銷售圖書的信息 |
尚未實現 |
不通過 |
|
2014/4/18 |
22 |
銷售退貨 |
登陸的用戶可以對自己購買過的圖書進行退貨 |
單擊銷售退貨按鈕(未登錄進行圖書購買,無法進行退貨) |
顯示用戶購買過的圖書的列表 |
尚未實現 |
不通過 |
|
2014/4/18 |
下面是對某些嚴格要求數據正確性的模塊的測試設計及測試結果,對於這些模塊採用了等價類劃分的測試方法。
l “登入登出”功能的測試設計
表9 等價類劃分
輸入條件 |
有效等價類 |
編號 |
無效等價類 |
編號 |
登陸類型 |
登陸類型與默認可選的登陸類型一致 |
1 |
登陸類型與默認可選的登陸類型不一致 |
6 |
用戶賬號名稱 |
用戶賬號名與用戶賬號信息列表中的用戶名一致 |
2 |
用戶賬號名與用戶賬號信息列表中的用戶名不一致 |
7 |
用戶賬號密碼 |
用戶密碼與用戶賬號信息列表中的密碼一致 |
3 |
用戶密碼與用戶賬號信息列表中的密碼不一致 |
8 |
管理員賬號名稱 |
管理員賬號名與管理員賬號信息列表中的用戶名一致 |
4 |
管理員賬號名與管理員賬號信息列表中的用戶名不一致 |
9 |
管理員賬號密碼 |
管理員賬號密碼與管理員賬號信息列表中的密碼一致 |
5 |
管理員賬號密碼與管理員賬號信息列表中的密碼一致 |
10 |
表10 測試用例設計
用例編號 |
輸入 |
預期輸出 |
覆蓋範圍 |
||
登陸類型 |
用戶名 |
密碼 |
|||
1.1 |
管理員 |
Admin |
111 |
成功登陸系統 |
1,4,5 |
1.2 |
XX |
Admin |
111 |
登陸失敗 |
6 |
1.3 |
管理員 |
User |
111 |
登陸失敗 |
9 |
1.4 |
管理員 |
Admin |
222 |
登錄失敗 |
10 |
1.5 |
用戶 |
User |
111 |
成功登陸系統 |
1,2,3 |
1.6 |
用戶 |
Admin |
111 |
登錄失敗 |
7 |
1.7 |
用戶 |
User |
222 |
登陸失敗 |
8 |
注:默認合法的登陸類型爲:管理員和用戶,設管理員賬號和密碼爲:Admin和111,設用戶賬號以及密碼爲:User和111。
表11 測試結果記錄
用例編號 |
預期結果 |
實際結果 |
測試結果 |
測試日期 |
測試人 |
1.1 |
登陸成功 |
登陸成功 |
通過 |
2014/4/18 |
|
1.2 |
登陸失敗 |
登陸失敗 |
通過 |
2014/4/18 |
|
1.3 |
登陸失敗 |
登陸失敗 |
通過 |
2014/4/18 |
|
1.4 |
登陸失敗 |
登錄失敗 |
通過 |
2014/4/18 |
|
1.5 |
登陸成功 |
登陸成功 |
通過 |
2014/4/18 |
|
1.6 |
登陸失敗 |
登陸失敗 |
通過 |
2014/4/18 |
|
1.7 |
登陸失敗 |
登陸失敗 |
通過 |
2014/4/18 |
|
l “添加(登記)圖書”功能的測試設計
表12 等價類劃分
輸入條件 |
有效等價類 |
編號 |
無效等價類 |
編號 |
圖書名稱 |
不重複且不爲空 |
1 |
名稱重複 |
8 |
名稱爲空 |
9 |
|||
圖書編號 |
不爲空 |
2 |
爲空 |
10 |
圖書作者 |
不爲空 |
3 |
爲空 |
11 |
出版社 |
不爲空 |
4 |
爲空 |
12 |
登記價格 |
不爲空,且不以0開頭的整數 |
5 |
數據類型爲0開頭整數 |
13 |
爲空 |
14 |
|||
不爲空,且爲浮點數 |
6 |
不爲浮點數 |
15 |
|
不爲整數 |
16 |
|||
圖書種類 |
不爲空 |
7 |
爲空 |
17 |
表13 測試用例設計
用例編號 |
輸入 |
預期輸出 |
覆蓋範圍 |
|||||
圖書名稱 |
圖書編號 |
圖書作者 |
出版社 |
登記價格 |
圖書種類 |
|||
2.1 |
軟件工程 |
000001 |
呂宇翔 |
機械工業出版社 |
19.00 |
計算機科學 |
新建圖書成功 |
1,2,3,4,6,7 |
2.2 |
軟件工程 |
000002 |
盧宇翔 |
機械工業出版社 |
22.00 |
計算機科學 |
新建圖書失敗 |
8 |
2.3 |
|
000003 |
劉翔 |
高等教育出版社 |
33.00 |
體育運動 |
新建圖書失敗 |
9 |
2.4 |
如何假摔 |
|
劉翔 |
高等教育出版社 |
59.88 |
體育運動 |
新建圖書失敗 |
10 |
2.5 |
如何假摔 |
000004 |
|
高等教育出版社 |
38.88 |
體育運動 |
新建圖書失敗 |
11 |
2.6 |
如何假摔 |
000004 |
劉翔 |
|
99.55 |
體育運動 |
新建圖書失敗 |
12 |
2.7 |
如何假摔 |
000004 |
劉翔 |
高等教育出版社 |
0123 |
體育運動 |
新建圖書失敗 |
13 |
2.8 |
如何假摔 |
000004 |
劉翔 |
高等教育出版社 |
|
體育運動 |
新建圖書失敗 |
14 |
2.9 |
如何假摔 |
000004 |
劉翔 |
高等教育出版社 |
99.sad |
體育運動 |
新建圖書失敗 |
15 |
2.10 |
如何假摔 |
000004 |
劉翔 |
高等教育出版社 |
asd |
體育運動 |
新建圖書失敗 |
16 |
2.11 |
如何假摔 |
000004 |
劉翔 |
高等教育出版社 |
asd |
|
新建圖書失敗 |
17 |
2.12 |
如何假摔 |
000004 |
劉翔 |
高等教育出版社 |
38 |
體育運動 |
新建圖書成功 |
1,2,3,4,5,7 |
表14 測試結果記錄
用例編號 |
預期結果 |
實際結果 |
測試結果 |
測試日期 |
測試人 |
2.1 |
新建圖書成功 |
新建圖書成功 |
通過 |
2014/4/18 |
|
2.2 |
新建圖書失敗 |
新建圖書失敗,提示圖書名稱重複 |
通過 |
2014/4/18 |
|
2.3 |
新建圖書失敗 |
新建圖書失敗,提示文本有空白 |
通過 |
2014/4/18 |
|
2.4 |
新建圖書失敗 |
新建圖書失敗,提示文本有空白 |
通過 |
2014/4/18 |
|
2.5 |
新建圖書失敗 |
新建圖書失敗,提示文本有空白 |
通過 |
2014/4/18 |
|
2.6 |
新建圖書失敗 |
新建圖書失敗,提示文本有空白 |
通過 |
2014/4/18 |
|
2.7 |
新建圖書失敗 |
新建圖書失敗,提示價格必須爲浮點數或者不爲0開頭的整數 |
通過 |
2014/4/18 |
|
2.8 |
新建圖書失敗 |
新建圖書失敗,提示文本有空白 |
通過 |
2014/4/18 |
|
2.9 |
新建圖書失敗 |
新建圖書失敗,提示價格必須爲浮點數或者不爲0開頭的整數 |
通過 |
2014/4/18 |
|
2.10 |
新建圖書失敗 |
新建圖書失敗,提示價格必須爲浮點數或者不爲0開頭的整數 |
通過 |
2014/4/18 |
|
2.11 |
新建圖書失敗 |
新建圖書失敗,提示文本有空白 |
通過 |
2014/4/18 |
|
2.12 |
新建圖書成功 |
新建圖書成功 |
通過 |
2014/4/18 |
|
l “修改圖書信息”功能的測試設計
該功能的測試設計與“新建(登記)圖書”功能的測試設計相似,因爲輸入的圖書信息仍然必須滿足圖書名稱,圖書編號,圖書作者,出版社,登記價格以及圖書種類的限制。
表15 等價類劃分
輸入條件 |
有效等價類 |
編號 |
無效等價類 |
編號 |
圖書名稱 |
不重複且不爲空 |
1 |
名稱重複 |
8 |
名稱爲空 |
9 |
|||
圖書編號 |
不爲空 |
2 |
爲空 |
10 |
圖書作者 |
不爲空 |
3 |
爲空 |
11 |
出版社 |
不爲空 |
4 |
爲空 |
12 |
登記價格 |
不爲空,且不以0開頭的整數 |
5 |
數據類型爲0開頭整數 |
13 |
爲空 |
14 |
|||
不爲空,且爲浮點數 |
6 |
不爲浮點數 |
15 |
|
不爲整數 |
16 |
|||
圖書種類 |
不爲空 |
7 |
爲空 |
17 |
表16 測試用例設計
用例編號 |
輸入 |
預期輸出 |
覆蓋範圍 |
|||||
圖書名稱 |
圖書編號 |
圖書作者 |
出版社 |
登記價格 |
圖書種類 |
|||
3.1 |
軟件工程 |
000001 |
呂宇翔 |
機械工業出版社 |
19.00 |
計算機科學 |
修改圖書成功 |
1,2,3,4,6,7 |
3.2 |
軟件工程 |
000002 |
盧宇翔 |
機械工業出版社 |
22.00 |
計算機科學 |
修改圖書失敗 |
8 |
3.3 |
|
000003 |
劉翔 |
高等教育出版社 |
33.00 |
體育運動 |
修改圖書失敗 |
9 |
3.4 |
如何假摔 |
|
劉翔 |
高等教育出版社 |
59.88 |
體育運動 |
修改圖書失敗 |
10 |
3.5 |
如何假摔 |
000004 |
|
高等教育出版社 |
38.88 |
體育運動 |
修改圖書失敗 |
11 |
3.6 |
如何假摔 |
000004 |
劉翔 |
|
99.55 |
體育運動 |
修改圖書失敗 |
12 |
3.7 |
如何假摔 |
000004 |
劉翔 |
高等教育出版社 |
0123 |
體育運動 |
修改圖書失敗 |
13 |
3.8 |
如何假摔 |
000004 |
劉翔 |
高等教育出版社 |
|
體育運動 |
修改圖書失敗 |
14 |
3.9 |
如何假摔 |
000004 |
劉翔 |
高等教育出版社 |
99.sad |
體育運動 |
修改圖書失敗 |
15 |
3.10 |
如何假摔 |
000004 |
劉翔 |
高等教育出版社 |
asd |
體育運動 |
修改圖書失敗 |
16 |
3.11 |
如何假摔 |
000004 |
劉翔 |
高等教育出版社 |
asd |
|
修改圖書失敗 |
17 |
3.12 |
如何假摔 |
000004 |
劉翔 |
高等教育出版社 |
38 |
體育運動 |
修改圖書成功 |
1,2,3,4,5,7 |
表17 測試結果記錄
用例編號 |
預期結果 |
實際結果 |
測試結果 |
測試日期 |
測試人 |
2.1 |
修改圖書成功 |
修改圖書成功 |
通過 |
2014/4/18 |
|
2.2 |
修改圖書失敗 |
修改圖書失敗,提示圖書名稱重複 |
通過 |
2014/4/18 |
|
2.3 |
修改圖書失敗 |
修改圖書失敗,提示文本有空白 |
通過 |
2014/4/18 |
|
2.4 |
修改圖書失敗 |
修改圖書失敗,提示文本有空白 |
通過 |
2014/4/18 |
|
2.5 |
修改圖書失敗 |
修改圖書失敗,提示文本有空白 |
通過 |
2014/4/18 |
|
2.6 |
修改圖書失敗 |
修改圖書失敗,提示文本有空白 |
通過 |
2014/4/18 |
|
2.7 |
修改圖書失敗 |
修改圖書失敗,提示價格必須爲浮點數或者不爲0開頭的整數 |
通過 |
2014/4/18 |
|
2.8 |
修改圖書失敗 |
修改圖書失敗,提示文本有空白 |
通過 |
2014/4/18 |
|
2.9 |
修改圖書失敗 |
修改圖書失敗,提示價格必須爲浮點數或者不爲0開頭的整數 |
通過 |
2014/4/18 |
|
2.10 |
修改圖書失敗 |
修改圖書失敗,提示價格必須爲浮點數或者不爲0開頭的整數 |
通過 |
2014/4/18 |
|
2.11 |
修改圖書失敗 |
修改圖書失敗,提示文本有空白 |
通過 |
2014/4/18 |
|
2.12 |
修改圖書成功 |
修改圖書 |
通過 |
2014/4/18 |
|
5.2 對性能的測試
表18 性能測試
編號 |
性能名稱 |
性能描述 |
輸入 |
系統響應 |
發現問題 |
測試結果 |
測試時間 |
測試人 |
1 |
正確性需求 |
系統要能夠把圖書信息,櫃檯信息,倉庫信息,用戶賬號信息以及管理員信息準確的進行增刪修改的操作 |
圖書信息,櫃檯信息,倉庫信息,用戶賬號信息,管理員賬號信息 |
數據信息被更新 |
無 |
通過 |
2014/4/18 |
|
2 |
正確性需求 |
進行倉庫的圖書入庫,以及倉庫間和倉庫到櫃檯間的庫存調撥時,必須準確有效的處理好倉庫圖書以及櫃檯圖書信息以及庫存數據的更新 |
目標倉庫信息,起始倉庫信息,目標櫃檯信息,庫存調撥的圖書Item對象,調撥數量 |
系統響應庫存的調撥,更新各項數據 |
無 |
通過 |
2014/4/18 |
|
3 |
正確性需求 |
系統要實現對入庫圖書的定價以及櫃檯銷售圖書的價格調整,必須要有精確的數據修改和處理的能力 |
櫃檯信息,倉庫信息,圖書信息,價格信息 |
系統能夠正確無誤的進行價格數據的修改 |
無 |
通過 |
2014/4/18 |
|
4 |
時間特性需求 |
系統啓動初始化時獲取本地計算機以及網卡IP數據並更新UI的動作要在特定的時間內快速完成 |
本地計算機信息,時間以及網卡IP的獲取 |
系統應能在1秒之內完成程序啓動的初始化動作 |
無 |
通過 |
2014/4/18 |
|
5 |
時間特性需求 |
進行數據檢索以及更新數據列表時,系統需要在特定的時間內快速做出反應 |
賬號登陸信息,基礎信息的增刪改查以及倉庫櫃檯庫存和價格的信息 |
系統能在0.5秒之內完成數據的響應 |
無 |
通過 |
2014/4/18 |
|