一、简介
最近公司产品应客户要求,需要做安全加固:由IBM Security AppScan Standard软件进行扫描,针对扫描结果报告中的问题,进行修复。由于公司产品使用时间较长,其整个Dao层没有采用Hibernate等流行的ORM框架,而使用原生JDBC封装并且直接使用简单字符串拼接形成增删改查SQL语句,所以被扫描出大量SQL盲注的漏洞。
二、解决方案
1、修改整个DAO层。使用PreparedStatement,采用预编译的方式防止SQL盲注。
2、由于DAO层属于产品的核心层,如此大规模的修改底层结构,需要进行详细测试,保证产品应用层的功能正常,所以采用TestNG+DBUnit测试框架,对DAO层的每处修改进行测试,保证DAO层的正确性。
三、具体实现
1、利用Java类文件名大小写敏感的语法特性,创建与原DAO类文件相同名字(Dao-->DAO)的类文件。覆写所有在产品中应用到的DAO方法,采用相对安全的SQL语句。
2、由于产品中使用的近百张表,所有手动构建测试数据,工作量异常繁琐,并且容易出错,所以利用VO文件与数据库表名的固定对应关系,使用反射机制动态生成测试数据。
3、利用产品中的通用数据库连接池功能模块,通过配置测试数据库的配置信息,供测试类方法调用。
4、将DAO测试类通用的方法,如:测试方法调用前,资源的准备;测试方法调用后,资源的释放。通过TestNG的@BeforeMethod与@AfterMethod注解,进行配置调用。
四、详细代码
1、代码列表
ConnectionPool.java
BasicConnectionPoolTestUtil.java(为DBUnit提供数据源)
testdb.properties
testng-dao.xml
DaoTestSuite.java
AlarmValue.java(VO)
BaseDAO.java
AlarmDAO.java(原DAO)
AlarmDao.java(新DAO)
AlarmDaoTest.java
2、源代码(详情查看附件)
相关推荐
开源自动化测试框架testng包,用于appium+java+android测试
而TestNG则是一个功能丰富的测试框架,提供了比JUnit更高级的功能,如并行测试、测试套件的灵活配置、报告生成等。 本源码集应该是基于Selenium WebDriver和TestNG构建的一个Web自动化测试框架,用于实现网页应用的...
本项目源码是一个基于Selenium WebDriver和TestNG框架的Web购物平台自动化测试实现,旨在提供一个可扩展和可维护的测试解决方案。以下是关于这个项目的详细知识点介绍: 1. **Selenium WebDriver**:Selenium 是...
- **TestNG**: TestNG是一个基于JUnit和NUnit思想设计的新一代测试框架,提供了更丰富的特性和灵活性,包括但不限于并行测试执行、灵活的依赖管理、更强大的参数化支持等。TestNG相比JUnit在测试控制、重复执行、...
总的来说,这个项目是一个使用Java语言、TestNG测试框架和Maven构建工具的接口自动化测试解决方案,它利用JDK8的新特性,为接口测试提供了一个高效、易维护的平台。开发者可以通过理解并运用这些技术,实现对各种...
TestNG是一个强大的测试框架,它扩展了JUnit的功能,提供了更灵活的测试配置,如并发测试、更丰富的注解、更详尽的测试报告等。首先,你需要在你的项目中引入TestNG的依赖。在Maven项目中,可以在pom.xml文件中添加...
- **ATS 架构**:ATS (Automated Testing System) 框架是一个集成测试平台,它使用 TestNG 作为核心测试引擎。 - **ATS 框架的脚本执行**:ATS 支持自动化执行测试脚本,并且可以根据配置动态加载测试用例。 - **ATS...
TestNG是一款功能强大的自动化测试框架,相较于JUnit,它提供了更多的特性和灵活性,使得测试工作更加高效和全面。在TestNG 6.3版本中,我们可以看到一些关键特性,这些特性对于提升测试质量和效率至关重要。 首先...
关于TestNG的使用可以参考文档《Step By Step写测试(书签版).pdf》,介绍的很详细,下载地址:http://download.csdn.net/detail/defonds/4095644。 单元测试框架TestNG介绍: JUnit 框架是 Java 语言单元测试当前的...
快嘉接口 sdk 生成 Maven 插件,根据自定义接口文档生成基于testng框架的接口测试用例代码,该代码可直接用于研发过程的联调、自动化测试和冒烟测试 功能说明 根据标准sql文件生成mybatis-plus-join代码(只支持...
单元测试 框架 testng6.8
Java+Selenium+Maven+TestNG自动化测试框架是现代软件开发中的一个重要组成部分,尤其是在Web应用程序的质量保证阶段。这个实例项目展示了如何将这四个强大的工具集成为一套完整的自动化测试解决方案。 **Java**: ...
TestNG和JUnit是两种广泛使用的Java测试框架,它们在软件质量保证和持续集成流程中扮演着重要角色。本文将深入探讨这两个测试框架的特性和差异,以及为什么TestNG被誉为下一代测试框架。 TestNG是由Cedric Beust...
TestNG自动测试框架是当今流行的自动化测试框架之一 它可以帮助自动化测试工程师把精力集中在编写和实施测试用例和测试脚本上,提升软件测试执行和回归测试效率 分成4大模块 第一模块java 基础知识:JDK安装以及环境...
Selenium自动化测试框架视频-Testng使用介绍(自动化测试)
TestNG是一款功能强大的Java测试框架,它为开发者提供了灵活的注解、测试配置、执行模型以及丰富的报告选项。"testng测试报告模板BeautifulReport.7z"是一个包含资源的压缩包,专门用于自定义TestNG测试执行后的报告...
单元测试框架 TestNG1 在 Java 开发领域,单元测试是必不可少的一部分,而 TestNG 是一个相对 JUnit 而言的新生力量。TestNG 的创造者 Cedric Beust 是 Java 编程领域的知名人物,是 EJB 3 专家组的成员,也是其他...
TestNG是一个开源的自动...TestNG可以跟web自动化框架selenium、接口自动化框架RestAssured等框架集成使用,以完成不同需求的专项测试。比如: 单元测试框架TestNG;Web自动化测试框架TestNG;接口自动化测试框架TestNG
- **安装 TestNG 插件**:在 IDE 中安装 TestNG 插件以便更好地支持 TestNG 测试框架的使用。 #### 五、TestNG基本注解 TestNG 使用注解来定义测试类和测试方法,常用的注解包括但不限于: - `@Test`:标记测试方法...