Sistema de autoteste de comércio eletrônico

Eu me sinto como o inventor de uma bicicleta. E ele pensou por um longo tempo se valia a pena escrever sobre o que me pareceu óbvio. Mas mais uma vez me deparei com o fato de que, com persistência digna de uma melhor aplicação, eles não o fazem.

E assim a situação é: comércio eletrônico no setor de transporte / turismo / hospitalidade. Projetado, desenvolvido e agora - processos de negócios de ponta a ponta, muitos sistemas, tudo como esperado em um grande comércio eletrônico.

imagem

Mas aqui está o problema:

  • Todos os grandes sistemas consistem em vários sistemas;
  • Cada um é desenvolvido / atualizado / suportado por um desenvolvedor separado;
  • Cada desenvolvedor atualiza o software em média uma vez por mês e controla independentemente a qualidade de sua solução.

E quem fornece a qualidade do processo de negócios? O operador, uma vez e depois outra, chorou ao pagar as contas, com o argumento: "para que seu sistema funcione, você não pode usá-lo".

Não sinto vontade de testar aliados, mas quero desistir e ser pago. Então começamos a escrever um sistema completo de autoteste - testando não o sistema, mas todos os processos de negócios do comércio eletrônico (envolvendo vários sistemas, de vários fornecedores). Um sistema tão grande que passa pela BP de ponta a ponta examina todos os sistemas: do console da web à leitura de registros do banco de dados:

imagem

e aqui está o que temos:

O que o sistema pode fazer:


1. Testes complexos - verificação da funcionalidade de todo o comércio eletrônico da BP para:

  • Identificação de erros;
  • Verificação de integração;
  • Desvios de análise;

imagem

imagem

  • Verificação lógica;
  • Verificação de valores;

imagem

  • Análise de PNR na GDS;
  • Análise de registros de adição. serviços no banco de dados;
  • Verificando a exibição de elementos em formas de tela.

imagem

2.

Capturas de tela do processamento de relatórios :

  • Identificadores de pedidos / status / etapa nos nomes dos arquivos;
  • Agrupando capturas de tela no armazenamento de arquivos por seções de teste.

imagem

Conjunto de relatórios:

  • Relatório resumido de desvios - com links para orientações passo a passo, transcrições (formato Excel)
  • Relatório resumido de desvios não críticos - decodificação e links para uma descrição passo a passo (formato - Excel)
  • Relatório "bonito" para geração de relatórios, com orientações e desvios corretos (formato - Excel)

3. Ensaios de carga - repetição em massa do mesmo tipo de casos de teste, com o objetivo de:

  • identificação de erros periódicos;
  • simulação de carga.

imagem

4. Multithreading - os casos de teste são executados em três threads, o que é especialmente importante devido ao fato de que é preferível usar a plataforma Windows como servidor para teste.

Efeito econômico


Volumes de teste:

  • 2 pares de moedas / idiomas. 4 permissões. 4 navegadores. 8 situações de negócios;
  • 12 * 4 * 4 * 8 = 1.536 casos de teste;
  • A passagem média de um caso de teste por um robô é de 5 minutos, reprodução por uma pessoa (com muita experiência) - 7 a 10 minutos;
  • Custos de mão-de-obra para testes 1152 * 7 * 1,2 (taxa de interrupção no ambiente de teste) = 12 902,4 minutos / 215,04 horas para liberação;
  • Em um mês, há 3 lançamentos de atualizações de 3 fornecedores = 645,12 homem / hora. Dado o custo dos relatórios e a desigualdade dos testes, 4 e, provavelmente, 5 funcionários em período integral;
  • Salário de especialista 80.000 + deduções ao PFR - 30%, ao FSS - 2,9%, ao FFOMS - 5,1%.

Economias com autoteste - 5 a 6 milhões de ₽ por ano (apenas com salários)

Tecnologias


Em princípio, nada de especial, mas é um recurso técnico ...

  • Java, framework TestNG.
  • Selenium - um conjunto de bibliotecas para gerenciar navegadores da web;
  • Selenida - métodos para trabalhar com objetos da web;
  • SoapUI - um meio de interagir com vários protocolos;
  • Selenium Grid - uma ferramenta que permite criar clusters e distribuir tarefas em diferentes servidores;
  • Jenkins é uma ferramenta para gerenciar a execução de casos de teste e trabalhar com os resultados do teste.

All Articles