一个公开的项目,用来公示火线测试的用例.
-
资源关闭类
- 数据库连接对象未关闭
- 数据库连接对象中当Statement被关闭后,由该Statement初始化的ResultSet对象也会自动关闭
- 资源对象连续关闭可能异常
- 资源对象被return前可能异常
- 资源对象正常return
- 资源对象未关闭
- 使用try-with-resources写法关闭
- 跨文件自定义close方法关闭
- 跨文件自定义close方法,实际未关闭
- 第三方库方法关闭
- 当前文件自定义方法关闭
- 当前文件自定义方法,实际未关闭
- 跨文件且调用第三方库关闭方法
- 跨文件的未调用第三方库方法,实际未关闭
- 先跨自定义方法,再跨类关闭
- 先跨自定义方法,再跨类,实际没有关闭
- 先跨自定义方法,再跨类,再调用第三方类进行关闭
- 在finally中关闭
- 资源对象在初始化异常可能导致无法关闭
- 资源对象在套接使用时,只需要手动关闭最后套接的对象
- ByteArrayInputStream等不需要检查关闭的资源对象
- Socket关闭检查,没有关闭
- 通过Socket获取的getInputStream和getOutputStream不需要手动关闭
- 跨类关闭Socket对象会自动关闭通过Socket获取的资源对象
- ZipFile关闭检查,没有关闭
- ZipFile关闭检查,实际关闭
- 多个资源对象使用try-catch连续正常关闭
- SQLiteDatabase对象未关闭
- SQLiteDatabase对象正常关闭
- SQLiteDatabase和Cursor都未关闭
-
安全类
- Fragment漏洞
- WebView未禁止访问本地文件系统
- 拒绝服务隐患
- 日志函数中进行变量赋值
- 日志输出应该被包裹在DEBUG开关中
- 日志敏感信息输出
- 远程提权攻击隐患
- 应用程序备份恢复隐患
- 可被Debug漏洞
- 组件导出过多
- AndroidManifest权限安全
- 目录遍历漏洞
- SQL注入风险
-
空指针类
- 错位的空判断
- 破坏空判断
- 存在空指针引用
-
代码规范类
- 程序关联字段未写入非空的值
- 空的finally块
- 非条件化的if表达式
- 避免重复的常量
- 空的try块
- 分解的if表达式
- 空的if表达式