我对功能测试的理解是,它是一个集成测试,检查整个、完整的应用程序功能段;减去任何存根、模拟或其他测试副本。对于web应用程序,这可能是手动检查当用户试图在登录表单上输入错误凭据时会发生什么。
我对冒烟测试的理解是,它是一系列快速的功能测试,可用于确定应用程序是否已正确启动,其主要子系统是否全部在线。对于一个web应用程序,这可能是去一个健康检查URL,并确保应用程序是正常运行的,并且它可以到达它所有的依赖子系统(它的数据库,它的消息代理等)。
我的对回归测试的理解是,它是一个功能测试,用于将来确定某个特定函数是否不再按预期工作。当为新特性编写功能测试或为修改现有特性而重写功能测试时,它们被添加到回归测试套件中。从这个意义上说,回归测试套件是特定web应用程序的所有有效功能测试的组合。
在我继续说下去之前,如果到目前为止我说的任何事情都是误导或不真实的,请首先纠正我!
假设我或多或少在轨道上:
- 像Selenium WebDriver或BrowserStack这样的工具在哪里分类?它们是用于烟雾测试还是回归测试?
- 进行这类测试的普遍接受的方法/工具是什么?
- 从自动构建(如Jenkins或Bamboo)中启动/运行这些测试的一般接受方法是什么?
一般来说,考虑到web-app的自动化,我们有以下几个阶段
-
Automate the Sanity/Smoke Tests
要做到这一点,我们需要确保使用测试自动化工具可以实现健全测试的自动化标准。没有硬性规定,使用单一工具来实现跨web应用程序所有域的完整自动化。一旦完整性稳定下来,我们继续进行下一个。
-
Automate the Release / Regression Suite
发布套件或回归套件的自动化,必须具有成本效益,并且测试自动化框架设计在这里起着重要作用,因为测试需要长期维护
对于你的问题,我的回答如下
-
这取决于项目策略。
-
我的建议是选择自动化的完整性测试,在某种程度上,这样自动化可以快速完成。如果我们从这里开始完全成熟的测试自动化框架开发,我们可能会花更多的时间来实现完整的自动化
对于发布自动化,仔细计划框架体系结构,考虑框架的所有可能性和需求
-
我们可以将自动化测试与任何CI服务器集成,如Jenkins或Bamboo或cruise,这都取决于自动化策略
考虑到我的经验,如果我是你,我会这么做
- 首先,确定在该域 上可接受的自动化工具
- 自动化Sanity,使用基本框架,可以运行测试并将报告发送电子邮件给利益相关者
- 建立一个CI服务器,并创建一个作业,使其每天运行,并且所有利益相关者都收到结果
- 为包含测试自动化框架开发的发布套件启动自动化方法