Java测试完整指南

编写良好应用程序的最佳方法是使用正确的测试进行覆盖。在本文中,我描述了大多数现有的测试类型。所有示例都将使用Java实现。

单元测试

单元测试验证每个应用程序功能(模块)对于给定的输入是否返回正确的值。通过计算测试期间执行的所有行,您可以找到代码覆盖率。代码覆盖率仍然是最重要的代码质量指标之一。

可能的Java单元测试框架:JUnit ,TestNG 。 

测试示例:

Java测试完整指南

变异测试

变异测试是一种在代码中查找缺失测试的方法。变异测试的主要思想是:编写完所有单元测试后,代码中的每个更改都至少应失败现有的单元测试。否则,您将缺少一项测试。

Java变异框架:Pitest有关PITEST的更多详细信息和示例。 

测试示例:

Java测试完整指南

整合测试

集成测试的主要目的是检查一组模块或整个应用程序的兼容性和一致性。根据应用程序容器,使用不同的框架。

Java集成框架(与容器无关):MockitoPowerMock

 测试示例:

Java测试完整指南

UI测试

大多数应用程序都有一些用户界面。它可能是网页或桌面框架。Java框架同时提供了两者(例如:javafx vaadin)。用户界面测试通常扮演着端到端测试的角色。我认为UI测试在时间和质量保证方面是最有效的。

Java的UI web测试:桌面:Winium

测试示例:

Java测试完整指南

协议测试

Java支持数百种不同的协议:TCP / IP,HTTP,SOAP,UDP,FTP,SMTP等。在此示例中,我将使用HTTP,因为它是最流行的协议。

Java HTTP测试框架:spring

服务器测试示例:

Java测试完整指南

基准测试

精确衡量代码效率的最佳方法是使用基准框架。基准测试为您提供了非常公平的代码执行结果,而忽略了可能的副作用(例如,预热阶段)。 

Java基准框架:JMH本文中有更多详细信息

代码示例:

Java测试完整指南

性能测试

为了找出您的应用程序可以承受的负载,您需要使用性能测试工具(也称为压力测试工具)。性能度量取决于所使用的协议,但是已经有支持大多数流行协议的工具。

性能应用程序(可能与Java集成):Jmeter

测试示例:

安全测试

要了解应用程序的脆弱性,可以使用安全测试解决方案。安全测试还取决于您的应用程序协议。但是,安全工具通常会覆盖最知名的用例,例如SQL注入或XSS注入。

安全工具: Arachni Scanner

脚本示例:Java测试完整指南

数据库测试

在大多数情况下,数据库是应用程序的很大一部分。可以通过多种方式测试数据库:模式检查,安全性检查,性能等。 

Java数据库测试引擎:DbUnit

测试示例:Java测试完整指南

测试应用程序的新方法每天都在增长,用于执行测试的技术也越来越多,但是这九种类型的测试列表在相当长的时间内应该是有用的。