1、商品仓库管理系统测试报告引言1背景本测试计划从属于商品存储管理系统.用户为中、小规模超市、商场。执行本测试前,应完成软件计划,需求分析,设计及编码工作.2参考文档需求分析文档,概要设计文档,详细设计文档,测试计划文档,程序清单。一、软件说明1本软件的主要功能为: 对商品入库和出库详细情况进行登记 对库存信息进行高级查询 对用户需求申请进行登记 对库存情况进行自动监督和报警 定期自动生成采购清单 定期对信息排序和生成报表 对操作日志进行登记2条件与限制:考虑到本软件面向的用户群比较广泛,在设计时应注意使软件具有较强的可移植性;因本软件管理的某些信息属商业机密,必须注意信息的安全防范,同时应以标准
2、的数据格式来实现,以方便数据共享;二、测试步骤本次测试采用黑盒法。主要依据需求分析文档和测试计划文档,以需求分析文档中的功能模块为单位,对编码人员提交的成型系统进行测试.综合使用等价类划分法和其它方法。详细测试步骤如下: 身份验证。功能为:对登录系统的用户进行身份合法性检查,要求输入帐号和密码。禁止身份信息不正确的用户登录;当输入密码错误次数超过一定限制时(初定为3次)将自动关闭系统,以防止非法穷举入侵;将成功的登录操作记入操作日志文件1有效等价类:输入为用户信息表中保存的用户名和对应的密码。测试用例为:等价类编号用户名密码输出1曹冰洁cbj“登录正确”2李媛媛lyy“登录正确”3罗曼lm“登
3、录正确”4熊婷xt“登录正确”5詹求芝zqz“登录正确”6系统管理员a705“登录正确”符合预期结果。通过“查询功能检查操作日志,发现已登记以上“登录数据库操作及相应用户名密码。符合预期结果。2无效等价类:用户名不在用户信息表中,密码在用户信息表中。测试用例为:用户名:曹冰密码: cbj点“确定后,弹出“用户名和密码错误”对话框。符合预期结果。用户名在用户信息表中,密码不在用户信息表中。测试用例为:用户名:曹冰洁密码: cb点“确定”后,弹出“用户名和密码错误”对话框。符合预期结果。用户名和密码均在用户信息表中,但两者不匹配.测试用例为:用户名:曹冰洁密码: zqz点“确定”后,弹出“用户名和
4、密码错误”对话框。符合预期结果。连续输入错误达3次时,登录对话框自动关闭.符合预期结果。 帐号和密码管理。功能为:以系统管理员身份登录系统后,可建立,修改,删除所有用户信息(帐号和密码)。1 有效等价类:修改和删除:须提供用户信息表中的用户名和密码。测试用例为:等价类编号用户名旧密码新密码新密码确认操作类型输出1曹冰洁cbjcbj1cbj1修改“修改用户信息成功!”cbj空空删除“删除用户信息成功!”2李媛媛lyylyy1lyy1修改“修改用户信息成功!lyy空空删除“删除用户信息成功!”3罗曼lmlm1lm1修改“修改用户信息成功!”lm空空删除“删除用户信息成功!”4熊婷xtxt1xt1修
5、改“修改用户信息成功!xt空空删除“删除用户信息成功!”5詹求芝zqzzqz1zqz1修改“修改用户信息成功!”zqz空空删除“删除用户信息成功!”6系统管理员a705705705修改“修改用户信息成功!”a705空空删除“删除用户信息成功!”添加:须提供新用户的用户名和密码。用户名、密码均为长度不超过16B的任意字符串。测试用例为:等价类编号用户名旧密码新密码新密码确认操作类型输出7管理员空glygly添加“添加用户信息成功!8mng空mmmm添加“添加用户信息成功!说明:上表中标记为空处表示:当前操作类型下,此项目不可编辑。文本框设置为具有这样的性质:当输入字符数达到16时,后续输入的字符
6、不被接受。(自动控制用户名和密码的长度上界)2 无效等价类操作类型为“修改”时:用户名不在用户信息表中,“旧密码”在用户信息表中。测试用例为:用户名:曹冰旧密码: cbj输出:“用户名不正确”。符合预期结果。用户名在用户信息表中,“旧密码不在用户信息表中.测试用例为:用户名:曹冰洁旧密码: cb输出:“用户旧密码不正确”。符合预期结果。用户名和“旧密码”均在用户信息表中,但两者不匹配。测试用例为:用户名:曹冰洁旧密码: zqz输出:“用户旧密码不正确”。符合预期结果。用户名和“旧密码”均在用户信息表中且匹配。但“新密码”和“新密码确认”不一致。测试用例为:用户名:詹求芝旧密码: zqz新密码:
7、zzz新密码确认:zz输出:“密码确认不一致。符合预期结果。用户名为空。输出:“用户名不能为空。符合预期结果。用户名在用户信息表中,但“旧密码”为空.测试用例为:用户名:詹求芝旧密码:空输出:“用户旧密码不正确”.符合预期结果。用户名和“旧密码均在用户信息表中且匹配。但“新密码”为空。测试用例为:用户名:詹求芝旧密码: zqz新密码:空输出:“新密码不能为空”。符合预期结果.用户名和“旧密码”均在用户信息表中且匹配。“新密码”非空.但 “新密码确认”为空。测试用例为:用户名:詹求芝旧密码: zqz新密码:zzz新密码确认:空输出:“密码确认不一致”。符合预期结果。操作类型为“删除时(“新密码”
8、和“新密码确认”框显示为不可编辑):等价类与等价类 的输入输出相同.操作类型为“添加”时(“旧密码”框显示为不可编辑):用户名为用户信息表中已经存在的用户名,新密码任意给定.测试用例为:用户名:詹求芝输出:“该用户已存在,请输入新用户名用户名不在用户信息表中,但“新密码”和“新密码确认”不一致.测试用例为:用户名:lily新密码:ll新密码确认:哈哈输出:“密码确认不一致符合预期结果。用户名为空.输出:“用户名不能为空”.符合预期结果。用户名不在用户信息表中,但“新密码”为空。测试用例为:用户名:bob新密码:空输出:“新密码不能为空。符合预期结果。用户名不在用户信息表中,“新密码”非空。但“
9、新密码”确认为空。测试用例为:用户名:bob新密码:bb新密码确认:空输出:“密码确认不一致。符合预期结果。 商品入库登记.功能为: 由条形码检测设备读入商品包装上的条形码,系统根据条形码搜索数据库中的商品信息文件,检查该商品基本信息是否已作登记; 若该商品信息未作登记,则填写该商品详细信息单,并提交给数据库,写入商品信息文件,再填写入库单; 若该商品信息已作登记,则直接填写入库单; 检查入库单的合法性:即检查表单中的输入信息是否具有非法字符,商品来源(供应商信息)是否合法; 若检查结果不合法,提示操作员重新输入;若检查结果合法,则根据申请内容对商品库存信息文件和入库文件进行更新,打印入库凭证
10、,完成商品入库操作; 将成功的入库操作写入操作日志文件;相关操作说明:在主界面点“入库按钮后,弹出“入库信息”对话框。“时间”框中将自动显示当前的系统时间,作为商品入库时间.“商品号”框待输入信息.其它框均为不可编辑状态。现向“商品号框中输入一长度为12的数字字符串,模拟由条码读取设备读入的商品条码.假设实际使用环境中条码设备不会出错,即总是读出12位数字串,所以不必检查(模拟读入的)商品号的有效性。此时若点“添加”按钮,弹出对话框“请先运行查询操作!”,表示应先检查此商品基本信息是否已登记.因此测试中越过这一步,直接点“查询按钮.按商品信息是否已登记,分两种情况:情况一:(模拟)读入的商品号
11、已在商品信息表中,弹出对话框:“该商品已存在,请输入入库时的必要信息!”。“供应商号”,“类型”,“商品名,“存放地点”框中将显示此商品号在商品信息表中对应的属性值。“最大量”,“最小量”框中将显示此商品号在库存信息表中对应的属性值。余下的“入库量”,“有效期”,“采购员由用户填写。测试用例:商品号:000100010001,点“查询按钮,可得以上相关信息.经检查,各显示属性与数据库中的值一致。1有效等价类: “入库量”为正整数,“有效期”为yyyy-mm-dd格式的日期,“采购员”为任意字符串(采购员名)。对上面的测试用例(商品号000100010001),输入信息为:入库量:10; 有效期
12、:2006-0101; 采购员:李输出:“添加成功”经检查,数据库相关表都正确更新。符合预期结果。 2 无效等价类:“入库量不是正整数。输出:“入库量应为正整数!。符合预期结果。“入库量”为空。输出:“入库量不可为空!”。符合预期结果。“入库量”是正整数,但大于“最大量”框中的值。输出:“入库量不能大于最大量!。符合预期结果。“入库量是正整数且小于“最大量”框中的值。但“采购员和(或)“有效期”为空。输出:“入库信息不能有一项为空!”符合预期结果。“入库量”是正整数且小于“最大量”框中的值。“采购员”非空。但“有效期”格式错.输出:“有效期应为yyyy-mmdd格式!”符合预期结果。情况二:(
13、模拟)读入的商品号不在商品信息表中,弹出对话框:“该商品为新商品,请输入入库时的必要信息!因是新商品,数据库中尚无相关信息.除“商品号”和“时间以外的所有框都需用户填写.1 有效等价类:“入库量”为正整数且小于“最大量”;“供应商号”为供应商表中的“供应商号”(长度为4的数字串);“ 最大量”为长整形数; “有效期”为yyyy-mmdd格式的日期;“类型” 在规定集合中取值(衣、食、用); “商品名”为任意字符串; “采购员”为任意字符串(采购员名); “最小量” 为长整形数;“存放地点”在规定集合中取值(0120);输出:“入库操作成功!”2 无效等价类:等价类与情况一中等价类输入输出相同。
14、“存放地点”不是规定集合中的值输出:“不可识别的存放地点!”“有效期”格式错或为空输出:“有效期格式错!“供应商号不是供应商表中的“供应商号”输出:“非法供应商号!”“最大量”不是正整数输出:“最大量应为正整数!”“类型”不是规定集合中的值输出:“不可识别的类型!”“商品名”超长输出:“商品名”超长!”“最小量”不是正整数输出:“最小量应为正整数!”“存放地点不是规定集合中的值输出:“不可识别的存放地点!”以上符合预期结果。入库操作后,经检查,入库信息表,商品信息表,库存信息表已正确更新。检查操作日志文件,发现成功的入库操作已登记。符合预期结果。 商品出库登记.功能为: 根据提货申请者提供的商
15、品条形码在商品基本信息文件中查找要提取商品的详细信息,若未找到,表明该商品并不存在,返回提示信息; 若找到,则填写出库单,提出出库申请; 检查出库单的合法性:即检查表单中的输入信息是否具有非法字符; 若检查结果不合法,提示操作员重新输入;若检查结果合法,则根据申请提取的出库量检查库存信息文件,看库存量是否满足提货要求; 若库存量满足要求,则对库存信息文件和出库文件进行更新,打印出库凭证,完成商品出库操作;若不满足则表明库存不足,将用户需求写入采购清单文件,提示进货;将成功的出库操作写入操作日志文件相关操作说明:在主界面点“出库”按钮,弹出“出库信息”对话框。查询时,在“商品号”和(或)“商品名
16、”框中输入欲提取商品的信息。提取时,输入“数量”和“提取人”,点“提取”键,即完成“出库”操作1 有效等价类查询时,仅输入“商品号或“商品名”时,分别为商品信息表中已有的记录。同时输入“商品号和“商品名”时,为商品信息表中同一记录的相应属性.输出:上方框中显示此商品基本信息提取时,数量为小于此商品库存的正整数;提取人非空.输出:“出库操作成功!检查操作日志,发现成功出库操作已登记.符合预期结果.2 无效等价类“商品号不在商品信息表中输出:“此种商品库存为零!”“商品名不在商品信息表中输出:“此种商品库存为零!”“商品号”和“商品名”都在商品信息表中,但不匹配输出:“此种商品库存为零!”“数量”
17、大于欲提取商品的库存量输出:“所提取数量大于库存量!“数量”为空或不是正整数输出:“请输入一个正整数!”“提取人”为空输出:“提取人不能为空!”以上符合预期结果。测试结论:生成采购清单。功能为:根据用户需求和库存报警情况自动生成采购清单;实现采购清单的不定期查看和定期汇总打印;需要生成采购清单的几种情况说明:出库操作的出库量大于商品的库存量时一次出库操作后剩余库存量小于或等于规定的最小量时(库存报警)相关操作说明:在“出库”界面,当出现上面两种情况中的一种时,弹出“生成采购清单对话框。可选定“生成,“添加”,“打印”中的一项进行操作。其中,“生成”操作可在上方框中查看当前的采购清单明细。“添加
18、”操作可根据用户在文本框中键入的内容,将欲购进商品的信息加入原采购清单中。分别对生成采购清单的两种情况设计测试用例如下:对商品号为000100010001的商品(商品名为“泡面)进行出库操作。其当前库存量为170。提取量为180。其它信息正确。点“出库”键后,弹出提示“此商品库存不足!急需可生成采购清单。”。进入采购清单界面。因要加入新的采购记录,选择“添加”操作.输入各项信息为:商品号:000100010001; 商品名:泡面; 入购数量:100; 供应商:0001;点“确定键,提示“生成采购清单成功!,并在上方框中显示此项新的采购记录。符合预期结果。对商品号为000100010005的商品
19、(商品名为“面包)进行出库操作。其规定的最小库存量为20。当前库存量为25。提取量为5。其它信息正确。发现允许进行出库操作。但未弹出“生成采购清单”对话框。继续对此商品出库,提取量为1。发现允许进行出库操作。但仍未弹出“生成采购清单”对话框。出错!自动监督库存情况和报警。功能为:对库存情况进行自动监督,当某商品储量低于给定下限时,予以“库存不足提示”和“进货提示;识别储量减少缓慢的商品,当情况维持时间超过某上限时,予以“不应进货建议”;识别现有库存量大于最大库存量的商品,予以“货存溢出提示”识别滞留期超出限制的商品,予以“停货建议”识别将结束保质期的商品,并予以“上架警告对已过保质期的商品应予
20、以“清货警告” 对上述情况分别进行测试如下:当系统时钟为每月5号,15号,25号时,在登录系统时自动检查“库存信息表中是否存在“现存量”小于“最小量”的记录。存在时,弹出提示“成功运行了库存报警,存在储量低于库存下限的商品。已加入采购清单!”经检查,数据库的“采购清单表”已加入若干新项目,及“库存信息表”中“现存量”小于“最小量”的所有记录对应的商品信息。符合预期结果。此功能未实现!此功能未实现!但在进行“入库操作时,已控制“入库量”不会超过“最大量”。故所述情况不会出现。不影响效果。此功能未实现!此功能未实现!当系统时钟为每月5号,15号,25号时,登录系统时自动检查商品有效期,对早于或等于
21、当前日期的商品,自动弹出提示。如,当前日期为2006-06-05,商品000100010002的有效期为20060601,弹出提示为 “商品号为000100010002的商品已过期,请清除库存!已更新库存信息!”。符合预期结果.查询:根据用户需求提供对数据库信息的精确模糊查询,单项组合查询;以列表方式列出所有符合查询条件的记录;用户对数据库中各文件的浏览查看也通过查询功能实现;相关操作说明:在主界面点“查询”按钮,进入查询界面。每次可在“查看商品信息表”,“查看供应商信息表,“查看操作日志”,“库存信息查询”中选定一个进行操作,分别进入各个子界面。在“库存信息查询”子界面,用户可在“按商品号查
22、询”,“按种类查询”,“按商品名查询”,“按供应商查询”复选框中选择一个或多个进行(组合)查询。下发框中将显示符合条件的商品详细信息。测试用例:前三个项目可以查出相应内容,经检查,与数据库中各表内容一致。符合预期结果。在“查看操作日志”子界面,进行以下测试:选择“按商品号查询”,并输入商品号000100010002,下方框中输出商品号为000100010002的详细信息(此商品名为“巧克力”)。经检查,与数据库中各表的相应记录属性一致。符合预期结果.选择“按商品名查询”,并输入商品名“鼠标”,下方框中输出商品名为“鼠标”的详细信息。经检查,与数据库中各表的相应记录属性一致.符合预期结果.选择“
23、按种类查询”,并在下拉框中选择种类“衣”,下方框中输出种类为“衣”的所有商品的详细信息。经检查,与数据库中各表的相应记录属性一致。符合预期结果。选择“按种类查询”,并在下拉框中选择种类“食”,下方框中输出种类为“食”的所有商品的详细信息。经检查,与数据库中各表的相应记录属性一致。符合预期结果。选择“按种类查询”,并在下拉框中选择种类“用,下方框中输出种类为“用的所有商品的详细信息。经检查,与数据库中各表的相应记录属性一致.符合预期结果。选择“按供应商查询”,并输入供应商号0001,下方框中输出供应商号为0001的所有商品的详细信息。经检查,与数据库中各表的相应记录属性一致。符合预期结果。同时选
24、中“按商品名查询”和“按供应商查询”,并输入商品名“鼠标”,供应商号0002,下方框中显示由供应商0002提供的鼠标的详细信息.经检查,与数据库中各表的相应记录属性一致。符合预期结果.同时选中“按商品名查询”和“按供应商查询”,并输入商品名“面包”,供应商号0001,弹出提示“没有找到符合条件的记录!”。表示供应商0001没有提供任何一种面包.经检查,数据库的商品信息表中不存在同时符合这两个值的记录。符合预期结果。同时选中“按种类查询”和“按供应商查询”,选择种类“食”,供应商号0003,下方框中显示由供应商0003提供的全部食品类商品的详细信息。经检查,与数据库中各表的相应记录属性一致。符合
25、预期结果。同时选中“按种类查询”和“按供应商查询”,选择种类“衣”,供应商号0002,弹出提示“没有找到符合条件的记录!”。表示供应商0002没有提供服装类商品。经检查,数据库的商品信息表中不存在同时符合这两个值的记录.符合预期结果。生成各类报表:入库报表:报告商品近期入库情况;出库报表:报告商品近期出库情况;实现各类报表的不定期查看和定期汇总打印;操作说明:进入“报表”界面后,可选择“入库报表”,“出库报表”,“汇总分析报表”,“结算报表中的一项进行操作.分别进入各个子界面。根据上述功能分别进行测试如下:进入“入库报表”界面。在上方框中可见完整的入库信息表.在“起始时间下拉列表中选择“200
26、4-415,在“截止时间”下拉列表中选择“今天”(显示当前日期“20046-7”).此处“截止时间以0时0分为准。选择“查看”,上方框中显示出这段时间内所有的入库记录。经检查,与数据库中入库信息表的相关内容一致。符合预期结果。进入“出库报表”界面。在上方框中可见完整的出库信息表。在“起始时间”下拉列表中选择“200461”,在“截止时间”下拉列表中选择20046-5。此处“截止时间”以0时0分为准。选择“查看”,上方框中显示出这段时间内所有的出库记录。经检查,与数据库中出库信息表的相关内容一致。符合预期结果.“汇总分析报表:此功能未实现!“结算报表”:此功能未实现!操作日志登记:对任何关系到数
27、据库的操作进行详细记录,便于监督和核查,防止内部人员的非法入侵;操作日志本身的安全性要有一定保障,只有系统管理员有权对操作日志中的记录进行清理操作;但所有用户都有权查看日志。三、测试用例:1有效用例:登录系统时,以普通用户身份进入.在“查询界面,选择“查看操作日志项,可进入子界面并查看到完整的操作日志表内容。符合预期结果。登录系统时,以“系统管理员身份进入。在“查询界面,选择“查看操作日志”项,可进入子界面并查看到完整的操作日志表内容。但在整个系统中找不到修改操作日志的接口!无法实现对操作日志的清空。严重错误!2无效用例由于在整个系统中找不到修改操作日志的接口,任何用户(包括系统管理员)都无法
28、通过用户接口窜改日志。客观上保证了操作日志的安全。但不符合设计思想。四、可移植性测试本系统在安装了Visual C+(6.0以上版本)和Microsoft Access的以下系统上进行了测试:Windows 95/98/2000/Me/XP, Windows NT 4。0并在不同硬件配置的机型上进行了相同测试。全部运行正常。符合一般可移植性要求.五、回归测试将以上测试结果返回设计编码人员后,经过修正测试中发现的错误,再次测试情况如下:在“查询”功能的“查看操作日志”子界面,添加了“清空操作日志”按钮.经测试,以“系统管理员”身份登录时,可对近期操作日志进行全部清空。而以普通用户身份登录时,此按
29、键无效。即普通用户无法否认对数据库作的任何操作。符合预期结果。“库存监督报警”中的未实现功能,经开发组人员分析并与用户代表讨论,协定为通过若干组合操作实现.“生成报表”中的未实现功能,经开发组人员分析,已通过其它功能体现。故在“生成报表”界面中删除了“汇总分析报表和“结算报表”选项。六、评价本软件系统较好的实现了用户要求的功能,能够实现对现实中的商场、超市的商品存储管理。“入库”界面保证了获取入库商品的完整合法信息(信息不完整或不合法时将弹出提示)。“出库”界面在出库操作时能发现库存量不足或低于下限的情况,并提示更新采购清单,此举可提高用户的工作效率.“查询”界面允许用户给定具体查询要求,查看
30、重要表单的相关内容,以使用户从不同角度(侧重点)了解商品存储情况.“采购清单界面使用户可了解近期的采购计划,或添加新的采购计划,避免盲目进货,使资源利用更合理.“生成报表”界面生成入库,出库,汇总分析及结算报表,使用户清楚了解近期的仓库进货、调货情况.“设置用户信息”界面允许系统管理员设置所有用户(仓库管理员)的信息,以此控制访问权限,避免系统遭受恶意攻击,在一定程度上保证了数据安全.初始提交测试的版本中,系统界面友好,大部分子界面在更新数据库信息的同时自动显示相关的表信息,免去了专门转到“查询”界面的工作,使用户轻松掌握商品存储情况.所有子界面的操作都对保持数据库完整性做了要求,对用户的各种非法输入能分别予以警告和提示,避免了因误操作引起的数据库存取异常。存在的问题有:“操作日志”无法清空;某些功能未实现。经过修正的系统版本消除了“操作日志”无法清空的错误,并通过用户身份鉴别,实现了对“操作日志”的保护。同时改进了界面,使之更美观且易于操作。某些未实现功能已通过其它方式实现.但对于另外某些功能,限于编码人员的技术水平,暂时无法实现.须进一步与用户协商,力求以其它等效方法完成用户所需。此后,本软件系统可交付用户验收。七、测试资源消耗 本次测试共消耗机时约20小时.测试人员5人.资源消耗控制在较小范围内.