GB/T34944-2017 合规:Java 代码漏洞测试用例编写(附案例)
依据GB/T34944-2017标准,一个常规的软件代码测试的测试流程一般包括以下几个阶段:
需求分析阶段。项目负责人沟通清楚测试的需求,明确测试目的、测试进度要求、测试报告提交时间等,制定测试计划,明确测试对象、测试内容、测试环境,风险分析等。
测试分析设计阶段。分析被测对象采用的开发语言、使用的开发框架、第三方组件、代码测试内容、是否需要满足相关行业标准规范要求等,以便测试时配置适合的测试工具扫描规则。
测试执行和结果分析阶段。测试人员根据测试分析结果,在测试工具中配置适合的扫描规则,开始执行代码扫描测试。代码扫描完毕后,对扫描结果进行逐条分析,排除误报,确认扫描结果的有效性。对代码缺陷进行评审,评审代码缺陷的有效性、缺陷描述的准确性、修复建议的准确性等。与委托单位、开发方就测试中发现的问题进行说明和沟通确认,明确修复完成时间及修复要求。根据与委托方的协议约定,决定是否进行回归测试。测试完成后根据客户要求处置被测软件。
下面我们在一起来看一下,依据GB/T34944-2017标准,如何编制Java代码漏洞测试用例。
GB/T34944-2017标准中,第6部分是对源代码漏洞测试内容的介绍,我们可以参照标准中给出的内容去整理测试用例。
如针对行为问题,标准中只给出了一项测试内容,不可控的内存分配,那我们的测试内容就是程序内存分配可控。测试结果指标是在程序中未指定内存分配大小的上限,在分配内存前已对分配的内存大小进行验证,确保要分配的内存大小不超过上限。
针对路经错误类问题,标准中也只给出了一项测试内容,不可信的搜索路径。那我们的测试内容就是程序使用关键资源时,应指定路径。测试结果指标是程序使用关键资源时,已指定资源所在的路径。
针对数据处理类问题,标准中给出了12项测试内容,我们就需要以此将测试内容、测试方法以及测试结果的指标明确出来。如针对“相对路径遍历”,测试内容就是程序应不存在相对路径遍历漏洞。测试结果的指标就是程序在构建路径名前已对输入数据进行验证,确保外部输入仅包含允许的构成路径名的字符。
像上文所述的那样,依次将标准中给出的测试内容在测试用例中分别规定出来,就是一份完整的java源代码测试用例了。希望本文内容能够对您有所帮助。
如需完整的java源代码测试用例,请私信我获取
