功能测试与非功能测试

1、功能测试

包括单元测试、接口测试、联调测试和集成测试。这里的每个测试环节起到的作用不同,联调测试和集成测试依赖的主要手段还是手工验证。过自动化手段完成的单元测试和接口测试。主要用到的几个工具:

  • JUnit 和 TestNG,分别做单元测试和接口测试;
  • Maven 插件,maven-surefire-plugin,用来执行 JUnit 或 TestNG 用例;
  • JaCoCo,分析单元测试和接口测试后的代码覆盖率;
  • Jenkins,自动化测试任务执行,报表生成和输出,与 Maven、JUnit、GitLab 这些工具结合非常好。

功能测试中的两个重要环节:单元测试和接口测试。

  • 单元测试,由开发完成测试用例的开发,对于需要连接 DB 的用例,可以用 DBUnit 这样的框架。用例的自动执行,每次代码开发完成,开发执行 mvn test 在本地进行自测通过,然后提交到 GitLab。可以在 GitLab 中设置 hook 钩子,和回调地址,提交的时候在 commitMsg 增加钩子标识,如 unitTest,这样提交后就触发回调自动化单元测试用例执行接口,确保提交后的代码是单元测试通过的,最终可以通过 JaCoCo 工具输出成功率和代码覆盖率情况。
  • 接口测试,用例编写上使用 TestNG,这个测试框架相比 JUnit 功能更全面,也更灵活一些。但是过程上与单元测试类似,当然也可以不通过 hook 方式出发,可以通过手工触发进行测试。

上述自动化测试环节结束,软件包就可以发布到我们之前说的项目测试环境或集成测试环境进行功能联调和测试了,这时就需要部分人工的介入。

2、非功能测试

在功能验证的同时,还需要并行进行一些非功能性验证,包括安全审计、性能测试和容量评估 。分别介绍如下:

  • 安全审计,由安全团队提供的源代码扫描工具,在构建的同时,对源代码进行安全扫描,支持 Java 和 PHP 语言。可以对源代码中的跨站脚本、伪造请求、SQL 注入、用户名密码等敏感信息泄露、木马以及各类远程执行等常见漏洞进行识别,对于高危漏洞,一旦发现,是不允许构建出的软件包发布的。而且实际情况是,不审不知道,一审吓一跳,我们前面几次做代码扫描时,各种漏洞触目惊心,但是随着工具的支持和逐步改进,基本已经将这些常见漏洞消灭在萌芽状态。
  • 性能和容量压测,主要针对核心应用,进行发布前后的性能和容量比对,如果出现性能或容量差异较大,就会终止发布。

此文章为3月Day26 学习笔记,内容来源于极客时间《赵成的运维体系管理课》,推荐该课程。

猜你喜欢

转载自blog.csdn.net/key_3_feng/article/details/129786242