不放过任何一个意外

上一篇 / 下一篇  2012-08-31 11:20:16

    最近总在无意间发现出重大BUG,而根据测试用例却只能发现比较容易发现的BUG。

    昨天测试权限管理系统,在资源管理页面,其他的资源都可以建二级菜单,而唯独有一个资源不能建二级菜单。看tomcat的日志发现有一个错误是:

 Preparing: select RBAC_RESOURCE_ID, RBAC_SYSTEM_ID, PARENT_RESOURCE_ID, RESOURCE_CODE, RESOURCE_NAME_LOCAL,RESOURCE_NAME_EN,RESOURCE_TYPE, (select RESOURCE_NAME_LOCAL from RBAC_RESOURCE where RBAC_RESOURCE_ID=?) as PARENT_RESOURCE_NAME_LOCAL, (select RESOURCE_NAME_EN from RBAC_RESOURCE where RBAC_RESOURCE_ID=?) as PARENT_RESOURCE_NAME_EN, (select RESOURCE_NAME_LOCAL from RBAC_RESOURCE where RBAC_RESOURCE_ID=(select PARENT_RESOURCE_ID from RBAC_RESOURCE where RBAC_RESOURCE_ID=?))as E_PARENT_RESOURCE_NAME_LOCAL, (select RESOURCE_NAME_EN from RBAC_RESOURCE where RBAC_RESOURCE_ID=(select PARENT_RESOURCE_ID from RBAC_RESOURCE where RBAC_RESOURCE_ID=?))as E_PARENT_RESOURCE_NAME_EN, (select NAME_LOCAL from RBAC_DICT_VALUE where VALUE_CODE=(select HTTP_METHOD from RBAC_RESOURCE where RBAC_RESOURCE_ID=?))as HTTP_METHOD, RESOURCE_URI, HTTP_METHOD, WEIGHT, DESCRIPTION, IS_DELETE, CREATE_USER, CREATE_DATE, UPDATE_USER, UPDATE_DATE from RBAC_RESOURCE where RBAC_RESOURCE_ID = ?
2012-08-31 11:23:43,231 [http-8088-6] DEBUG [java.sql.PreparedStatement] - ==> Parameters: d97faf137c6443628f5d6ca598ee5667(String), d97faf137c6443628f5d6ca598ee5667(String), d97faf137c6443628f5d6ca598ee5667(String), d97faf137c6443628f5d6ca598ee5667(String), d97faf137c6443628f5d6ca598ee5667(String), d97faf137c6443628f5d6ca598ee5667(String)
2012-08-31 11:23:43,238 [http-8088-6] ERROR [error.jsp] -
### Error querying database.  Cause: java.sql.SQLException: ORA-01427: 单行子查询返回多个行

意思是这个SQL语句本来该返回一个表中的一行数据的,结果返回了两行数据。

    我将这个SQL语句复制到oracle的客户端,发现在查找select NAME_LOCAL
          from RBAC_DICT_VALUE
         where VALUE_CODE = (select HTTP_METHOD
                               from RBAC_RESOURCE
                              where RBAC_RESOURCE_ID = 'd97faf137c6443628f5d6ca598ee5667')表时,返回了两行数据。

rbac_dict_value中有两条数据字典23和字典1的code相同。而字典23的is_delete值为1,已被删除。所以应在sql语句后加上IS_DELETE='0',将已删除的数据过滤掉。

 

前不久,看过一篇文章,说做黑盒测试久了,智商会变低。难道那些做开发的,就会越来越聪明吗?

 


TAG:

 

评分:0

我来说两句

Open Toolbar