T31-Day21单元测试与安全规约

Day21-单元测试与安全规约

单元测试

概念:单元测试时队软件组成单元进行的测试。其目的时检验软件基本组成单位的正确性。测试对象时软件设计的最小单元:模块,又称为模块测试

单元测试的溢出:
  1. 提高软件质量
  2. 促进代码优化
  3. 提升研发效率

测试的几个阶段:单元测试→继承测试→系统测试 ( 解决问题的成本成倍的递增)

单元测试的AIR原则
  • Automatic 自动化
  • Independent 独立性
  • Repetable 可重复性
单元测试的BCDE原则
  • Border 边界值测试
  • Correct 正确的额输入,并得到预期的结果
  • Error 证明程序有错
  • Design 与设计文档相结合

功能性测试之边界值测试

常见单元测试框架
框架 简介 备注
Junit 一个开放源代码的Java测试框架,用于编写和运行可重复的测试 Java语言中被广泛应用的框架
Mockito 一个mock工具,用于模拟各种对象和组件,模拟函数返回值,模拟void类型的异常 模拟还没有实现的功能以及比较重的的对象,使单元测试更加独立
Spring-test 集成各种测试框架的组合框架
Hamcrest 一个测试的框架,它提供了一套通用匹配符Matcher,灵活使用这些匹配符定义的规则 可以更加精准的表达自己的测试思想,指定所想设定的测试条件
JSONassert 一个专门用于json断言的工具
jsUnit JavaScript客户端(在浏览器下)的单元测试框架
DBUnit Junit的拓展,用于进行数据库的单元测试框架
HttpUnit Web应用的单元测试框架,通常用Junit结合在一起使用
JUnitEE JavaEE的单元测试框架

安全规约

权限控制

越权访问(Broken Access Control,简称BAC) 时Web应用程序中一种常见的漏洞,由于其存在范围广、危害大,被 OWASP列为Web应用十大安全隐患的第二名。

越权访问漏洞防范措施
  1. 前后端同时对用户输入信息进行校验
  2. 调用功能之前,验证用户是否有权限调用相关功能
  3. 执行关键操作前必须检验用户身份,验证用户是否具备操作数据的权限
  4. 直接对象引用的资源ID要加密,防止攻击者枚举ID,敏感数据特殊化处理
  5. 永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤
水平越权访问漏洞

水平越权访问时一种“基于数据的访问控制”设计缺陷引起的漏洞。由于服务端在接收到请求数据进行操作时,没有判断数据的所属人/所属部门而导致的越权数据访问漏洞
T31-Day21单元测试与安全规约_第1张图片

你可能感兴趣的:(单元测试,安全,java)