通过多个项目上线后的问题反馈来看,原因主要是:
1、对实际业务中可能发生的情况或者说场景考虑不足。
例如:已经到了交易闭市时间,例如5点整闭市,而在柜面在接近5点时发送了一个请求操作,服务器接收到该请求后,把这个操作请求发送到其他系统(交易所系统)请求进行处理,而这个过程中,已经到5点整(实际生产系统中,各服务器系统的时间并非完全同步),而此时服务器已经关闭了交易,造成无法接收请求处理的操作结果,而此时在交易所系统已经做了记录操作成功,但由于银行服务器没有接收到返回,造成产生了单边交易。
2、用户违反操作规则或业务规则操作。
虽然在测试中测试人员会考虑很多异常操作和违反业务规则的情况,但往往在测试阶段由于各种各样的原因没有进行测试(例如:缺少测试设备,在测试中没有使用POS机,而通过软件界面输入到系统与通过POS机设备输入可能存在差。)违反规则的例子:更换银行卡问题。某客户在北京分行开户,后在上海办理了一个新的银行卡,用户要把交易帐户关联的交易帐户转到上海卡上,在交易中出现问题,而系统需求中说明只能是在本分行管辖区域内更换银行卡,而不能跨地域更换。
3、意识上的问题或沟通不足导致的问题。
有时,我们测试人员会认为某些事情应该是这样,应该已经处理了,应该是客户成熟的东西等等,实际上并不是这样。在测试中,柜面和网银上输入借记卡卡号为11位,而实际上网银输入应该为18位。测试中,客户提供我们的卡号也都是从核心系统中搜索到的,也都是11位。实际上借记卡应该有18位,前面6位为银行固定号码,最后一位为检验位,中间11位才是银行卡号。举一个意识问题导致的缺陷,对于银行网银上的密码加密,因为客户的网银早就有系统在运营,而被测试系统部署已经运营的网银中,测试人员往往认为网银密码加密这些应该是客户使用的是成熟的算法,不用再测试。测试实际上不是这样。
测试需求的表示
测试需求可以保存在任何文档中,但是我们在项目中往往是通过测试管理工具进行管理,这样便于进行跟踪管理。下面我们本文结合目前最流行的测试管理工具HP Quality Center (后面简称QC)工具进行讲解。
因为在QC中直接编辑测试需求不是太方便,在Excel中编写在修改、复制、评审时比较方便,所以我们使用了通过Excel导入功能。业务需求和测试需求首先在Excel中进行编写,但是要完全符合导入QC的规则和字段要求(QC中字段可以定制)。
1、为了使用导入功能,需要首先安装QC中导入Excel文件的插件;
2、在Excel文件中做好模板,按照模板编写;
另外,在使用QC等测试管理时,一定要注意QC库的备份以及对用户权限的控制,防止误删除数据库,造成测试成果丢失。
测试需求在QC中的组织层次,测试需求一共包括三层,形成三层的测试需求树:
对业务模块进行统一编号,例如,01-风险控制模块,02-个人网银业务
业务模块下的业务功能需求标识为0201-个人网银入金,表示个人网银业务模块中的第一条功能需求。
在业务功能需求下,添加测试需求,例如0201001-个人入金金额检查,表示个人网银入金的第一条测试需求。
解释:
02表示第2个模块功能,是系统中按照模块功能划分。依次增加。
0203表示第2个模块下的第3个子功能,是在模块功能下面的每个子功能;按照子功能依次增加。
0203001表示为第2个模块下的第3个子功能下的第一个测试需求,为测试需求,测试需求分为3种,以表示第3层的第一位标识。注意有些用例可以专为数据移植后测试的测试用例。
0101001:表示第一条正常功能测试业务需求
0101002:表示第二条正常功能测试业务需求
0101101:表示第一条容错功能测试需求
0101102:表示第二条容错功能测试需求
0101201:表示第一条GUI测试需求
0101301:表示第二条GUI测试需求