提高服务端编码质量 - 用例检查列表

文章目录
1. 查询
1.1. 分页显示
1.2. 数据一致性
1.3. 分类排序
1.4. 模糊查询
1.5. 查询条件
2. 新增
2.1. 是否必填
2.2. 字符长度
2.3. 数字边界
2.4. 合法数据
2.5. 特殊字符
2.6. 带空格的字段
2.7. 上传功能
2.8. 重复添加
3. 修改
3.1. 是否必填
3.2. 字符长度
3.3. 数字边界
3.4. 合法数据
3.5. 特殊字符
3.6. 带空格的字段
3.7. 重复修改
4. 删除
4.1. 删除不存在的数据
4.2. 删除合法数据
4.3. 不允许删除的数据
4.4. 删除数据的衍生影响
提高服务端编码质量,对我们的编码进行Code Review十分重要,今天我整理下我在开发过程中的历史经验,整理了一份检查列表,欢迎大家一起来补充和完善。

查询

分页显示
    检查分页功能是否正常,分页边界是否有矫正机制,例如非数值类型,下限是否校验,上限是否设置允许最大值等。

数据一致性
    查询数据是否一致,这种情况不一致可能是接口错误,或者存在缓存。
    返回总数是否正确,这个经常会被忽略。
分类排序
    是否有进行排序功能,排序是否符合需求,例如需求是要根据热度排序,接口返回按更新时间排序明显就和需求有偏差了。

模糊查询
    是否是模糊查询,还是精确查询。
    特殊字符是否过滤,例如MySQL的特殊字符:“&”和“_”。
    查询的性能问题,MySQL的模糊查询走全表,所以客户端接口一定要确认性能是否有影响。客户端接口对性能有要求,建议使用Elasticsearch、Solr等全文搜索。
查询条件
    开始时间和结束时间的边界
    关键字对于特殊字符、空字符串、超长字符、数字边界等约束。
新增

是否必填
    对于强制输入的字段,是否必填,错误信息是否正确。

字符长度
    最长最短长度都要测。举个例子,比如数据库的一个字段类型是text,觉得需要测试它的上限么?答案是:要。一个真实案例,一个文章的内容一不小心可能就超过65535的上限,这个时候接口就出现500的错误咯。

数字边界
    对于数字型的字段,测试上下边界非常重要。经常我们会忽略这点,举个例子,超过Integer上限并不是我们想象的那么遥不可及。

合法数据
    如枚举类型(1-上架;2-下架),电话号码、电子邮箱、时间格式等。

特殊字符
    特殊字符允不允许(业务决定),会不会导致数据库报错和乱码
是否存在SQL注入的可能。
    是否存在xss攻击的可能。
带空格的字段
    服务端是否有做trim操作,只输入空格是否正确保存。

上传功能
    上传的文件是否可以使用,上传的文件格式是否有限制等。

重复添加
    是否输入字段不能输入重复的数据,是否区分大小写的情况,如果输入重复数据,程序不能奔溃并且错误的提示信息正常(正常是409错误码)。

修改

    修改接口检验标准和新增接口类似。

是否必填
    对于强制输入的字段,是否必填,错误信息是否正确。

字符长度
    最长最短长度都要测。举个例子,比如数据库的一个字段类型是text,觉得需要测试它的上限么?答案是:要。一个真实案例,一个文章的内容一不小心可能就超过65535的上限,这个时候接口就出现500的错误咯

数字边界
    对于数字型的字段,测试上下边界非常重要。经常我们会忽略这点,举个例子,超过Integer上限并不是我们想象的那么遥不可及。

合法数据
    如枚举类型(1-上架;2-下架),电话号码、电子邮箱、时间格式等。

特殊字符
    特殊字符允不允许(业务决定),会不会导致数据库报错和乱码
    是否存在SQL注入的可能。
    是否存在xss攻击的可能。
    带空格的字段
    服务端是否有做trim操作,只输入空格是否正确保存。

重复修改
    修改不存在的数据:是否有合理的错误提示。(正常是404错误码)。
    修改合理数据:是否修改
删除

    删除不存在的数据
        是否有合理的错误提示。

    删除合法数据
    这个有几个Code Review点

**是否删除成功(数据层面)**
    删除后数据库应该是查不到的。(这个特别注意缓存的同步问题)
    是真删除,还是伪删除。
    删除后可以添加同样的数据记录。
    不允许删除的数据
    因为业务的需求,有些数据正在使用,所以不允许删除。根据业务情况,进行分析。

删除数据的衍生影响
    例如这个记录在其他表由被引用到,互联网产品一般情况下不用外键,所以要特别注意,衍生数据的影响和处理机制。

(完)
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
好的,针对图书馆管理系统,我们可以编写以下测试用例: 1. 用户登录功能测试用例: - 输入正确的用户名和密码,登录成功 - 输入不存在的用户名和密码,提示错误信息 - 输入正确的用户名但错误的密码,提示错误信息 2. 图书查询功能测试用例: - 按书名查询,查询结果正确 - 按作者查询,查询结果正确 - 按出版社查询,查询结果正确 - 输入不存在的关键字查询,提示查询结果为空 3. 图书借阅功能测试用例: - 图书可借阅,借阅成功 - 图书不可借阅,借阅失败 - 借阅同一本书超过规定的借阅天数,产生逾期罚款 - 逾期罚款产生后,不能再借阅其他书籍 4. 图书归还功能测试用例: - 图书已借出,归还成功 - 图书未借出,归还失败 - 归还同一本书超过规定的归还天数,产生逾期罚款 - 逾期罚款产生后,不能再借阅其他书籍 5. 用户信息管理测试用例: - 用户信息正确修改成功 - 用户信息删除成功 - 用户信息添加成功 6. 图书信息管理测试用例: - 图书信息正确修改成功 - 图书信息删除成功 - 图书信息添加成功 7. 系统安全性测试用例: - 输入非法字符,系统能够正确响应并提示错误信息 - 输入SQL注入代码,系统能够正确拦截并提示错误信息 - 输入恶意脚本,系统能够正确拦截并提示错误信息 以上是一些基本的测试用例,具体测试用例的编写还需要根据实际情况进行补充。同时,我们需要注意对测试用例的覆盖率,尽可能覆盖到系统的所有功能和场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值