业务逻辑中的测试总结(二)----业务与数据库交互需求的测试分解
2016-09-20 20:14
337 查看
对服务器端的测试,免不了对服务器端的接口与数据库之间进行各种交互的业务测试。这类隐藏类需求的分解实际上也能使测试人员站在一个更高的角度去分解实际的业务需求。对数据库的操作,一般都是增删查改这四类,所以对其隐藏的需求类分解基本也是围绕这些方面,还有就是数据库数据存储时的一些问题。服务器与数据库之间一般不会直接进行连接,一般都会存在一个中间层,比如数据库代理或者ice_server之类的。服务器端将需要处理的数据传输给ice_server之后,由ice再与数据库进行直接交互,对数据库进行交互的sql语句也就写在ice内部了。
第一:增删改查类操作的需求
对数据库的表进行插入操作时,一般都是执行insert语句;但是实际上还要考虑如下:
A. 数据库是否允许重复插入一条数据?假设存在以下场景:用户身份认证成功后,把用户登录的时间,登录的服务器的信息等记录新增到一个用户登录信息表内;那用户第二次登陆,用户登录信息表怎么操作?
B. 向数据库插入一条空的数据时,保存到数据库是null,还是“”(数据库中,null类似“真空”,“”类似空气)?
实际上这2个问题我都有遇到过,对于第一个问题出现的原因是:在业务层允许重复插入一条数据时,数据库操作层(ice层)编写的sql语句可以使用replace关键字来替代(先删除原先的记录,然后重新插入)。第二个问题出现的原因是:数据库默认值设置问题。数值(整型类型,浮点类型)的字段如果设置默认值为null,则从数据库提取出来后如果在程序中需要进行转换,比如转换成int类型,null就会抛异常,但是“”就不会。所以建议数值类型在数据库中设置默认值为“ ”。
C. 当两个系统同时对一个数据库表中的记录进行查询时,如果数据库表A的字段B设置长度为20位,假设增加的时候,该字段正好站了20位,系统S1查询时,设置保持该字段值为16位,这时就会抛异常~
第二:数据库密码字段保存问题。
类似用户的密码,在数据库中一般都不能直接明文保存,需要在保存前,先对密码进行加密再保存到数据库中。
第一:增删改查类操作的需求
对数据库的表进行插入操作时,一般都是执行insert语句;但是实际上还要考虑如下:
A. 数据库是否允许重复插入一条数据?假设存在以下场景:用户身份认证成功后,把用户登录的时间,登录的服务器的信息等记录新增到一个用户登录信息表内;那用户第二次登陆,用户登录信息表怎么操作?
B. 向数据库插入一条空的数据时,保存到数据库是null,还是“”(数据库中,null类似“真空”,“”类似空气)?
实际上这2个问题我都有遇到过,对于第一个问题出现的原因是:在业务层允许重复插入一条数据时,数据库操作层(ice层)编写的sql语句可以使用replace关键字来替代(先删除原先的记录,然后重新插入)。第二个问题出现的原因是:数据库默认值设置问题。数值(整型类型,浮点类型)的字段如果设置默认值为null,则从数据库提取出来后如果在程序中需要进行转换,比如转换成int类型,null就会抛异常,但是“”就不会。所以建议数值类型在数据库中设置默认值为“ ”。
C. 当两个系统同时对一个数据库表中的记录进行查询时,如果数据库表A的字段B设置长度为20位,假设增加的时候,该字段正好站了20位,系统S1查询时,设置保持该字段值为16位,这时就会抛异常~
第二:数据库密码字段保存问题。
类似用户的密码,在数据库中一般都不能直接明文保存,需要在保存前,先对密码进行加密再保存到数据库中。
相关文章推荐
- 业务逻辑中的测试总结(一)----比值类需求测试分解
- 需求测试总结
- 视图层. 控制层, 业务逻辑层, 数据库访问层------新认识
- 应用产品类业务--测试总结
- VB与数据库的交互经典例子总结
- VB & 数据库交互(二)——经典五实例总结
- 关于数据库表应该采用逻辑主键还是业务主键的讨论
- 业务开发测试HBase之旅三:通过Java Api与HBase交互
- 企业应用业务需求变化的分析与应对-业务需求中的逻辑
- 精心设计的基于组件的C# Win Forms实践 一个框架数据库驱动多个业务逻辑数据库
- 学习struts2建bbs总结一:用powerdesigner建数据库并自动生成测试数据
- J2EE综合--业务逻辑和数据库访问决策
- [转]以数据库为中心的系统中的业务逻辑组织方式
- 作为一个程序员的角色看开发测试与需求的交互
- 性能优化--数据库优化--业务逻辑优化
- 单机数据库性能测试总结
- 基于数据库开发常用方法逻辑总结
- 实习总结(四)---OA办公业务资源系统需求规格说明书
- 数据库访问层Dao业务逻辑小记录(一)
- 精心设计的基于组件的C# Win Forms实践 一个框架数据库驱动多个业务逻辑数据库