如表1、表2、表3所示。
表1 开始/中断/完成测试
开始/中断/完成测试 |
标准说明 |
开始测试标准
|
硬件环境可用且系统软件正确安装完成 |
中断测试标准 |
安装无法完成或程序的文档有相当多的失误或系统异常 |
完成测试标准 |
完成测试计划中的测试规划并达到测试质量的目标,并由胡良,李红亮确认 |
表2 测试技术
测试技术 |
说明 |
编写测试用例
|
在产品编码阶段编写测试用例 |
单元测试 |
对具体模块或函数进行测试 |
集成测试 |
检测模块集成后的系统是否达到需求 |
系统测试 |
对业务流程及数据流的处理是否符合标准,系统对业务流的处理是否存在逻辑不严谨和错误以及是否存在不合理的标准及要求 |
表3 测试类型
开始/中断/完成测试 |
标准说明 |
功能测试
|
根据《图书销售系统需求规格说明书》和《图书销售系统系统设计说明书》,检查产品是否正确实现了功能 |
边界值测试 |
选择边界数据进行测试,确保系统功能正常,程序无异常 |
界面测试 |
检查界面是否美观合理 |
文档测试 |
检查文档是否足够、描述是否合理 |
利用Visual Studio 2012中自带的单元测试功能进行单元测试,测试各个类中的函数。按要求输入,测试与预期结果是否吻合,如果不吻合,则单元测试结果,将显示失败或其他错误信息,若成功则单元测试结果将显示“通过”,如表4所示。
表4 单元测试
序号 |
测试函数名 |
函数功能 |
是否成功 |
是否更正 |
1 |
AddButton_OnLButtonUp |
添加管理员对话框的确认按钮按下后,系统获取用户输入的账号以及密码文本,并向管理员列表中添加新的记录 |
是 |
/ |
2 |
LoginButton_OnLButtonUp |
登陆窗体对话框的登陆按钮被按下后,系统会更具登陆类型(管理员或者用户)自动检测和匹配用户输入账号以及密码,成功则执行登陆操作,错误则给出提示 |
是 |
/ |
3 |
OnInitControl |
程序初始化函数,系统启动时加载本地计算机信息时初始化载入动画,并对所有的工作页面进行隐藏和初始化 |
是 |
/ |
4 |
OnActiveTabChanged |
工作页面切换函数,通过用户选择的页面按钮,激活按钮对应的工作区域和页面 |
否 |
是 |
5 |
intrueBut_OnLButtonUp |
库存调拨函数,当库存调拨窗体的确认按钮被按下时,系统检测用户输入的调拨数量文本,搜索和匹配仓库列表中的入库图书信息,在起始仓库以及目标仓库之间进行库存调拨,更新调拨后的库存数据 |
是 |
/ |
6 |
updateprice_button_OnLButtonUp |
图书调价函数,当图书调价窗体的确认按钮被按下时,系统自动检测用户输入的新的销售价格,搜索和匹配柜台图书列表中对应的Item并对其的销售价格进行修改 |
是 |
/ |
本系统的集成测试重点是工作页面的跳转和切换是否正确,以及页面间参数的传送是否正确。
对于页面间的跳转测试,主要测试点击本系统中的各个主功能按键的时候是否跳转和切换到指定的页面。对于参数的传递,主要测试页面间传递参数所产生的结果是否正确。
针对图书销售系统,按照《图书销售系统需求规格说明书》中的功能模块设计,为系统的各项功能设计测试方案,其中对数据要求不高的功能只是提出了大致的测试要求,但对于几项数据正确性要求比较高的功能我们按照等价类划分的方法,设计了测试用例。对于每个测试用例,均以清晰的表格形式记录了测试结果(通过或者不通过)、发现问题、测试人员及测试时间。
对于性能测试、按照《图书销售系统需求规格说明书》对性能的要求,设计了性能测试的表格。按照这个表格对系统中比较重要的几项性能需求进行了测试。每项测试同功能测试一样均记录了发现问题、测试结果、测试人员及测试时间。
测试添加管理员事件处理代码文件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("账号已存在,请重新输入")
测试结果:通过
测试用户或者管理员进行系统登陆的事件处理代码文件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("管理员账号或者密码错误")
测试结果:通过,界面数据信息更新显示成功
测试图书销售系统运行初始化事件处理代码文件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")
测试结果:通过,界面数据信息显示成功
测试主要功能按钮响应事件处理代码文件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
测试结果:通过
测试添加管理员事件处理代码文件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
测试结果:通过
测试柜台图书销售价格调整事件处理代码文件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
测试结果:通过
本系统的集成测试重点是页面和工作区间的跳转和切换,以及页面间的参数传递是否正确。对于页面切换的测试,主要测试点击本系统中的各个页面对应的主要功能按钮是否能跳转到对应的工作区域中,能否实现各个工作区间不相互影响,对于参数传递的测试,主要测试页面间传递参数产生的结果是否正确。
下面根据图书销售系统列出各个工作区域跳转的测试结果(如表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 |
下面根据图书销售系统列出子功能界面的参数传递的测试结果(如表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 |
系统测试时按照贴近实际的场景进行部署后对系统进行的一系列严格有效的测试。它主要包括两个方面,一是功能测试,二是性能测试。
下面根据《图书销售系统设计说明书》所列出的各个功能模块,对于有些与数据表内的数据项直接相关,且数据项对其了性有较高的要求的功能模块,在功能测试设计表(表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 |
|
表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 |
|