【发布时间】:2021-10-30 20:48:13
【问题描述】:
我正在为一个依赖 API 的 Flutter 应用程序工作。我们正在考虑一种测试策略,我们想知道哪种方法最好。
根据他们的文档 (https://flutter.dev/docs/testing),他们有 3 个级别的测试:
- 单元测试
- 小部件测试
- 集成测试(Pump 小部件新方法)
- 集成测试(Flutter 驱动程序旧方法)
由于我们的资源有限,我们想知道我们应该先拿什么。从那时起,很少有人在测试上投入精力。
我们的情况如下:
- 单元测试(50% 覆盖率)
- 小部件测试(0% 覆盖率)
- 集成测试(泵小部件新方法 - 0% 覆盖率)
- 集成测试(Flutter 驱动程序旧方法 - 仅涵盖少数测试场景,主要流程)
- API 测试:单元测试和功能测试的覆盖率为 0%
而且我们没有使用任何测试自动化框架,例如 WebdriverIO + Appium。
我们想知道我们应该在每个 Flutter 测试类别中投入多少精力,以及关于 Flutter 集成测试,是否只使用新方法(Pumping every widget)进行集成测试是否有意义,或者我们也会需要集成测试(Flutter 驱动程序旧方式)?仅仅依靠使用泵小部件方法进行集成测试并不会让我们感到非常自信。
我们正在考虑的一些选项是:
- 强大的 API 覆盖率(单元测试和功能测试)+ 强大的 Flutter 单元测试覆盖率 + 使用 Flutter 驱动程序方法的集成测试很少
- 测试金字塔方法:大量单元测试 + 使用泵小部件新方法、API 测试和小部件测试的较少量集成测试 + 较少量的 E2E 测试(可能使用使用 Flutter 驱动程序方法或外部自动化框架的集成测试)和手动测试
- 仅单元测试 + 小部件测试 + 集成测试抽水小部件的新方法,力求在三者中实现 100% 的覆盖率。
我们还认为,以新方式(抽取小部件)维护集成测试在某种程度上非常耗时,因为您需要很好地了解应用程序的视图和内部结构。对于没有太多 Flutter 开发经验的 QA 自动化人员来说,这可能具有挑战性。
我应该首先涵盖哪些 Flutter 自动化测试类别,单元测试、小部件测试还是集成测试?我应该改用 WebdriverIO + Appium 等外部自动化框架吗?
【问题讨论】:
-
请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。
标签: flutter unit-testing ui-automation flutter-test flutter-integration-test