java - 自动化 Java Web 应用程序的冒烟、功能和回归测试?

标签 java automated-tests functional-testing regression-testing smoke-testing

我对功能测试理解是,它是检查应用程序功能的整个、完整部分的集成测试;减去任何 stub 、模拟或其他测试替身。对于网络应用程序来说,这可能是手动检查当用户尝试在登录表单上输入错误凭据时会发生什么。

我对冒烟测试的理解是,它是一系列快速的功能测试,可用于确定应用程序是否已正确启动及其主要子系统都在线。对于 Web 应用程序,这可能是转到运行状况检查 URL 并确保应用程序已启动,并且可以访问其所有依赖子系统(其数据库、消息代理等)。

我对回归测试的理解是,它是一种功能测试,用于将来确定特定功能是否不再按预期工作。当功能测试是针对新功能编写或针对现有功能的修改而重写时,它们会被添加到回归测试套件中。从这个意义上说,回归测试套件是特定 Web 应用程序的所有有效功能测试的组合。

在我继续之前,如果我到目前为止所说的任何内容有误导性或不真实,请首先纠正我!

假设我或多或少步入正轨:

  1. Selenium WebDriver 或 BrowserStack 等工具在哪里分类?它们是用于冒烟测试还是回归测试?
  2. 进行此类测试的普遍接受的方法/工具是什么?
  3. 从自动化构建(例如 Jenkins 或 Bamboo)启动/运行这些测试的普遍接受的方法是什么?

最佳答案

一般来说,考虑到网络应用程序的自动化,我们有以下几个阶段

  • 自动化理智/冒烟测试

为此,我们需要确保使用测试自动化工具可以实现健全性测试的自动化标准。没有硬性规则可以使用单一工具在网络应用程序的所有领域实现健全的自动化。一旦理智稳定下来,我们就继续下一步。

  • 自动化发布/回归套件

发布套件或回归套件的自动化,必须在方式上具有成本效益,并且测试自动化框架设计在这里起着重要作用,因为测试需要长期维护

对于您的问题我的回复如下

  1. 这取决于项目策略。

  2. 我的建议是在某种程度上选择自动化健全性测试,以便可以快速完成自动化。如果我们在这里开始成熟的测试自动化框架开发,我们可能会花更多时间进行健全的自动化

    对于发布自动化,仔细规划框架架构,考虑框架的所有可能性和要求

  3. 我们可以将自动化测试与任何 CI 服务器(如 Jenkins、Bamboo 或 Cruise)集成,这完全取决于自动化策略

考虑到我的经验,如果我是你,我就会这么做

  • 首先,确定该领域可接受的自动化工具
  • 通过基本框架实现 Sanity 自动化,可以运行测试并向利益相关者发送包含报告的电子邮件
  • 建立 CI 服务器并创建作业,使其每天运行并且所有利益相关者都能收到结果
  • 启动发布套件的自动化方法,其中包括测试自动化框架开发

关于java - 自动化 Java Web 应用程序的冒烟、功能和回归测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23772929/

相关文章:

Java ASM 多次访问一个方法

java - 用 proguard 混淆文件名

python - 在 python 中使用 menuStrip 及其项目

java - 运行脚本时如何向RFT播放窗口发送信息?

c# - ServiceStack AppHostHttpListenerBase 无法连接到远程服务器

c# - Specflow 覆盖原始异常堆栈跟踪

java - 为什么方法定义中不能定义方法

java - Java中C是A的子类时 "C c = new C()"和 "A c = new C()"的区别

azure-devops - Azure DevOps 管道测试显示部分成功

android - 功能测试 : calls to MediaPlayer