系统测试端到端地 验证一个软件应用程序。因而,它们引入了一个更高级别的架构复杂度:整个应用程序必需为要进行的系统测试而运行。如果是一个 Web 应用程序,您就需要访问数据库以及 Web 服务器、容器和任何与运行系统测试相关的配置。其遵循这样的原则,即大多数系统测试都在软件生命周期的较后周期中编写。
编写系统测试是个挑战,也需要大量的时间来实际地执行。而另一方面,就架构性代码覆盖率来讲,系统测试是一件极为划算的事情。
系统测试和功能测试很相似。所不同的是,它们并不仿效用户,而是模拟出 一个用户。与在组件测试中一样,现在创建了大量的框架来为这些测试提供方便。例如,jWebUnit 通过模拟一个浏览器来测试 Web 应用程序。
|
所以,您的单元测试套件就是名副其实的包括单元测试、组件测试和系统测试的套件。不仅如此,在检查了这些测试后,您现在知道构建花了三个小时的原因是:绝大部分时间都被组件测试所占用。下一个问题是,如何用 JUnit 实现测试分类?
有几种方式可选,但这里我们只关注于其中两种最简单的方式:
- 根据所需种类创建定制的 JUnit 套件文件。
- 为每种测试类型创建定制目录。
|
可以使用 JUnit 的 TestSuite
类(属于 Test
类型)来定义许多互相归属的测试。首先,创建一个 TestSuite
实例,并为其添加相应的测试类或测试方法。然后,可以通过定义一个叫做 suite()
的 public static
方法,在 TestSuite
实例中指定 JUnit。包含的所有测试随后将在单个运行中执行。因而,可以通过创建单元 TestSuite
、组件 TestSuite
和系统 TestSuite
来实现测试分类。
例如,清单 1 中显示的类创建了一个 TestSuite
,其持有 suite()
方法中所有的组件测试。请注意此类并不是非常特定于 JUnit 的。它既没有扩展 TestCase
,也没有定义任何测试用例。但它会反射性地找到 suite()
方法并运行由它返回的所有测试。
文章来源于领测软件测试网 https://www.ltesting.net/