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

自动化Java web应用程序的冒烟测试、功能测试和回归测试?,java,automated-tests,functional-testing,regression-testing,smoke-testing,Java,Automated Tests,Functional Testing,Regression Testing,Smoke Testing,我对功能测试的理解是,它是一个集成测试,检查应用程序功能的整个完整部分;减去任何存根、模拟或其他测试加倍。对于web应用程序,这可能是手动检查当用户试图在登录表单上输入错误凭据时发生的情况 我对冒烟测试的理解是,这是一系列快速的功能测试,可用于确定应用程序是否已正确启动,以及其主要子系统是否全部在线。对于web应用程序,这可能是转到健康检查URL,并确保该应用程序已启动,并且它可以访问其所有依赖子系统(其数据库、其消息代理等) 我对回归测试的理解是,它是一种功能测试,将来用于确定特定功能是否不再

我对功能测试的理解是,它是一个集成测试,检查应用程序功能的整个完整部分;减去任何存根、模拟或其他测试加倍。对于web应用程序,这可能是手动检查当用户试图在登录表单上输入错误凭据时发生的情况

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

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

在我进一步讨论之前,如果我迄今为止所说的任何话都是误导或不真实的,请先纠正我

假设我或多或少在正轨上:

  • 像SeleniumWebDriver或BrowserStack这样的工具在这里分类在哪里?它们是用于烟雾测试还是回归测试
  • 进行此类测试的一般公认方法/工具是什么
  • 从自动化构建(如Jenkins或Bambol)启动/运行这些测试时,一般接受的方法是什么

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

    • 自动执行健全性/烟雾测试
    为此,我们需要确保可以使用测试自动化工具实现健全性测试的自动化标准。对于一个web应用程序,使用单一工具在所有域中实现健全自动化并没有硬性规定。一旦理智稳定下来,我们就开始下一步

    • 自动化发布/回归套件
    发布套件或回归套件的自动化必须以经济高效的方式进行,而测试自动化框架设计在这里起着重要作用,因为测试需要长期维护

    关于你的问题,我的答复如下

  • 这取决于项目策略

  • 我的建议是在某种程度上选择自动化的健全性测试,这样自动化可以很快完成。如果我们在这里开始全面的测试自动化框架开发,我们可能需要更多的时间来实现健全的自动化

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

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

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

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