Conceitos do Application Testing do AWS Mainframe Modernization - Mainframe Modernization AWS

Conceitos do Application Testing do AWS Mainframe Modernization

O AWS Application Testing usa termos que outros serviços de teste ou pacotes de software podem usar com um significado ligeiramente diferente. As seções a seguir explicam como o Application Testing do AWS Mainframe Modernization usa essa terminologia.

Caso de teste

Um caso de teste é a unidade de ação individual mais atômica em seu fluxo de trabalho de teste. Normalmente, um caso de teste é usado para representar uma unidade independente da lógica de negócios que modifica os dados. As comparações serão feitas para cada caso de teste. Os casos de teste são adicionados a um pacote de testes. Os casos de teste contêm metadados sobre os artefatos de dados (conjuntos de dados, bancos de dados) que o caso de teste modifica e sobre as funções de negócios que são acionadas durante a execução do caso de teste: trabalhos em lote, diálogos interativos 3270 e outros. Por exemplo, os nomes e as páginas de código dos conjuntos de dados.

Dados de entrada → Caso de teste → Dados de saída

Os casos de teste podem ser on-line ou do tipo em lote:

  • Casos de teste da tela 3270 on-line são casos de teste em que o usuário executa diálogos de tela interativos (3270) para ler, modificar ou produzir novos dados comerciais (registros de banco de dados e/ou conjuntos de dados).

  • Casos de este em lote são casos de teste que exigem o envio de um lote para ler, processar e modificar ou produzir novos dados comerciais (conjuntos de dados e/ou registros de banco de dados).

Pacote de testes

Os pacotes de testes têm uma coleção de casos de teste que são executados em ordem sequencial, um por um. A reprodução é feita em nível de pacote de testes. Todos os casos de teste no cenário de teste são executados no ambiente de teste de destino quando um pacote de testes é reproduzido. Se houver diferenças após comparar artefatos de teste de referência e de reprodução, as diferenças serão mostradas no nível do caso de teste.

Por exemplo, Pacote de testes A:

Caso de teste 1, caso de teste 2, caso de teste 3 e assim por diante.

Configuração do ambiente de teste

A configuração do ambiente de teste permite que você configure o conjunto inicial de dados e os parâmetros de configuração (ou recursos) com o CloudFormation necessários para tornar a execução dos testes repetível.

Carregar

Os uploads são feitos em um nível de pacote de testes. Durante o upload, é necessário fornecer um local do Amazon S3 que contenha os artefatos, conjuntos de dados e diários CDC do banco de dados relacional do mainframe de origem com os quais serão comparados. Eles serão considerados como dados de referência do mainframe de origem. Durante a reprodução, os dados da reprodução gerados serão comparados com os dados de referência gravados para garantir a equivalência da aplicação.

Reproduzir

As reproduções são feitas em um nível de pacote de testes. Durante a reprodução, o Teste de aplicações do AWS Mainframe Modernization usa o script do CloudFormation para criar o ambiente de teste de destino e executar a aplicação. Os conjuntos de dados e os registros do banco de dados que são modificados durante a reprodução são capturados e comparados com os dados de referência do mainframe. Normalmente, você fará upload no mainframe uma vez e depois reproduzirá várias vezes, até que a equivalência funcional seja alcançada.

Compare

As comparações são feitas automaticamente após o término com êxito de uma reprodução. Durante as comparações, os dados referidos dos quais você fez upload e capturou durante a fase de upload são comparados com os dados da reprodução gerados durante a fase de reprodução. As comparações acontecem em um nível de caso de teste individual para conjuntos de dados, registros de banco de dados e telas on-line separadamente.

Comparações de bancos de dados

O Application Testing emprega uma funcionalidade de correspondência de progresso de estado ao comparar alterações nas gravações do banco de dados entre as aplicações de origem e de destino. A correspondência do progresso do estado compara as diferenças em cada instrução INSERT, UPDATE e DELETE de execução individual, diferentemente da comparação das linhas da tabela no final do processo. A correspondência do progresso do estado é mais eficiente do que as alternativas, fornecendo comparações mais rápidas e precisas ao comparar somente os dados alterados e ao detectar erros de autocorreção no fluxo da transação. Usando a tecnologia captura de dados de alteração (CDC), o Application Testing pode detectar alterações individuais no banco de dados relacional e compará-las entre a origem e o destino.

As alterações do banco de dados relacional são geradas na origem e no destino pelo código da aplicação testada usando instruções de linguagem de modificação de dados (DML), como SQL INSERT, UPDATE ou DELETE, mas também indiretamente quando a aplicação está usando procedimentos armazenados, quando os acionadores do banco de dados são definidos em algumas tabelas ou quando CASCADE DELETE é usada para garantir a integridade referencial, acionando automaticamente exclusões adicionais.

Comparações de conjuntos de dados

O Teste de aplicações compara automaticamente os conjuntos de dados de referência e de reprodução produzidos nos sistemas de origem (gravação) e de destino (reprodução).

Como comparar conjuntos de dados:

  1. Comece com os mesmos dados de entrada (conjuntos de dados, banco de dados) na origem e no destino.

  2. Execute seus casos de teste no sistema de origem (mainframe).

  3. Capture os conjuntos de dados produzidos e faça upload deles em um bucket do Amazon S3. É possível transferir conjuntos de dados de entrada da origem para a AWS usando diários, telas e conjuntos de dados de CDC.

  4. Especifique a localização do bucket do Amazon S3 no qual foi feito upload dos conjuntos de dados do mainframe quando você gravou o caso de teste.

Após a conclusão da reprodução, o Teste de aplicações vai comparar automaticamente os conjuntos de dados de referência e de destino de saída, mostrando se os registros são idênticos, equivalentes, diferentes ou se estão ausentes. Por exemplo, campos de data relativos ao momento da execução da workload (dia + 1, final do mês atual etc.) são automaticamente considerados equivalentes. Além disso, opcionalmente, é possível definir regras de equivalência, para que os registros que não sejam idênticos continuem tendo o mesmo significado comercial e sejam marcados como equivalentes.

Status da comparação

O Application Testing usa os seguintes status de comparação: IDÊNTICO, EQUIVALENTE e DIFERENTE.

IDÊNTICO

Os dados de origem e de destino são exatamente os mesmos.

EQUIVALENTE

Os dados de origem e de destino contêm falsas diferenças consideradas equivalências, como datas ou timestamps que não afetam a equivalência funcional quando são relativos ao momento da execução da workload. É possível definir regras de equivalência para identificar quais são essas diferenças. Quando todos os pacotes de teste reproduzidos em comparação com os pacotes de teste de referência mostram o status de IDÊNTICO ou EQUIVALENTE, o pacote de teste não mostra diferenças.

DIFERENTE

Os dados de origem e de destino contêm diferenças, como um número diferente de registros em um conjunto de dados ou valores diferentes no mesmo registro.

Regras de equivalência

Um conjunto de regras para identificar falsas diferenças que podem ser consideradas resultados equivalentes. O teste de equivalência funcional offline (OFET) inevitavelmente causa diferenças em alguns resultados entre os sistemas de origem e de destino. Por exemplo, os timestamps de atualização são diferentes por design. As regras de equivalência explicam como se ajustar a essas diferenças e evitar falsos positivos no momento da comparação. Por exemplo, se uma data for tempo de execução + dois dias em uma coluna de dados específica, a regra de equivalência a descreve e aceita uma hora no sistema de destino que seja tempo de execução no destino + duas dias, em vez de um valor que seja estritamente igual à mesma coluna no upload de referência.

Comparação do conjunto de dados do estado final

O estado final dos conjuntos de dados que foram criados ou modificados, inclusive todas as alterações ou atualizações feitas nos conjuntos de dados a partir do estado inicial. Em relação aos conjuntos de dados, o Teste de aplicações analisa os registros nesses conjuntos de dados no final da execução de um caso de teste e compara os resultados.

Comparações de bancos de dados de progresso de estado

Comparações das alterações feitas nos registros do banco de dados como uma sequência de instruções DML individuais (Delete, Update, Insert). O Application Testing compara alterações individuais (inserir, atualizar ou excluir a linha de uma tabela) do banco de dados de origem com o banco de dados de destino e identifica as diferenças para cada alteração individual. Por exemplo, uma instrução INSERT individual pode ser usada para inserir em uma tabela uma linha com valores diferentes no banco de dados de origem em comparação com o banco de dados de destino.

Equivalência funcional (FE)

Dois sistemas são considerados funcionalmente equivalentes se produzirem os mesmos resultados em todas as operações observáveis, dados os mesmos dados de entrada. Por exemplo, duas aplicações são consideradas funcionalmente equivalentes se os mesmos dados de entrada produzirem dados de saída idênticos (por meio de telas, alterações no conjunto de dados ou alterações no banco de dados).

Comparações online de telas 3270

Compara a saída das telas 3270 do mainframe com a saída das telas web de aplicações modernizadas quando o sistema de destino está sendo executado no tempo de execução do AWS Blu Age na Nuvem AWS. E compara a saída das telas 3270 do mainframe com as telas 3270 da aplicação com hospedagem redefinida quando o sistema de destino está sendo executado no runtime do Micro Focus na Nuvem AWS.

Reproduzir dados

Os dados da reprodução são usados para descrever os dados gerados pela reprodução de um pacote de teste no ambiente de teste de destino. Por exemplo, os dados da reprodução são gerados quando um pacote de teste está sendo executado em uma aplicação do serviço AWS Mainframe Modernization. Os dados da reprodução são então comparados com os dados de referência capturados da origem. Toda vez que uma workload é reproduzida no ambiente de destino, uma nova geração de dados de reprodução é feita.

Dados de referência

Os dados de referência são usados para descrever os dados capturados no mainframe de origem. É a referência com a qual os dados gerados pela reprodução (destino) serão comparados. Normalmente, para cada gravação no mainframe que cria dados de referência, haverá muitas reproduções. Isso ocorre porque os usuários normalmente capturam o estado correto da aplicação no mainframe e reproduzem os casos de teste na aplicação modernizada de destino para validar a equivalência. Se forem encontrados bugs, eles serão corrigidos e os casos de teste serão reproduzidos novamente. Frequentemente, vários ciclos de reprodução, correção de bugs e nova reprodução para validar a ocorrência. Isso é chamado de paradigma de teste de captura única e várias reproduções.

Fazer upload, reproduzir e comparar

O Application Testing opera em três etapas:

  • Fazer upload: captura os dados referidos que foram criados no mainframe para cada caso de teste de um cenário de teste. Isso pode incluir telas 3270 on-line, conjuntos de dados e registros de banco de dados.

    • Para telas 3270 on-line, você deve usar o emulador de terminal do Blu Insights para capturar sua workload de origem. Para obter mais informações, consulte a documentação do Blu Insights.

    • Para conjuntos de dados, será necessário capturar os conjuntos de dados produzidos pelos casos de teste no mainframe usando ferramentas comuns, como FTP ou o serviço de transferência de conjuntos de dados que faz parte do AWS Mainframe Modernization.

    • Para alterações no banco de dados, use a documentação Replicação de dados do AWS Mainframe Modernization com a Precisely para capturar e gerar diários da CDC contendo as alterações.

  • Reproduzir: o pacote de teste é reproduzido no ambiente de destino. Todos os casos de teste especificados na execução do pacote de teste. Os tipos de dados especificados criados pelos casos de teste individuais, como conjuntos de dados, alterações no banco de dados relacional ou telas 3270, serão capturados com a automação. Esses dados são conhecidos como dados da reprodução e serão comparados com os dados de referência capturados durante a fase de upload.

    nota

    As alterações no banco de dados relacional exigirão opções de configuração específicas do DMS em seu modelo de condição inicial do CloudFormation.

  • Comparar: os dados de referência do teste de origem e os dados de reprodução de destino serão comparados e os resultados serão exibidos para você como dados idênticos, diferentes, equivalentes ou ausentes.

Diferenças

Indica que foram detectadas diferenças entre os conjuntos de dados de referência e de reprodução pela comparação de dados. Por exemplo, um campo em uma tela 3270 on-line que mostre valores diferentes do ponto de vista da lógica de negócios entre o mainframe de origem e a aplicação modernizada de destino será considerado uma diferença. Outro exemplo é um upload em um conjunto de dados que não é idêntico entre as aplicações de origem e de destino.

Equivalências

Registros equivalentes são registros diferentes entre os conjuntos de dados de referência e de reprodução, mas não devem ser tratados como diferentes do ponto de vista da lógica de negócios. Por exemplo, um registro contendo o timestamp de quando o conjunto de dados foi produzido (tempo de execução da workload). Usando regras de equivalência personalizáveis, é possível instruir o Application Testing a tratar essa diferença de falso positivo como uma equivalência, mesmo que ela mostre valores diferentes entre os dados de referência e de reprodução.

Aplicação de origem

O aplicação de origem do mainframe com a qual fazer a comparação.

Aplicação de destino

A aplicação nova ou modificada na qual o teste é feito e que será comparada à aplicação de origem para detectar quaisquer defeitos e obter equivalência funcional entre as aplicações de origem e de destino. A aplicação de destino normalmente está sendo executada na Nuvem AWS.