Como configurar Change-Based Testing em um asset

Last updated: July 7, 2026

O Change-Based Testing detecta automaticamente as mudanças de código nos repositórios vinculados a um asset e dispara uma execução focada nessas mudanças. Ele ajuda a fechar a brecha que se abre entre a evolução do seu asset e o momento em que ele é validado, incluindo casos como reduzir o tempo entre um deploy e o teste correspondente, ou garantir que nenhuma mudança relevante fique sem revisão até o próximo ciclo recorrente.

Disponibilidade: Change-Based Testing é um add-on do produto. Para tê-lo disponível, é necessário contratar um pacote de testing units (também chamadas de execuções pontuais), que é o mesmo utilizado pelos Focused Tests. Se você não tiver o add-on contratado, o fluxo de integração não vai aparecer no asset configuration. Para ativá-lo, entre em contato com o seu Customer Success Manager.

O que é Change-Based Testing

Até agora, a validação de segurança sobre um asset na Strike funcionava por meio das threat emulations: execuções contínuas, automáticas e recorrentes que se baseiam no asset context.

O asset context é a base sobre a qual toda a validação é executada. Mas o asset evolui constantemente: cada deploy, cada PR, cada release introduz mudanças que podem ficar sem validar até o próximo ciclo recorrente. Essa brecha entre a forma como o seu asset muda e o momento em que é testado pode se traduzir em novas vulnerabilidades ou em novas áreas que ficam semanas sem revisão.

Para fechar essa brecha, criamos os Change-Based Tests: execuções automáticas que são disparadas quando há mudanças nos repositórios vinculados ao asset, focadas nessas mudanças. A Strike detecta o que mudou e valida esse delta sem que você precise intervir, complementando o ciclo recorrente com validações pontuais no momento exato em que as mudanças aparecem.

  • Automático: é disparado sozinho, você não precisa pedir toda vez.

  • Change-scoped: o teste foca nos PRs ou releases que geraram o evento.

  • Configurável: você decide quando é disparado, por PR, por release ou agrupando uma vez por semana.

  • Independente: não afeta nem pausa o ciclo das threat emulations recorrentes.

Como funciona

Quando você configura Change-Based Testing em um asset, a Strike instala um GitHub App que escuta eventos nos repositórios vinculados. Cada vez que o trigger que você escolheu é acionado, a Strike executa uma threat emulation focada nas mudanças incluídas.

O resultado é uma execução focada no scope restrito do que mudou. As vulnerabilidades ficam vinculadas aos PRs que as introduziram, então você sabe exatamente qual mudança as gerou e pode fechar a brecha entre o deploy e a validação.

A Strike não acessa o conteúdo do seu código. O GitHub App tem permissões de somente leitura sobre os metadados: título do PR, autor, data, arquivos modificados. Ele não pode ler, modificar nem baixar o código dos seus repositórios.

Opções de trigger

Você tem três formas de configurar quando a execução é disparada, conforme o fluxo da sua equipe:

Opção

Quando é disparado

Consumo

Per pull request

Cada vez que um PR é mergeado na branch principal.

1 execução por PR mergeado.

Per release

Cada vez que um novo release é publicado.

1 execução por release publicado.

Change-Based Tests vs. threat emulations

Os dois tipos de execução usam o mesmo AI Pentester engine e a mesma configuração do asset, mas têm ciclos de vida e propósitos diferentes. As threat emulations executam validação contínua segundo um calendário fixo, enquanto o Change-Based Testing reage a eventos do código para reduzir a janela entre deploy e validação.

Atributo

Threat emulations

Change-Based Tests

Trigger

Automático (calendário)

Automático (eventos do GitHub)

Frequência

Recorrente, contínuo

Uma execução por evento (ou por batch semanal)

Scope

Driven by asset context

Focado em mudanças de código

Profundidade

Análise completa e profunda

Validação focada e otimizada

Propósito

Validação contínua

Fechar a janela entre deploy e teste

Engine

AI Pentester

AI Pentester

Configuração do asset

Mesma

Mesma

Pacote de consumo

Plano base de recorrência

Pacote de testing units (compartilhado com Focused Tests)

Quando usar cada um

  • Threat emulations são a sua camada contínua de validação: deixe-as ativas para manter visibilidade permanente sobre o risco do asset.

  • Change-Based Testing é a sua ferramenta para reduzir a janela de exposição: use-o quando você tem deploys frequentes e quer que cada mudança relevante seja validada perto do momento em que é introduzida.

  • Não é um ou outro. Os Change-Based Tests complementam as threat emulations recorrentes, não as substituem. O ideal é manter os dois ativos: a cobertura periódica completa, mais uma validação rápida em cada mudança.

Como configurar Change-Based Testing

Antes de começar

  • Ter o add-on contratado e testing units disponíveis na sua conta.

  • Ter role de Owner ou Operator na organização da Strike.

  • Ter acesso de admin à organização do GitHub onde está o seu código.

Passo 1: Acessar a configuração do asset

A partir da lista de assets, selecione o asset no qual você quer ativar a feature. Dentro do asset, na tab Configuration, encontre a seção Change-based testing. Se você ainda não ativou em nenhum outro asset, vai ver o botão Connect GitHub.

Passo 2: Conectar o GitHub

Clique em Connect GitHub. Abre uma nova aba do GitHub onde você precisa:

  • Selecionar a organização onde o GitHub App da Strike será instalado.

  • Selecionar os repositórios aos quais a Strike terá acesso (pode ser todos ou um subset específico para um asset).

  • Confirmar a instalação. O GitHub te redireciona automaticamente de volta ao asset na Strike.

Uma única vez por organização. A instalação do GitHub App é feita uma vez por organização do GitHub. Se depois você quiser ativar Change-Based Testing em outros assets que apontam para a mesma organização, o Passo 2 já vai estar marcado como ✓ Connected e você vai pular direto para o Passo 3.

Passo 3: Vincular repositórios e escolher o trigger

Uma vez conectado o GitHub App, o botão Set Up é habilitado abaixo. Aqui você vai definir:

  • Repositórios: selecione os repositórios que correspondem a este asset. Você pode vincular mais de um se o seu asset depende de múltiplos repos.

  • Test trigger: escolha entre Per pull request ou Per release.

Clique em Confirm and Enable e pronto: o asset fica escutando as mudanças.

image.png

Passo 4: Verificar que está funcionando

Quando o asset entra no estado Enabled, você verá:

  • Na lista de assets: um ícone verde 🔄 indicando Listening for changes in repositories.

  • No overview do asset: uma seção mostrando as informações da funcionalidade ativa (execuções disponíveis, contador de PRs no batch, repositórios vinculados, etc.).

  • Ao clicar na seção, o detalhe de cada PR pendente: título, autor, data, linhas alteradas e próxima execução estimada.

Passo 5: Revisar os resultados

As execuções change-based aparecem na tabela de threat emulations identificadas com uma tag de Change-Based. Clique em uma execução para ver o detalhe:

  • Resumo da execução (duração, scope, repos vinculados).

  • Tab PRs tested com a lista completa dos PRs incluídos, cada um com título, autor, linhas alteradas e link direto para o GitHub.

  • Findings (vulnerabilidades, evidências e severidade), vinculados ao contexto das mudanças concretas que as introduziram.

As execuções change-based passam por triage do time da Strike, igual a qualquer outra threat emulation. Os findings que você vê já estão validados.

Estados da feature por asset

Estado

Indicador

O que significa

Disabled

Sem ícone / Cinza

A feature não está configurada neste asset.

Enabled

Verde + Enabled

Ativo, escutando mudanças nos repos vinculados.

Paused

Vermelho + Paused

Sem testing units disponíveis. As mudanças são detectadas, mas os testes não são disparados.

Plano e consumo

Change-Based Testing é um add-on contratado sobre o plano base. Três conceitos para entender como é faturado:

  • Add-on: vendido como um complemento separado da recorrência base do seu asset. O seu testing recorrente continua funcionando como sempre; esta feature soma cobertura, não a substitui.

  • Ativação por asset: cada asset pode ter a feature ativa ou não. A integração com o GitHub é feita uma única vez no nível da organização; em cada asset você apenas vincula os repos correspondentes.

  • Pacote compartilhado: cada execução consome 1 testing unit do pacote de execuções pontuais. Esse pacote é compartilhado com Focused Tests, então o consumo é descontado do mesmo pool.

Você pode ver o saldo disponível do seu pacote na página Plan & Usage da sua organização. Para adicionar mais execuções ou ajustar o seu plano, entre em contato com o seu Customer Success Manager.

Perguntas frequentes

Preciso envolver o time de desenvolvimento para configurar isso?

Não necessariamente. Se você tem acesso de admin à organização do GitHub, pode completar todo o setup sozinho. Leva menos de 10 minutos.

A Strike pode ver ou modificar o meu código?

Não. O GitHub App tem permissões de somente leitura sobre metadados de PRs (título, autor, data, arquivos modificados). Ele não acessa o conteúdo do código nem interfere no seu pipeline de CI/CD.

Posso vincular vários repositórios a um mesmo asset?

Sim. Um asset pode ter múltiplos repos vinculados; os PRs de todos eles são monitorados e incluídos nos batches.

Um repositório pode estar vinculado a vários assets?

Sim. Se um repo afeta múltiplos assets, vincule-o a cada um. Um PR nesse repo dispara testes em todos os assets vinculados.

Como sei qual PR introduziu uma vulnerabilidade?

No detalhe da threat emulation, a tab PRs tested mostra todos os PRs incluídos. As vulnerabilidades ficam no contexto dessas mudanças específicas.

As vulnerabilidades de change-based passam por triage do time da Strike?

Sim. Igual a qualquer outra threat emulation, o time da Strike revisa e valida os findings antes de exibi-los como confirmados.

Como são consumidas as execuções de Change-Based Testing?

Cada execução consome 1 testing unit do pacote de execuções pontuais associado à sua conta. Esse pacote é compartilhado com Focused Tests, então o consumo é descontado do mesmo pool. Você pode ver o saldo disponível na página Plan & Usage da sua organização.

O que acontece se coincidirem uma execução scheduled e uma change-based no mesmo dia?

As duas são executadas em paralelo. A recorrente consome do plano base de recorrência; a change-based consome do pacote de testing units. Não há deduplicação automática: são dois testes com propósitos diferentes.

O que acontece se eu desvincular um repositório?

O repo deixa de ser monitorado e os PRs pendentes desse repo são removidos do batch. O histórico de execuções anteriores permanece visível e os findings associados continuam disponíveis no asset.

O que acontece se o GitHub App for desinstalado a partir do GitHub?

Todos os assets que dependiam dessa organização perdem a conexão e passam para o estado Disabled. Para reativar a feature, é preciso reinstalar o app e reconfigurar o vínculo dos repos.

O que acontece se acabarem as testing units?

A feature passa para o estado Paused. Os PRs continuam sendo detectados e acumulados, mas os testes não são disparados até renovar ou ampliar o pacote. As threat emulations recorrentes não são afetadas; continuam rodando com o plano base. Quando novas units são adicionadas, a feature é reativada automaticamente. Para adicionar mais execuções, entre em contato com o seu Customer Success Manager.

Só integra com o GitHub? Há suporte para GitLab, Jenkins ou outros?

Por enquanto, a integração disponível é com o GitHub. Estamos adicionando suporte para outras plataformas (GitLab, Jenkins, etc.) de forma incremental, conforme as necessidades dos clientes. Se você usa outra ferramenta e tem interesse nesta feature, entre em contato com o seu Customer Success Manager para que possamos adicionar o seu caso à priorização.