在我作为软件测试员的上一份工作中,我们有一个系统(由CEO甚至在我加入公司之前就已构建),可以在每次提交后运行所有自动化测试。因此,针对几种不同的软件版本,一直都在运行数百个测试。开发人员会进行修复,系统更新,我可以通过IP访问虚拟机,查看测试,查找错误,但是我从来没有深入研究过创建这样的事情。

但是,现在我离开那家公司几年之后,我正在考虑在一个零自动化测试的地方再次进行测试,我相信他们会期望我创建适当的自动化(主要是针对网站,而不是网站软件)。每次提交后进行的测试我都不知道从哪里开始。有工具可以帮助您吗?是否需要从头开始编程?我真的不知道这是怎么开始的,甚至还没有我在第一家公司看到的那样。

是否有任何资料可以深入解释整个过程,即每次提交后如何自动运行所有测试,或者至少安排在白天或晚上的特定时间运行测试?

或者我想得太多,这根本没有必要做吗?

评论

你有没有做过任何研究?有许多这样的系统,从您自己托管的系统(Jenkins,Concourse)到提供服务的系统(Travis,Circle)。大多数支持通过提交或调度程序触发。

如果您使用的是.Net,则值得继续阅读Azure DevOps。

### Continuous Integration作为一个广泛的话题,我建议您以自己的起点开始阅读和研究它。当您进行研究并且有更具体的问题时,请将其发布。

您是否已经拥有每晚进行的构建以及相关测试?它们更为重要,但是一旦有了这些基础结构,提交时构建便是相当容易的扩展。我当然不会维护两种不同的设置。

#1 楼

不,您没有考虑这个问题。在现代软件开发中,自动化应用程序的测试和部署是关键。它分组在DevOps类别中。测试自动化是其中非常重要的部分。

按更改/提交计划的典型测试运行称为持续集成或构建服务器管道。
大多数构建系统也是常规调度程序,它们也可以用于按一定间隔运行测试。

构建服务器管道的流程:


监视版本控制系统中的更改
将更改拉至构建代理
构建源代码
运行单元测试
将应用程序部署到暂存环境
运行集成测试
运行端到端测试
进行静态代码分析(安全性,测试代码覆盖率)
(可选)部署到生产环境。 (称为持续交付/部署)

有很多不同的构建自动化软件产品。有些重量级,有些重量轻,可以在本地完成所有操作。

如果您不是sysadmin类型,我建议您使用基于云的工具,但是如果您想使用服务器,我当然会尝试设置您的系统管理员。从头开始拥有自己的管道。

尽管我偏爱某些工具,但我建议您进行自己的研究,但本文可能是一个不错的开始:https://stackify.com/top-continuous-integration -tools /

其他内容:


https://jenkins.io/pipeline/getting-started-pipelines/
https:// dzone.com/articles/从头开始学习如何设置cicd管道


评论


我要补充一点,对于许多公司来说,云解决方案不是合法的选择,因为代码和/或数据将不受其直接控制。在这种情况下,您需要设置自己的工具链,如今这并不困难。

–弗兰克·霍普金斯
19年4月19日在23:58

#2 楼

现在,在许多组织中,由提交触发的在云中运行测试套件已成为许多组织的普遍做法。

每次您推送提交时(通常在分支中,但确实包括主服务器),都必须进行测试。触发运行。

妙处在于它可以在5分钟或更短时间内设置。

基本上现代的工具都内置了此功能。从一个系统中获取API密钥或URL,然后将其添加到为您准备的位置的另一个系统中。

例如:我已经在多个公司和个人项目中使用circlerCI。每次将提交提交到github时,我都会有一个钩子,该钩子也会触发测试在云中运行。

对于circleCI,您创建了一个.circleci/config文件,该文件具有构建所需服务器的步骤

在github中,您添加了如下所示的webhook