Considerações de design do Automated Test Framework

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 6 min. de leitura
  • Crie testes confiáveis, escalonáveis e eficientes seguindo estas considerações de design.

    Testes gerais

    Evite modificar tabelas do sistema ServiceNow ou tabelas que estendam o arquivo de aplicações [sys_metadata] que podem mudar o comportamento do sistema. Evite usar ou modificar quaisquer registros existentes para evitar resultados inesperados entre os testes. A seguir estão alguns dos exemplos comuns de mudanças de dados do sistema que podem causar resultados inesperados.
    • Representar uma conta existente
    • Exclua um registro existente.
    • Executar um teste que desabilita uma regra de negócio ou propriedade do sistema
    • Validar com um registro existente

    Testes paralelos

    Reduza o tempo de design de teste executando vários testes e pacotes de testes em paralelo. Projete testes para serem executados em paralelo, evitando conflitos de recursos e dependências de dados.

    Impedir conflitos de recursos entre testes paralelos

    Evite conflitos de recursos executando testes que criam seus próprios dados. Os testes executados com dados existentes impedem que outros testes que precisam dos mesmos dados sejam executados em paralelo.
    Nota:
    Se você tiver dois ou mais testes conflitantes de recursos, consulte Marcar testes como mutuamente exclusivos para criar uma regra de exclusão mútua que impede a execução em paralelo.

    Testes com parâmetros

    Execute um teste várias vezes com dados de teste diferentes para cada execução. Crie parâmetros para armazenar dados de teste para cada simulação. Consulte Componentes de teste com parâmetros para obter mais informações.
    • Crie parâmetros para armazenar dados de teste para cada simulação.
    • Certifique-se de que os testes com parâmetros ofereçam suporte a recursos padrão do Automated Test Framework (ATF), como relatórios, pacotes de testes e reversão de dados. Copiar um teste com parâmetros copia todos os parâmetros, conjuntos de dados de simulação e etapas de teste.
      Nota:
      Se um teste com parâmetros incluindo etapas de teste de IU personalizada for criado, o sistema usará somente o primeiro conjunto de dados para recuperar componentes.

    Testes de IU personalizada

    Teste interfaces de usuário personalizadas, como páginas de IU e macros de IU, recuperando seus componentes de página HTML e JavaScript e identificando as ações de teste compatíveis.

    Use o inspetor de página para identificar componentes de página testáveis
    O inspetor de página determina quais componentes de página estão disponíveis para testes de IU personalizados. Os componentes de página que não estão disponíveis para o inspetor de página também não estão disponíveis para o teste de IU personalizado.
    Navegue até a IU personalizada que você deseja testar
    Use as etapas de teste existentes para navegar até a IU personalizada de destino. Por exemplo, para testar um artigo da Base de conhecimento, use as etapas de teste existentes para navegar até um módulo ou para abrir um registro existente. A maioria dos testes de IU personalizados requer o uso de categorias de etapa de teste existentes como parte do teste.
    Use a área de componentes para identificar os componentes da página
    A área de componentes descreve o elemento de layout HTML que contém o componente, como um elemento <div> ou <section>. A área ajuda os designers de teste a distinguir entre os componentes, fornecendo o local no layout da página.
    Teste sua IU personalizada em vez de Now Platform IU
    O Automated Test Framework impede o teste de IU personalizada dos recursos Now Platform. Por exemplo, você não pode testar painéis ou designers gráficos. Em vez disso, crie testes para validar suas páginas e elementos de IU personalizados porque você tem controle direto sobre essas interfaces de usuário.
    Use atributos HTML para substituir as propriedades de teste do componente da página
    Altere as propriedades de teste de um componente de página específico usando atributos HTML que são específicos para Automated Test Framework. Consulte Substituir ações de teste de componente.
    Recupere os componentes da página novamente ao mover os testes para outra instância
    As etapas de teste de IU personalizada não armazenam componentes de IU como metadados. Os testadores devem recuperar manualmente os componentes da página novamente ao mover testes entre instâncias.

    Clonar testes do sistema de produção

    Mova seus testes para o sistema de produção para clonar as instâncias mais atualizadas para teste. Acelere o tempo de teste copiando ou clonando diretamente um teste do sistema de produção para uma instância de subprodução.

    Nota:
    Por padrão, a propriedade do sistema usada para executar testes automatizados está desativada para evitar que você execute acidentalmente esses testes em um sistema de produção. Para evitar a corrupção de dados ou indisponibilidade, execute testes somente em instâncias de desenvolvimento, teste e outras instâncias de não produção.

    Mensagens de aviso para todos os testes

    Mensagens de aviso Considerações de design
    Representar um usuário existente pode gerar um comportamento inesperado neste teste. Evite possíveis problemas adicionando uma etapa "Criar um usuário". Consulte a documentação de Considerações de design de teste. Crie um novo usuário para garantir funções e grupos apropriados e evitar o uso de registros existentes. Para obter mais informações, consulte Testes gerais.
    O uso de uma tabela que estende o Arquivo de aplicações [sys_metadata] pode gerar um comportamento inesperado em outros testes com execução em paralelo. Consulte a documentação de Considerações de design de teste. Evite executar um teste com uma tabela que estenda o arquivo de aplicações porque isso pode afetar outros testes. Para obter mais informações, consulte Testes paralelos.
    O uso de uma tabela do sistema pode gerar um comportamento inesperado em outros testes com execução em paralelo. Consulte a documentação de Considerações de design de teste. Evite usar uma tabela do sistema porque isso pode afetar outros testes em execução em paralelo. Para obter mais informações, consulte Testes paralelos.
    Usar um registro existente pode gerar um comportamento inesperado neste teste. Consulte a documentação de Considerações de design de teste. Evite usar registros existentes porque eles podem não ter o estado e os valores esperados pelo teste. Use registros criados durante o teste para garantir o estado e os valores apropriados. Para obter mais informações, consulte Testes gerais.
    Modificar um registro existente pode gerar um comportamento inesperado em outros testes com execução em paralelo. Consulte a documentação de Considerações de design de teste. Evite usar registros existentes porque isso pode afetar outros testes. Use registros criados durante o teste. Para obter mais informações, consulte Testes gerais.
    Usar o tipo de asserção '--None--' pode gerar um comportamento inesperado nas ações de IU do servidor. Evite possíveis problemas definindo o tipo de asserção e usando um tempo limite. Consulte a documentação de Considerações de design de teste. As ações de IU do servidor fazem com que o formulário atual seja enviado e a página seja recarregada. Selecione um tipo de declaração diferente de Nenhum para evitar comportamentos inesperados nas ações de IU do servidor. Defina um tempo limite para garantir que o teste aguarde o envio ou não do formulário antes de passar para a próxima etapa. Ao testar ações de IU do servidor, o tipo de declaração Nenhum é configurado automaticamente como Formulário enviado para o servidor.

    Testes de separação de domínio

    Ao testar o Domain Separation, você deve definir o domínio primeiro. Isso deve fazer parte da primeira etapa de representação de cada uma das etapas de teste do ATF quando elas dependem de um domínio que está sendo definido. Para saber mais sobre as práticas recomendadas de separação de domínio, consulte Práticas recomendadas de separação de domínio para provedores de serviço.