对服务器端的测试,免不了对服务器端的接口与数据库之间进行各种交互的业务测试。这类隐藏类需求的分解实际上也能使测试人员站在一个更高的角度去分解实际的业务需求。对数据库的操作,一般都是增删查改这四类,所以对其隐藏的需求类分解基本也是围绕这些方面,还有就是数据库数据存储时的一些问题。服务器与数据库之间一般不会直接进行连接,一般都会存在一个中间层,比如数据库代理或者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位,这时就会抛异常~

第二:数据库密码字段保存问题。

类似用户的密码,在数据库中一般都不能直接明文保存,需要在保存前,先对密码进行加密再保存到数据库中。

转载于:https://www.cnblogs.com/loleina/p/5795447.html

业务逻辑中的测试总结(二)----业务与数据库交互需求的测试分解相关推荐

  1. (转)淘淘商城系列——在业务逻辑中添加缓存

    http://blog.csdn.net/yerenyuan_pku/article/details/72871268 上文我们一起学习了如何使用Spring容器来管理Redis单机版和集群版实现,本 ...

  2. php修改手机号业务逻辑层,PHP实现极限业务逻辑重用的基础教程

    首都源码:的名字让PHP实现基于Openbiz的极端业务逻辑重用 本文继续介绍"自由开源\"开放商业框架",这是一个基于Zend框架的应用PHP框架.正如前面在<O ...

  3. java业务逻辑层文档,java业务逻辑层类图

    Java 面向对象 16 种设计原则一 类的设计原则 1 ...假如已有的系统中存在以下既有的业务逻辑代码: void...下面的类图将它的 2 个不同职责分成 2 个不同的...... java大作 ...

  4. 如何优雅的处理业务逻辑中的定时和延时问题?

    本文将从如何处理业务流程和信息分发中的定时和延时问题出发,横向比较了业界常见的几种方案,如直接多线程编码.Spring定时调度框.大型分布式调度框架.消息中间件定时消息,因为消息中间件接口友好,调用方 ...

  5. Java业务逻辑pyqt_PyQt5 UI界面与业务逻辑分离

    先说遇到的问题希望遇到和我一样问题的童鞋也可以成功解决.我在处理逻辑业务时候比较耗时经常造成界面未响应!!!. 但是当使用python 的thread时候会造成主界面数据复原,暂时不知道什么原因.之后 ...

  6. SpringBoot自定义异常,优雅解决业务逻辑中的错误

    文章目录 前言 设计 1. 自定义枚举类 2. 自定义异常 3. 异常全局处理 4. 使用 前言 在我们开发中,总会碰到一些异常 ---------- 运行时异常(不受检异常):RuntimeExce ...

  7. 学习淘淘商城第三十四课(在业务逻辑中添加缓存)

    上节课我们一起学习了如何用Spring容器来管理Redis单机版和集群版实现.这节我们来学习下在业务中添加缓存. Redis添加缓存有两种方式,一种是set,另一种是hset,这两种方式的不同之处是h ...

  8. 为什么spring中的controller跳转出错_你的业务代码中Spring声明式事务处理正确了吗?

    Spring 针对 Java Transaction API (JTA).JDBC.Hibernate 和 Java Persistence API(JPA) 等事务 API,实现了一致的编程模型,而 ...

  9. Spring 声明式事务在业务开发中容易碰到的坑总结

    Spring 声明式事务,在业务开发使用上可能遇到的三类坑,包括: 第一,因为配置不正确,导致方法上的事务没生效.我们务必确认调用 @Transactional 注解标记的方法是 public 的,并 ...

最新文章

  1. linux:Ubuntu入门基础
  2. 从JoinBatchGroup 代码细节 来看Rocksdb的相比于leveldb的写入优势
  3. canvas知识点总结2
  4. linux启动java jar文件_推荐:Linux启动Java程序jar包Shell脚本
  5. 关于Apache mod_rewrite的中文配置、使用和语法介绍(实现URL重写和防盗链功能)
  6. VMware10.0中安装CentOS8时提示客户机操作系统已禁用CPU,请关闭或重置虚拟机
  7. 谁拿了最多奖学金pascal程序
  8. (轉貼) Jolt 2007得獎名單 (News) (.NET)
  9. 【今日CV 视觉论文速览】Part2 1 Feb 2019
  10. Spark Dataset 入门详解
  11. 20145324 《Java程序设计》第1周学习总结
  12. overleaf 插入visio图像
  13. 亚马逊 kindle 刷机 过程记录
  14. 高精度室内外融合定位服务平台-“羲和”系统
  15. 中国银行业发展前景预测与未来战略规划建议报告2022-2028年版
  16. c语言报告反思,c语言教学的反思.pdf
  17. 科普|AGV自动运输车的不同导航方式以及优缺点
  18. word的大表格中自动换页
  19. c#把word文档转换为html页面
  20. Python使用try...except...输出详细错误信息(比如报错具体位置在第几行)

热门文章

  1. SYSCALL_DEFINE含义
  2. Reference和ReferenceQueue
  3. 线索二叉树(基于链表存储树结点)
  4. 操作系统(七)进程的概念、组成、特征
  5. LIVE555再学习 -- VLC搭建RTSP服务器(转)
  6. Hi3516A开发--I2C/SPI读写命令
  7. Bit-Z如何注册?【新手操作指南】
  8. 去中心化钱包CoinU诞生 黑客攻不破的铜墙铁壁
  9. 【译】Why Decentralized AI Matters Part III: Technologies
  10. 从比特币脚本引擎到以太坊虚拟机