Day XX 单元测试

单元测试的原因

测试的目的

单元测试是对软件组成单元进行的测试。其目的是检验软件基本组成单位的正确性。要先做单元测试,然后再集成测试。否则集成测试全是 bug 。

单元测试的目的:

  1. 验证软件的正确性,稳定性

  2. 找出程序中的 bug

单元测试的益处:

提高软件之类;

促进代码优化;

提升研发效率;

单元测试的进行时间

边写码 边测试 Unit Test

最后集成测试:性能测试 + 稳定性测试

单元测试的内容

单元测试的 AIR 原则

A:自动化

能够保证单元测试自动化关闭或开启。

I:独立性

每个模块都相互独立

R:可重复性

可重复测试

单元测试 BCDE

B:Border

要考虑输入值的所有边界值

C:Correct

有正确的输入,得到正确的结果

E:Error

有错误的输入,得到错误的结果

D:Design

与设计文档相结合

单元测试框架

JUnit

Mockito

Spring TestContext Framework

使用 maven-surefire-plugin + Jacco 进行测试覆盖检测

系统安全实践

越权访问的类型

  1. 垂直越权访问

  1. 水平越权访问

越权访问漏洞防范措施

  1. 前后端同事对用户输入信息进行校验,使用双重验证机制

  2. 调用功能前,验证用户是否有权限调用相关功能

  3. 执行关键操作前必须验证用户身份,验证用户是否具有操作数据的权限

  4. 直接对象引用的资源ID要加密,防止攻击者枚举ID,敏感数据要进行脱敏

  5. 永远不要相信来自用户的输入,对于可控参数进行严格的检查和过滤

敏感数据处理规约

特殊数据授权

特殊信息脱敏

特殊信息加密

特殊信息传输

数据脱敏的原则

  1. 保持原有特征

  2. 保持数据之间的一致性

  3. 保持业务规则的关联性

  4. 多次脱敏之间的数据一致性

特殊信息脱敏:

前端展示时脱敏

日志记录时脱敏

数据存储加密:

在 Mybatis 中使用 Handler 进行处理。parameter handler 和 result handler

在 JDBC 中使用 statement 进行处理

SQL 注入问题

通过 SQL 命令插入到 Web 表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令。

$ 和 # 的使用: 避免使用 $

重放攻击

使用 sentinel 实现 API 接口防刷

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值